Devpost: https://devpost.com/software/unipals-l8jd7z
The recent COVID-19 pandemic has severely affected the social aspects of many university students throughout the country. The shift from in-person to online teaching has made it harder for students to proactively make friends virtually. In order to solve this issue, we decided to develop a social media platform designed for university students in mind.
UniPals is a website that allows users, specifically university students, to connect with others and socialize.
We utilized the following technology stack to build UniPals:
- Front-End
- React.js
- Semantic UI
- UI-Avatars
- Back-End
- Django
- Database
- SQLite
UniPals utilizes Django's built-in authentication and database support to quickly develop a user login system.
We encountered many challenges along the way while developing UniPals:
- Website Design
- Before beginning the hackathon, we did not take time to come up with a design. Thus, we had to come up with a robust design as we simultaenously develop the logic behind it, taking up more time than necessary.
- Technical Difficulties
- Our team made use of VSCode Live Share to develop UniPals together in realtime. However, one of our back-end developers had immense troubles trying to solve an error related to VSCode that prevented active contribution in realtime
- Our team spent an entire day determining how to best integrate Django-based registration/authentication with frontend API calls
We are quite proud of the entire project overall. We never attempted to develop software in a limited time frame, but we grew a lot from doing so.
- Integrate React builds with a Django backend
- Create and test API endpoints
- Register and authenticate users
- Cache login tokens
- Execute Python scripts through an API call
- Define, serialize, and view database models/schemas
- Handle frontend/backend routes through a single URL
We plan to do the following:
- Refactor most of the codebase for more reusability and better readability.
- Switch from SQLite to a Database-as-a-Service, such as Firebase or AWS for better scalability.
- Improve the overall design and aesthetics.
- Add additional authentication (2FA, social logins) for better security and easier logins.