Skip to content

hillhack/homemate-mad2-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 Household Services Application V2 - MAD II (Jan 2025)

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)


πŸ“Œ Project Overview

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

πŸ‘₯ Key Roles:

  • Admin: Superuser to manage the platform.
  • Service Professional: Provides one type of service and manages requests.
  • Customer: Books and reviews services.

πŸš€ Tech Stack

🧱 Backend:

  • Flask: For REST API development
  • SQLite: Database (mandatory)
  • Redis: Caching layer
  • Celery: Background and scheduled jobs
  • Flask-Login / JWT: Role-based access control (RBAC)

🎨 Frontend:

  • VueJS: UI rendering
  • Bootstrap: Styling (No other CSS framework allowed)

πŸ“¬ Communication:

  • Email: For reminders and reports

🧩 Core Features

πŸ” Authentication (RBAC):

  • Single Admin (no registration)
  • Login/Registration for Professionals and Customers
  • Role-specific dashboards

πŸ›  Admin Panel:

  • Approve/reject professional profiles
  • Block/unblock users
  • Create/Update/Delete services
  • Export closed service requests to CSV
  • Monitor platform activity

πŸ“ž Customer Dashboard:

  • Search for services (by name, pin code)
  • Create/edit/close service requests
  • Post reviews and remarks

πŸ‘·β€β™‚οΈ Professional Dashboard:

  • Accept/reject service requests
  • Mark services as completed
  • View own service history

⏱ Scheduled Jobs (via Celery):

  • Daily Reminder to professionals about pending visits
  • Monthly Activity Report for customers via email (HTML/PDF)
  • Admin-triggered CSV export of service request data

⚑ Performance:

  • Redis caching with expiry to boost API performance

πŸ—ƒ Database Structure

πŸ“Œ ER Diagram
db


πŸ“‚ Project Structure

β”œβ”€β”€ 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

πŸ“¬ Email & Notifications

  • 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

πŸ› οΈ Setup Instructions

1. Clone the Repository

git clone https://github.com/hillhack/homemate-mad2-
cd homemate-mad2-

2. Create Virtual Environment

python3 -m venv .env
source .env/bin/activate

3. Install Dependencies

pip install -r req.txt

4. Start Redis Server (Ensure Redis is installed)

redis-server

5. Run the Flask App

python3 app.py

App will start at: http://localhost:5000


🌟 Celery Setup

Open two separate terminals for the following:

1. Celery Beat (Scheduler)

celery -A app.celery_app beat -l info

2. Celery Worker

celery -A app.celery_app worker --loglevel=info

πŸ“¬ Email Testing with MailHog

Install MailHog:

brew install mailhog         # macOS
# OR
go install github.com/mailhog/MailHog@latest

Run MailHog:

~/go/bin/MailHog

View emails at: http://localhost:8025


πŸ‘©β€πŸ’» Contributors

  • Roll Number: 22f3001795
  • Name: Jyoti Sharma
  • Program: BS in Data Science, IITM Online Degree

πŸ“ Project Report

πŸ“„ Read Full Project Report


πŸ“œ License

This project is intended for educational use as part of the Modern Application Development II course at IIT Madras.


About

Its a homemate app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors