A modern, scalable, and secure marketplace platform that connects customers with local service providers. Built with Java, Spring Boot, Hibernate, and PostgreSQL, this application enables users to post service requests, discover providers, manage bookings, process payments, and leave reviews.
Local Service Marketplace is a backend application designed to simplify the process of finding and hiring local professionals for various services such as home repairs, cleaning, plumbing, electrical work, tutoring, delivery services, and more.
The platform provides a robust REST API that allows customers to create service requests while enabling service providers to browse opportunities, accept jobs, and manage their bookings efficiently.
- Customer registration and authentication
- Service provider registration and authentication
- Role-based access control
- User profile management
- Create and manage service categories
- Organize tasks by category
- Easy service discovery
- Create service requests
- Update task details
- Track task status
- Assign providers to tasks
- Provider task acceptance
- Booking creation and management
- Booking status tracking
- Service scheduling
- Store customer locations
- Service area management
- Location-based service matching
- Payment record tracking
- Multiple payment methods
- Payment status monitoring
- Customer reviews and ratings
- Provider feedback management
- Reputation tracking
- Spring Security integration
- Secure API endpoints
- Authentication and authorization support
- Java 21
- Spring Boot
- Spring MVC
- Spring Data JPA
- Hibernate ORM
- Spring Security
- PostgreSQL
- Maven
- RESTful Web Services
- JSON Data Exchange
Client Application
│
▼
REST API Controllers
│
▼
Service Layer
│
▼
Repository Layer
│
▼
Hibernate / JPA
│
▼
PostgreSQL Database
local-service-marketplace/
│
├── pom.xml
│
├── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── marketplace/
│ │
│ │ ├── config/
│ │ │ └── SecurityConfig.java
│ │ │
│ │ ├── controller/
│ │ │ ├── TaskController.java
│ │ │ └── BookingController.java
│ │ │
│ │ ├── entity/
│ │ │ ├── User.java
│ │ │ ├── Category.java
│ │ │ ├── Location.java
│ │ │ ├── Task.java
│ │ │ ├── Booking.java
│ │ │ ├── Payment.java
│ │ │ └── Review.java
│ │ │
│ │ ├── repository/
│ │ │ ├── UserRepository.java
│ │ │ ├── TaskRepository.java
│ │ │ └── BookingRepository.java
│ │ │
│ │ ├── service/
│ │ │ ├── TaskService.java
│ │ │ └── BookingService.java
│ │ │
│ │ └── LocalServiceMarketplaceApplication.java
│ │
│ └── resources/
│ └── application.properties
│
└── README.md
- User
- Category
- Location
- Task
- Booking
- Payment
- Review
User (Customer)
│
├── Creates
▼
Task
│
├── Belongs To Category
├── Has Location
│
▼
Booking
│
▼
Payment
User (Provider)
│
└── Accepts Booking
Customer
│
└── Creates Review
│
▼
Provider
git clone https://github.com/yourusername/local-service-marketplace.git
cd local-service-marketplaceCreate a database:
CREATE DATABASE local_marketplace;Edit:
src/main/resources/application.properties
spring.datasource.url=jdbc:postgresql://localhost:5432/local_marketplace
spring.datasource.username=postgres
spring.datasource.password=yourpassword
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=truemvn clean installmvn spring-boot:runApplication starts on:
http://localhost:8080
POST /api/tasksGET /api/tasksPOST /api/bookings{
"title": "Fix Kitchen Sink",
"description": "Need an experienced plumber",
"budget": 150.00
}- JWT Authentication
- User Registration & Login
- Provider Availability Scheduling
- Real-Time Notifications
- Email Verification
- Password Reset
- Payment Gateway Integration
- Service Provider Search
- Advanced Filtering
- Geolocation Support
- Mobile Application Integration
- Admin Dashboard
- Analytics & Reporting
- Chat System
- File Uploads
- Service Images
- Core CRUD Operations
- User Management
- Task Management
- Authentication
- Authorization
- JWT Security
- Payments
- Notifications
- Reviews
- Mobile Integration
- Real-Time Messaging
- Advanced Analytics
Contributions are welcome.
- Fork the repository
- Create a feature branch
git checkout -b feature/new-feature- Commit your changes
git commit -m "Add new feature"- Push your branch
git push origin feature/new-feature- Open a Pull Request
This project is licensed under the MIT License.
Developed with Java, Spring Boot, Hibernate, and PostgreSQL.
Designed as a scalable marketplace platform for connecting customers and service providers through a secure and modern service ecosystem.