{"id":26307697,"url":"https://github.com/hossein-sa/workforce_spring_project","last_synced_at":"2026-05-02T10:39:06.073Z","repository":{"id":282539760,"uuid":"946717560","full_name":"hossein-sa/workforce_spring_project","owner":"hossein-sa","description":"Home Services Management System – A Spring Boot application that enables customers to request services, specialists to offer expertise, and admins to manage users, orders, and transactions. Includes secure authentication (JWT), payments, ratings, and reviews.","archived":false,"fork":false,"pushed_at":"2025-03-11T15:16:59.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-04T05:04:40.644Z","etag":null,"topics":["hibernate","java17","rest-api","review-rating-system","service-marketplace","spring-boot","spring-security","wallet"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hossein-sa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-11T15:12:18.000Z","updated_at":"2025-03-11T15:25:44.000Z","dependencies_parsed_at":"2025-03-15T18:15:31.387Z","dependency_job_id":null,"html_url":"https://github.com/hossein-sa/workforce_spring_project","commit_stats":null,"previous_names":["hossein-sa/workforce_spring_project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hossein-sa/workforce_spring_project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein-sa%2Fworkforce_spring_project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein-sa%2Fworkforce_spring_project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein-sa%2Fworkforce_spring_project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein-sa%2Fworkforce_spring_project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hossein-sa","download_url":"https://codeload.github.com/hossein-sa/workforce_spring_project/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein-sa%2Fworkforce_spring_project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32531742,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hibernate","java17","rest-api","review-rating-system","service-marketplace","spring-boot","spring-security","wallet"],"created_at":"2025-03-15T10:15:42.481Z","updated_at":"2026-05-02T10:39:06.067Z","avatar_url":"https://github.com/hossein-sa.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🏠 Home Services Management System\n\n## 📌 Project Overview\nThe **Home Services Management System** is a platform where **customers** can request home services, **specialists** can offer their expertise, and **admins** can manage the system. The platform includes **order management, specialist approval, reviews, payments, and authentication**.\n\n---\n\n## 🚀 Features\n\n### 🔹 **For Customers**\n- ✅ Register and log in to the system.\n- ✅ Browse available services.\n- ✅ Place an **order** for a specific **sub-service**.\n- ✅ View **proposals** submitted by specialists.\n- ✅ Select a specialist for the job.\n- ✅ Make **payments** (online or wallet balance).\n- ✅ Leave **reviews \u0026 ratings** for specialists.\n\n### 🔹 **For Specialists**\n- ✅ Register and log in to the system.\n- ✅ Complete **profile verification** and wait for admin approval.\n- ✅ Select **fields of expertise** (sub-services).\n- ✅ View **available orders** in their expertise.\n- ✅ Submit **proposals** (offer price \u0026 duration).\n- ✅ Start and complete orders.\n- ✅ Receive **payments** (70% of order price).\n- ✅ View received **reviews** and maintain rating.\n\n### 🔹 **For Admins**\n- ✅ Manage **users (Customers, Specialists, Admins)**.\n- ✅ Approve or reject **specialist registrations**.\n- ✅ Manage **orders and payments**.\n- ✅ View and manage **customer \u0026 specialist accounts**.\n- ✅ Filter \u0026 search through user lists.\n- ✅ **Suspend specialists** with a rating below 3.5.\n\n---\n\n## 📌 Technologies Used\n- **Java 17** (Backend)\n- **Spring Boot** (Framework)\n- **Spring Security \u0026 JWT** (Authentication)\n- **Hibernate \u0026 JPA** (ORM)\n- **PostgreSQL** (Database)\n- **Lombok** (Boilerplate reduction)\n- **Maven** (Dependency Management)\n- **Postman** (API Testing)\n\n---\n\n## 📌 API Endpoints\n\n### 🔹 **Authentication**\n| Method | Endpoint | Description |\n|--------|---------|-------------|\n| `POST` | `/api/auth/register` | Register new users (Customer/Specialist) |\n| `POST` | `/api/auth/login` | User login \u0026 JWT generation |\n\n---\n\n### 🔹 **Customer Endpoints**\n| Method | Endpoint | Description |\n|--------|---------|-------------|\n| `POST` | `/api/orders` | Place an order |\n| `GET` | `/api/orders/{orderId}/proposals` | View proposals for an order |\n| `POST` | `/api/orders/{orderId}/select-proposal/{proposalId}` | Select a specialist's proposal |\n| `POST` | `/api/orders/{orderId}/pay` | Make a payment for an order |\n| `POST` | `/api/orders/{orderId}/review` | Submit a review for a specialist |\n\n---\n\n### 🔹 **Specialist Endpoints**\n| Method | Endpoint | Description |\n|--------|---------|-------------|\n| `POST` | `/api/specialist/{id}/add-services` | Add expertise (sub-services) |\n| `GET` | `/api/specialist/orders` | View available orders |\n| `POST` | `/api/orders/{orderId}/submit-proposal` | Submit a proposal for an order |\n| `PUT` | `/api/orders/{orderId}/start` | Start an order |\n| `PUT` | `/api/orders/{orderId}/complete` | Mark order as completed |\n| `GET` | `/api/specialist/{specialistId}/reviews` | View received reviews |\n\n---\n\n### 🔹 **Admin Endpoints**\n| Method | Endpoint | Description |\n|--------|---------|-------------|\n| `GET` | `/api/admin/users` | Get all users (Customers \u0026 Specialists) |\n| `PUT` | `/api/admin/specialist/status/{specialistId}` | Change specialist status |\n| `GET` | `/api/admin/orders` | View all orders |\n| `GET` | `/api/admin/payments` | View payment transactions |\n\n---\n\n## 📌 Setup \u0026 Run Instructions\n\n### 🔹 **1️⃣ Clone Repository**\n```sh\ngit clone https://github.com/your-repo/home-services.git\ncd home-services\n```\n\n### 🔹 **2️⃣ Configure Database**\n- Update `application.properties` in `src/main/resources/`:\n```properties\nspring.datasource.url=jdbc:postgresql://localhost:5432/home_services\nspring.datasource.username=your_username\nspring.datasource.password=your_password\nspring.jpa.hibernate.ddl-auto=update\n```\n\n### 🔹 **3️⃣ Run the Application**\n```sh\nmvn spring-boot:run\n```\n\n### 🔹 **4️⃣ API Testing with Postman**\n- Import the Postman collection provided in `docs/Postman_Collection.json`.\n- Use **JWT Authentication** for secured endpoints.\n\n---\n\n## 📌 Specialist Rating System\n- Specialists have a **rating** based on customer reviews.\n- **If their rating drops below 3.5**, they are **moved to PENDING_APPROVAL**.\n- **Pending specialists cannot see orders** until **admin re-approves** them.\n\n---\n\n## 📌 Payment System\n- Customers must have **sufficient balance** in their account.\n- **70% of the order price** is transferred to the **specialist's balance**.\n- Payment records are stored in the **Payment table**.\n\n---\n\n## 📌 Future Improvements\n- ✅ Add **email notifications** for status updates.\n- ✅ Implement **search \u0026 filter** for orders.\n- ✅ Add **real-time chat** between customers and specialists.\n\n---\n\n## 💡 Contributors\n- 👤 **Hossein Sadeghi** - Developer\n\n---\n\n## 📝 License\nThis project is **open-source** and available under the **MIT License**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhossein-sa%2Fworkforce_spring_project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhossein-sa%2Fworkforce_spring_project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhossein-sa%2Fworkforce_spring_project/lists"}