A desktop application that helps clients find and connect with suitable workers (e.g., plumbers, carpenters, electricians, etc.) for specific tasks. This system includes user registration, task management, rating and feedback mechanisms, and matching logic, all implemented with a GUI using Qt C++ and backed by an SQL database.
- Store worker details:
- Unique ID
- Name
- One or more specialties
- Supported work locations
- Available time slots
- Calculate overall worker rating based on client feedback after completed tasks
- Store client details:
- Client ID
- Name
- Phone number
- Address
- Email address
- Track overall feedback from workers about each client
- Store task details:
- Task ID
- Task name
- Required specialty
- Average time required
- Average task fee
- Clients can submit task requests including:
- Request ID
- Client ID
- Task ID
- Request address
- Time of request placement
- Preferred time slot for task execution
- After task execution, system records:
- Request ID
- Assigned worker ID
- Actual time taken
- Worker rating by client
- Client rating by worker
- Request status (e.g., open, finished)
- Optional client and worker feedback
- GUI Framework: Qt (C++)
- Database: SQL
- Language: C++
- Smooth and user-friendly desktop interface
- Accurate worker-client matching based on availability, specialty, and location
- Efficient tracking of ratings and feedback
- Structured data storage with a relational SQL database
- If the client does not have an account, they can go to the Signup page and create one.
- If the client already has an account, they can go to the Login page and enter their credentials to sign in.
- Displays a list of available workers, including:
- Their overall rating
- Their specialties
- When clicking on any worker, a window appears showing all clients that the worker has worked with.
- Displays all specialties in the application.
- Shows the best and worst worker in each task based on overall ratings.
- Displays a list of available tasks along with task details.
- When clicking on any task, you are forwarded to the Add Request page where you can:
- Add a new request in this task
- Choose a worker
- Select preferred time slots
- Add an optional description
- Displays all of the client's requests with their current status:
PendingIn ProgressCompleted
- When clicking on any request, you can:
- Edit the request
- Delete the request
- Mark it as completed
- Once marked as completed, a window appears allowing the client to rate the worker and write optional feedback
- Displays the client's information
- Allows the client to:
- Edit their profile
- Delete their account
- Navigate to the Requests page that shows:
- All workers who have worked with the client
- Their feedback and ratings
- Esraa Emary Abd El-Salam: GitHub - LinkedIn
- Adel ahmed Mohamed el hefny: GitHub - LinkedIn
- Mahmoud Abdelaziz: GitHub - LinkedIn
- Marwan Hussein: GitHub - LinkedIn
- Andrew Wafae: GitHub - LinkedIn
This project is licensed under the MIT License.