A multi-role home services platform built as part of the Modern Application Development II course at IIT Madras. This web application enables users to book and manage household services efficiently, with roles for Admin, Customers, and Service Professionals. problem statement link(https://docs.google.com/document/u/1/d/1g-TDnTHgpAcgMIdMYC2ePBgasJfOIkjRXvjkHjEHiqk/pub)
The application offers a platform for:
- Customers to request household services
- Service Professionals to accept/reject assigned jobs
- Admins to monitor and manage users, services, and requests
- Admin: Superuser to manage the platform.
- Service Professional: Provides one type of service and manages requests.
- Customer: Books and reviews services.
- Flask: For REST API development
- SQLite: Database (mandatory)
- Redis: Caching layer
- Celery: Background and scheduled jobs
- Flask-Login / JWT: Role-based access control (RBAC)
- VueJS: UI rendering
- Bootstrap: Styling (No other CSS framework allowed)
- Email: For reminders and reports
- Single Admin (no registration)
- Login/Registration for Professionals and Customers
- Role-specific dashboards
- Approve/reject professional profiles
- Block/unblock users
- Create/Update/Delete services
- Export closed service requests to CSV
- Monitor platform activity
- Search for services (by name, pin code)
- Create/edit/close service requests
- Post reviews and remarks
- Accept/reject service requests
- Mark services as completed
- View own service history
- Daily Reminder to professionals about pending visits
- Monthly Activity Report for customers via email (HTML/PDF)
- Admin-triggered CSV export of service request data
- Redis caching with expiry to boost API performance
βββ app.py
βββ backend
β βββ api
β β βββ customers.py
β β βββ __init__.py
β β βββ professionals.py
β β βββ review.py
β β βββ service.py
β βββ celery
β β βββ celery_fac.py
β β βββ celery_schedule.py
β β βββ mail_service.py
β β βββ task.py
β β βββ user-downloads
β βββ config.py
β βββ create_initial_data.py
β βββ models.py
β βββ routes.py
βββ frontend
β βββ app.js
β βββ components
β β βββ Navbar.js
β βββ index.html
β βββ pages
β β βββ AdminDash.js
β β βββ CusDash.js
β β βββ CusStats.js
β β βββ Home.js
β β βββ Login.js
β β βββ ProfDash.js
β β βββ ProfStats.js
β β βββ Register.js
β βββ styles.css
β βββ utils
β βββ router.js
β βββ store.js
βββ README.md
βββ req.txt
- Reminders: Daily reminders for professionals with pending tasks
- Reports: Monthly HTML/PDF summary to customers
- Export CSV: Admin-triggered async batch job for exporting data
git clone https://github.com/hillhack/homemate-mad2-
cd homemate-mad2-python3 -m venv .env
source .env/bin/activatepip install -r req.txtredis-serverpython3 app.pyApp will start at: http://localhost:5000
Open two separate terminals for the following:
celery -A app.celery_app beat -l infocelery -A app.celery_app worker --loglevel=infoInstall MailHog:
brew install mailhog # macOS
# OR
go install github.com/mailhog/MailHog@latestRun MailHog:
~/go/bin/MailHogView emails at: http://localhost:8025
- Roll Number: 22f3001795
- Name: Jyoti Sharma
- Program: BS in Data Science, IITM Online Degree
This project is intended for educational use as part of the Modern Application Development II course at IIT Madras.
