Inspiration
We were inspired by the untapped potential of local businesses and the challenge they face in gaining visibility within crowded marketplaces (especially in major cities). We wanted to create a platform that empowers communities to easily discover and support these hidden gems, while giving businesses the tools to thrive in the smart city ecosystem.
What it does
Local.ly connects users with local businesses, helping them discover new places and redeem exclusive offers. It provides a seamless platform for businesses to create profiles, promote special deals, and engage directly with their community. Users can browse, find unique businesses, and access deals—all in one place.
How we built it
We built Local.ly using a combination of frontend and backend technologies. On the frontend, we used React and Tailwind, and for the backend, we used Express.js, Prisma, and PostgresQL. For the backend, we integrated a relational database to more easily manage user and business information, and used the Google OAuth protocol to allow users to sign in with their Google accounts without using a pre-built app that handles the state management of the back and forth between the client, server, and Google.
Challenges we ran into
One of the biggest challenges we ran into was actually using Prisma with the CRUD operations to our PostgresQL database. We ran into many issues, including some where we faced were circular dependency / infinite recursion and null values from our Prisma query args, which we ended up not being able to fully solve due to a limit of time we had to actually test our solution. For example, we had models Business and Promotion in our schema, where Business has fields locations and promotions, and Promotion has field business, and for some reason the prisma include args would return some data as null, even though we checked the database and the values were actually present.
Accomplishments that we're proud of
We’re proud of building a platform that empowers local businesses while creating a streamlined experience for users. Successfully overcoming the OAuth challenges and designing a user-friendly interface were also major wins for us. Additionally, our platform highlights businesses in a way that feels both fresh and essential.
What we learned
Integrating Prisma was more complex than anticipated, especially when managing nested relationships and optimizing queries for performance. We encountered issues with circular dependencies in our data models and had to refactor our schema multiple times to ensure the integrity of our data. This process deepened our understanding of database design and how to efficiently fetch and transform relational data.
What's next for Local.ly
We plan to expand Local.ly by adding advanced features such as personalized recommendations, real-time business analytics, and integrations with smart city technologies to provide businesses with more insights and users with a tailored experience. We also aim to onboard more local businesses and grow our user base to foster stronger community connections.
Built With
- adobe-illustrator
- canva
- css3
- docker
- figma
- git
- github
- google-gmail-oauth
- javascript
- lint
- node.js
- oauth
- prisma
- react
- typescript
- vite
- yarn
Log in or sign up for Devpost to join the conversation.