(This project solves the issue of tracking lost and found items efficiently for communities and colleges. It is continually being developed to include more features.)
A fully-featured, full-stack web application designed to help the community report, track, and reunite with their lost belongings. Built with a modern aesthetic, high performance, and secure authentication.
- Framework: React.js (via Vite)
- Routing: React Router DOM (Protected routes & seamless navigation)
- Styling: Tailwind CSS (v4) for responsive, rich, and dynamic user interfaces
- HTTP Client: Axios (Configured with request interceptors for JWT)
- Icons: Lucide-React (Clean, modern SVG icons)
- Environment: Node.js
- Framework: Express.js (REST API architecture)
- Authentication: JSON Web Tokens (JWT) + Bcrypt (Password hashing)
- File Uploads: Multer (Local static image storage)
- Utilities: CORS (Cross-Origin Resource Sharing) & dotenv
- Engine: MySQL
- Driver:
mysql2/promise(Promise-based MySQL client)
The repository is divided into two entirely separate applications:
/frontend: Contains the Vite React application./backend: Contains the Node.js Express server.
- Node.js installed on your machine.
- MySQL Server installed and running on port
3306.
Ensure your MySQL instance has the username root and password root. Then, initialize the schema:
cd backend
node scripts/initDB.jsIn your terminal, navigate to the backend folder and start the server:
cd backend
npm run devThe API will be available at http://localhost:5000.
Open a new, separate terminal, navigate to the frontend folder, and start the development server:
cd frontend
npm run devThe website will be available at http://localhost:5173.
- User Authentication: Secure login & registration using encrypted passwords and JWT tokens.
- Interactive Dashboard: Users can safely manage, delete, or resolve their own posted items.
- Reporting System: Report either a Lost or Found item, complete with categorized details, locations, and direct image uploads.
- Dynamic Search & Filtering: Filter all items by "Lost" or "Found" status, and search dynamically through titles and descriptions.
- Contact Integration: View direct contact information (Email) of the person who reported the item to facilitate the return.