BackToYou is a web application designed to help reunite lost belongings with their owners.
Users can create either a Lost Item listing or a Found Item listing, making it easier for people to connect safely and securely when an item has been misplaced.
The platform provides a central place for people to search, filter, and view lost property instead of relying on scattered social media posts, local community groups or word of mouth. To reduce fraudulent claims, found-item photos are blurred until a claim is verified, and a contact form lets potential owners get in touch about an item.
Every day, people lose valuable and sentimental items such as keys, wallets, jewellery, documents, electronics, bags and other personal belongings. Finding these items again can be difficult because information is often spread across multiple platforms.
There is currently no simple, user friendly platform that brings together lost and found listings in one place while also providing a safe process for verifying ownership.
As a result:
- Lost items are often never reunited with their owners.
- People spend significant time searching across multiple websites and platforms.
- Finders may not know where to report an item they have found.
- Owners may struggle to prove ownership safely.
- Fraudulent claims can occur when too much information is shared publicly.
- Unclaimed items are frequently thrown away, adding needlessly to landfill and waste.
- Travellers, who often lose items far from home
- Students, moving between campuses, libraries and shared spaces
- Families, keeping track of children's belongings
- Public transport users, where items are easily left behind
- Event attendees at festivals, conferences and venues
- The general public, who may find an item and want to return it
- User registration and login (Clerk authentication)
- Create Lost item listings
- Create Found item listings
- Browse listings with search and filters
- Image upload and hosting (Cloudinary), with found-item photos blurred to deter false claims
- Map view placeholder (React Leaflet + OpenStreetMap)
- Personal dashboard showing the signed-in user's own listings
- Contact form to start a claim on a listing (to be connected - in progress)
- MySQL database storage for users and listings
- Private claim threads / direct messaging between finders and owners
- Edit / delete listings
- Full ownership verification flow (answer a verification question to claim)
- Notifications and match alerts for similar lost and found items
- Accurate Map view of item locations (React Leaflet + OpenStreetMap)
- Radius-based search
- Gamification features
- Mobile-app version
- Frontend: React (Vite), Mantine UI, React Router, React Leaflet
- Authentication: Clerk
- Image hosting: Cloudinary
- Maps: React Leaflet + OpenStreetMap
- Backend: Node.js, Express
- Database: MySQL (via mysql2)
| Team Member | Role | Key contributions |
|---|---|---|
| Elizabeth | Full-stack | Cloudinary integration, Clerk + Mantine setup, UI styling, project coordination, documentation |
| Karen | Full-stack | User dashboard, listing form skeleton, UI styling, presentation, documentation |
| Nicole | Full-stack | Express API, threads feature, backend, documentation, report write-up |
| Divya | Full-stack | GitHub & SQL setup, browse pages, backend connection, testing, UI styling |
| Tia | Full-stack | Database, inbox & card logic, report write-up, threads feature, backend, documentation |
| Victoria | Full-stack | UI styling, listing page, backend, API–frontend connections, testing, documentation |
BackToYou/
├── backend/ # Express API and routes
├── database/ # MySQL schema and seed data
├── src/ # React frontend
│ ├── components/ # Reusable UI components
│ ├── pages/ # Page views (Home, Browse, Dashboard…)
│ ├── hooks/ # Custom React hooks
│ ├── utils/ # Helper functions
│ └── testing/ # Unit tests
├── public/ # Static files
└── package.json # Frontend dependencies & scripts
- Node.js and npm
- A running MySQL server
- A Clerk account (for auth keys)
- A Cloudinary account (for image keys)
git clone https://github.com/divkokal/BackToYou.gitcd BackToYou
In MySQL, run the schema then the seed data:
mysql -u <user> -p < database/schema.sql
mysql -u <user> -p < database/test-data.sql
cd backendnpm install- Copy
example.envto a.envand fill in your values - Start the backend:
npm run dev
cd ..(project root)npm install- Copy
example.envto.envand fill in your values - Start the frontend:
npm run dev - The app runs at
http://localhost:5173and the API athttp://localhost:3000
npm run dev- start the dev server (frontend or backend)npm run vitest- run the test suite