Inspiration
In light of safety amongst the LGBTQ+ community, many queer people face difficulties and risk homelessness due to their identity. Acknowledging the uphill battle, Phoebe was inspired to provide a platform where queer people can search for safe alternatives provided by other queer folks.
What it does
Phoebe aims to match queer people with other queer folks who are struggling or will struggle to find a place to live because of their queerness (e.g. being transgender). It is often far more comfortable for queer people to live together than living with those who may pose a risk. In addition, Phoebe also accounts for polyamory relationships and offers the ability to seek housing in groups.
How we built it
The web backend is implemented using FastAPI, a trusted framework used by millions; including Microsoft.. We decided on this choice as it would be lightweight and simple to rapidly prototype and build. With this bleeding edge framework, we aggressively expanded our abilities, cutting down the implementation of the web backend to 18 hours. In addition, our seamless integration of SQLite through SQLModel allowed us to iterate on bleeding edge versions of our application and enforce type safety. The simplicity and power of SQlite aided us in our rapid sprints; ultimately contributing to our success.
Challenges we ran into
We ran into a multitude of challenges, such as backend development (include some frontend stuff here?), and many more. Most notably, the architecture of the server-side application proved to be a challenging fight. In order to query a list of users who are near your approximate location, we originally struggled with implementing geospatial features found in extensions such as PostGIS, but this was overcome as one of our team members had swiftly crafted a solution using several low-level programming techniques.
Our biggest hurdle is with the implementation and design of the backend web application. Our decision to use an ORM to rapidly iterate also bound us to a Pandora's box of issues; ranging from type hints to failed endpoints and crashes. For instance, the internal design of the access levels and users with the correct levels had to be implemented by subclassing models on top of models, and others. The last roadblock we ran into is time itself. We had moments of frustration where we were put under pressure to develop a section of the application, and issues such as failed requests and crashes slowed our overall progress.
Accomplishments that we are proud of
What we are most proud of is the sheer speed that we were able to develop an application. Within this event, protocols were put in place to standardized testing and development structures, design and others. We were able to work quickly due to our expertise in the development of server-side applications, engineering practices, and many others. In addition, we heavily coordinated with the frontend side of development; pitching ideas and suggestions for the frontend and required endpoints and features that the backend would need. With these skills, we were able to finish the project in less time than others, even with over 8 hours dedicated to resting and others.
What we learned
We all learned heaps of techniques; both in development and engineering. This challenge aimed to dive deep into the very technologies that we all use daily. As a result, this event allowed us to explore the technologies we used, such as SQLite, FastAPI, and SSE. In addition, the inclusion of a member, which is their second event, has led to new perspectives and the passion to explore these technologies for a lifetime.
What's next for Phoebe
We plan to expand the limits of Phoebe by introducing features that would be critical to users. These include shared scheduled check-ins, emoji-based verification, end-to-end-encryption, and much more. Most notably, end-to-end-encryption (EE2E) would be our highest priority to be implemented. This prevents spying applications and likewise, prevents providers from sharing user information; ensuring the trust between the user and the server will always be secured.
Built With
- blahaj
- dart
- fastapi
- flutter
- glsl
- httpie
- intellij-idea
- neovim
- python
- sqlite
- sqlmodel
- tailscale
- vscode
Log in or sign up for Devpost to join the conversation.