The Household Services Application is a platform designed to connect customers with service professionals for various household services such as plumbing, electrical repairs, and AC maintenance. The application features three user roles:
- Customers: Can register, log in, and request household services.
- Service Professionals: Manage service requests assigned to them and update their statuses.
- Admin: Oversees user activities, manages service requests, and ensures proper system operation.
- Project Overview
- Features
- Technologies Used
- Installation Instructions
- Database Schema
- Testing
- Future Improvements
- Project Video
- Role-based Authentication: Secure login and registration for customers, service professionals, and admins.
- Service Request System: Customers can request services, and service professionals can manage and update service request statuses.
- Admin Dashboard: Admin can manage users, view service requests, and monitor system activities.
- Responsive UI: The frontend is designed using Bootstrap with a modern dark theme for a clean, user-friendly interface.
- Backend: Flask, SQLite, Flask-Login
- Frontend: Bootstrap, Jinja2 (for templating)
- Database: SQLite
- Other Libraries: Flask-WTF (for form handling)
-
Clone the repository to your local machine:
git clone https://github.com/venkatesh-am/household-services.git cd household-services
-
Navigate to the
code
directory:cd code
-
Set up the virtual environment:
-
Create a virtual environment:
python -m venv venv
-
Activate the virtual environment:
- On Windows:
venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate
- On Windows:
-
-
Install the required Python packages:
python -m pip install -r requirements.txt --timeout 100 --no-cache-dir
-
Configure the Database URI:
- Open the
run.py
file located in thecode
directory. - Find the line where the database URI is set (it will look something like this):
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///your_database.db'
- Update the path to point to your local database file. For example, if your database is located at
/path/to/your/database.db
, change the line to:app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////path/to/your/database.db'
- Open the
-
Set up the SQLite database by running the following:
flask db upgrade
-
Run the application locally:
python run.py
The application will be available at
http://127.0.0.1:5000/
.
The database is structured using the following relational tables:
- Users: Contains
id
,username
,password
, androle
to distinguish between customers, service professionals, and admins. - Services: Contains
service_id
,name
,payment
, anddescription
for each service. - Service Requests: Tracks requests with
request_id
,service_id
,customer_id
,professional_id
,status
, andremarks
. - Professionals: Contains
professional_id
,expertise
, andprofile_verified
status for each service professional.
The application has been tested locally to ensure the proper functioning of the following:
- User registration and login
- Service request creation and status updates
- Role-specific dashboards for customers, service professionals, and admins
- Data Analytics: Implement data analytics to track service usage trends and user satisfaction.
- Service Feedback: Allow customers to leave feedback on completed services to improve the platform’s user engagement.
You can view the demo video for the project here:
Project Video
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to customize it further if needed!