Project Info
Inspiration
As students, we know how frustrating it can be to lose a personal item on campus, remember exactly where we left it, return to that same place and it has suddenly disappeared. On the other hand, it can also be stressful to find an item that's been left behind, and not know who to return it to. With Lost and Slugged, we wanted to build a community driven solution to this issue.
What it does
"Lost and Slugged" features an interactive map displaying pins indicating where items have been lost on campus. Students can easily log their lost items, mark the locations on the map, and search existing pins to locate their belongings. Additionally, students can log items they find, leaving contact information for owners to reclaim their possessions.
How we built it
For the frontend, we used React. For login authentication we used Firebase, not allowing users to log lost/found items until they sign in to an account. Firestore stored data such as lost item coordinates, names, and contact information. The map functionality was implemented using the Leaflet library.
Challenges we ran into
We faced challenges when it came to handling our Git repository, and had difficulty keeping all of our local repos up to date, while coordinating the remote repository to maintain the most recent useful changes. Additionally, all members of our team were not very experienced with React, so creating a web app that requires so many components and state hooks proved to be a struggle.
Accomplishments we're proud of
We are proud of learning how to use the leaflet library for the first time, and being able to blend it with the other parts of the tech stack, a new framework for all of our first time working with maps. We also appreciate that our frontend team member was able to create a UI so similar to our original design, and what we wanted it to look like. We were also to implement all of the base functions that we wanted, such as logging and displaying pins on the map, and showing cards that contain previews of the existing entries.
What we learned
The project provided valuable learning experiences, particularly in utilizing Firebase for authentication and database systems and integrating them with our React application. We also learned that it is important to prioritize our base requirements, before allocating more time to perfecting aspects such as aesthetic. Another important learning milestone that occurred is that we were able to more efficiently and neatly send and retrieve data from our database that previous attempts, due to the more well-ordered organization and formatting of our data.
What's next
There are a few more levels of functionality that we would like to implement eventually, such as being able to search and filter for items, which would be helpful. We also think it would be interesting to work with UCSC PD to establish official records of lost items. This step aims to enhance the reliability and credibility of our platform in reuniting students with their belongings. With these next steps, "Lost and Slugged" is could evolve into a more comprehensive and collaborative resource for the university community.
VIDEO DEMO
Getting Started with Create React App
This project was bootstrapped with Create React App.
Available Scripts
In the project directory, you can run:
npm start
Runs the app in the development mode.
Open http://localhost:3000 to view it in your browser.
The page will reload when you make changes.
You may also see any lint errors in the console.
npm test
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
npm run build
Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
npm run eject
Note: this is a one-way operation. Once you eject, you can't go back!
If you aren't satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
You don't have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
Learn More
You can learn more in the Create React App documentation.
To learn React, check out the React documentation.
Code Splitting
This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
Analyzing the Bundle Size
This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
Making a Progressive Web App
This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
Advanced Configuration
This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
Deployment
This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
npm run build fails to minify
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
INSTALLATION REQUIREMENTS
npm i firebase
npm i react-router-dom
npm i react-bootstrap
npm i react-leaflet
npm i react-scroll
npm install
Analysis
View
Metric
- 25
- 24
- 20
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FirebaseIn code
- HTMLIn code
- JavaScriptIn code
- ReactIn code
5 of 5 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
33 KB
Source files
19
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
crystalpop/LostandSlugged
26 files · 1.6 MB · @ f0d927d
Structure
Interface
3 files · 12%Screens, components and styles rendered to the user.
Application logic
12 files · 46%Domain rules, services and shared utilities.
Data & schema
1 file · 4%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript66%
- Markdown21%
- CSS10%
- HTML3%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
frontend/package.json
npm · 18- @testing-library/jest-dom
- @testing-library/react
- @testing-library/user-event
- bootstrap
- firebase
- leaflet
- react
- react-bootstrap
- react-dom
- react-hook-form
- react-leaflet
- react-leaflet-cluster
- react-router-dom
- react-scripts
- react-scroll
- react-text
- swiper
- web-vitals
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.