It is a multi-user app (requires one admin and other service professionals/ customers) which acts as platform for providing comprehensive home servicing and solutions.
Frameworks to be used
These are the mandatory frameworks on which the project has to be built.
SQLite for data storage
Flask for API
VueJS for UI
VueJS Advanced with CLI (only if required, not necessary)
Jinja2 templates if needed (Not to be used for UI)
Bootstrap for HTML generation and styling (No other CSS framework is allowed)
SQLite for database (No other database is permitted)
Redis for caching
Redis and Celery for batch jobs
Roles
The platform will have three roles;
Admin - root access - it is a superuser of the app and requires no registration.
Admin login redirects to the admin dashboard
Admin will monitor all the users (customers/service professionals)
Admin will create a new service with a base price
Admin will approve a service professional after verification of profile docs
Admin will block customer/service professionals based on fraudulent activity/poor reviews
Other operations*
Service Professional - An individual that provides the service
Login/Register
Service professionals will accept/reject a request
Each professional may have;
ID
Name
Date created
Description
service_type
Experience
etc.
One professional is good at one of the services only
He/she can accept/reject an assigned service request
Professional profiles are visible based on customer reviews
The professional will exit the location after the service is closed by the customer
Customer - an individual who has to book a service request
Login/Register
View/Search the service by the name/location pin code
Open/close a service request
He/she can post reviews/remarks on the closed service
Others
Terminologies
Service - It refers to the type of service that the customer is looking for e.g AC servicing, plumbing etc.
Each service may have;
ID
Name
Price
Time required
Description etc.
Service Request: A customer creates a service request providing the type of service the customers is looking for, when is it required etc.
A service request may contain the following attributes:
id - primary key
service_id(foreign key-services table)
customer_id(foreign key-customer table)
professional_id(foreign key-professional table)
date_of_request
date_of_completion
service_status(requested/assigned/closed)
remarks (if any) etc.
Core Functionalities
Admin login, professional and user login (RBAC)
A login/register form with fields like username, password etc. for professional, user and admin login
The application should have only one admin identified by his role.
You can either use Flask security (session or token) or JWT based Token based authentication to implement role-based access control
The app must have a suitable model to store and differentiate all the types of users of the app.
2. Admin Dashboard - for the Admin
Admin login redirects to admin dashboard
Admin will manage all the users (customers/service professional)
Admin will approve a service professional after verification of profile docs
Admin will block customer/service professional based on fraudulent activity/poor reviews
3. Service Management - for the Admin
Create a new service with a base price.
Update an existing service - e.g. name, price, time_required and/or other fields
Delete an existing service
4. Service Request - for the customers
Create a new service request based on the services available
Edit an existing service request - e.g. date_of_request, completion status, remarks etc
Close an existing service request.
5. Search for available services
The customers should be able to search for available services based on their location, name, pin code etc.
The admin should be able to search for a professional to block/unblock/review them.
6. Take action on a particular service request - for the service professional
Ability to view all the service requests from all the customers
Ability to accept/reject a particular service request
Ability to close the service request once completed
With an unwavering passion for web and app development, my team at RoundWeb Infotech is fully equipped to bring your Classic Home Services Multi-User App design to life. I am convinced that our knowledge and experience with Flask for API, SQLite/Redis for database, and Bootstrap for HTML generation and styling place us in a strong position to deliver on your desired functionalities.
Your project's multi-user feature with distinct roles makes it an interesting challenge that we are absolutely prepared for. Our expertise with incorporating role-based access control tied to secure JWT token authentication goes hand-in-hand with what you seek. We also understand the importance of providing a robust admin dashboard as it serves as the nucleus of operations - monitoring users, managing services, facilitating requests - and we are committed to building one tailored specifically to your needs.
Moreover, our experience extends beyond just technical execution. As a successful Software Development Agency, we place high value on effective communication and dedicated post-launch support. Rest assured that partnering with us will not only ensure top-notch development but also a long-term relationship built on trust and reliability. Let's connect to discuss the specifics of your project further - ensuring we not only meet but exceed your expectations at every turn.
Dear client,
I have read your requirement. and thank you for sharing the details. I would like to discuss this opportunity with you on call.
Let me know when we can connect and discuss.
Regards.
Sam
Integrating Redis for caching and Celery for batch jobs will enhance performance in your multi-user app. Are you considering specific metrics for success in user interaction or service request management?
With over 5 years of experience in Flask, VueJS, and SQLite, I’ve successfully built similar platforms. I specialize in creating intuitive UIs with Bootstrap and ensuring seamless role management via JWT for effective access control.
My approach involves not only implementing the mandatory frameworks but also tailoring features to optimize user experience. I can deliver an efficient admin dashboard for streamlined user management and service oversight.
I’d love to discuss your project in detail and tailor the solution to meet your needs. Let me know if you’re available for a chat!