Inspiration

(THIS IS FOR THE USF THEME TRACK) A couple of weeks ago, a friend lost his keys on campus and wasn't able to find them. He didn't know if someone had took them or where he could find them, so he spent two days looking for them. Because of this, we came up with a website for lost and found objects of easy access to students.

What it does

The website lets students upload lost objects and where they were last seen, in addition to showing the contact information of who found them. Students can also add their email to receive notifications of lost objects.

How we built it

We used the follow tech: TypeScript, React, Express, Email.JS, MapLibre, Supabase (SQL) We used React for the frontend and MapLibre for the map interface where users can post their lost items. We also used Email.js for the email subscription service. For the backend we used Express (Typescript) along with Supabase (SQL) for the database

Challenges we ran into

Originally we intended to use Mapbox for the map interface but we ran into a lot of issues trying to initialize the Mapbox API key. We ended up switching over to MapLibre as an open source alternative to MapBox. We also ran into issues trying to establish an email subscription service with Firebase; however, we were unable to properly establish the API tokens. So, we ended up switching over to Email.Js which was much easier to create the email templates. Our backend was simple RESTful backend with Express along with Supabase. We didn't have any issues for this.

Accomplishments that we're proud of

We are proud that we were able to create a nice UI interface of a map with lost and found objects. Additionally, we were able to successfully make an email notification subscription service to alert people when new lost/found items get posted. We were also able to establish a real working backend and database with Express and Supabase to query and display persistent lost/found objects.

What we learned

We learned how to create GeoJson objects for map interfaces like dots ands emojis along with popup textboxes. We also learned to create email subscriptions services using HTML templates to send out emails to subscribed users. We also learned to establish a full-stack app with a working frontend with React and backend on Express connect to a SQL database with Supabase. For non-techincal skills, we learned how to concurrently work together with control version software like Git and Github.

What's next for Find-A-Bull

We would like to expand the service to support an AI wrapper to help people better identify items that have already been posted. For example, a user could chat with a bot to try and find previously posted lost objects based off descriptions that were previously posted. We would also like to be able to upload actual pictures of the objects. For this we would likely use a AWS service like S3 to support this.

Built With

Share this project:

Updates