A Smart Digital Laundry Management System for hostels and residences. Track your clothes, schedule pickups, and get notified instantly.
- User Authentication - Secure signup and login with JWT
- Role-Based Access - Support for Students, Washers, and Admins
- Laundry Tracking - Real-time status updates (Pending → Picked Up → In Progress → Ready → Delivered)
- Dashboard - Personal dashboard for students to manage requests
- Admin Panel - Comprehensive admin dashboard for managing all requests
- Modern UI - Beautiful, responsive design with smooth animations
- Database Storage - All data securely stored in MongoDB
- Frontend: React, Vite, Tailwind CSS, Axios
- Backend: Node.js, Express, MongoDB, Mongoose
- Authentication: JWT (JSON Web Tokens)
- Password Hashing: bcryptjs
- Node.js (v14 or higher)
- MongoDB (local installation or MongoDB Atlas account)
- npm or yarn
git clone <repository-url>
cd WashEasecd server
npm installCreate a .env file in the server directory:
MONGO_URI=mongodb://localhost:27017/washease
JWT_SECRET=your_super_secret_jwt_key_here
PORT=5001
NODE_ENV=developmentFor MongoDB Atlas:
- Sign up at MongoDB Atlas
- Create a free cluster
- Get your connection string
- Replace
MONGO_URIwith your Atlas connection string
Generate JWT Secret:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Start the server:
npm run devServer will run on http://localhost:5001
cd client
npm install
npm run devFrontend will run on http://localhost:5173 (or the port Vite assigns)
WashEase/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── context/ # React context (Auth)
│ │ ├── utils/ # Utility functions
│ │ └── App.jsx # Main app component
│ └── package.json
├── server/ # Express backend
│ ├── config/ # Database configuration
│ ├── controllers/ # Route controllers
│ │ └── README.md # 📚 Controllers documentation
│ ├── middleware/ # Auth middleware
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ └── server.js # Entry point
├── README.md # Main documentation
├── START.md # Quick start guide
├── GIT_SETUP.md # Git push instructions
└── .gitignore # Git ignore rules
- Student - Can create laundry requests and view their own requests
- Washer - Can view all requests and update status
- Admin - Full access to all features
POST /api/auth/signup- Register new userPOST /api/auth/login- Login user
POST /api/laundry- Create laundry requestGET /api/laundry- Get user's laundry requestsGET /api/laundry/all- Get all requests (Admin/Washer)PUT /api/laundry/:id- Update laundry status (Admin/Washer)
📚 Detailed API Documentation: See
server/controllers/README.mdfor complete controller documentation with request/response examples, error codes, and testing examples.
- users - User accounts with authentication
- laundries - Laundry requests with status tracking
- Ensure MongoDB is running locally, or
- Check your MongoDB Atlas connection string
- Verify network access in Atlas (if using cloud)
- Change
PORTin server.envfile - Or kill the process using the port
- Ensure backend is running on port 5001
- Check
vite.config.jsproxy configuration - Verify CORS is enabled in server
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
PORT=5001
NODE_ENV=development- ✅ User registration and authentication
- ✅ Role-based access control
- ✅ Create and manage laundry requests
- ✅ Real-time status tracking
- ✅ Admin dashboard with statistics
- ✅ Responsive design
- ✅ Smooth animations and transitions
- ✅ Error handling and validation
- ✅ Secure password hashing
- ✅ JWT token authentication
This project is open source and available under the MIT License.
Contributions, issues, and feature requests are welcome!
Made with ❤️ for easy laundry management