Local Services Booking Platform - Book trusted professionals for plumbing, electrical, tutoring, and more.
QuickServe is a full-stack platform connecting customers with local service providers. Think of it as Urban Company or TaskRabbit - a marketplace for home services, tutoring, fitness training, and more.
For Customers:
- Browse service categories
- Find rated, verified providers
- Book instantly, pay securely
- Leave reviews
For Service Providers:
- Create a professional profile
- Receive booking requests
- Manage schedule
- Build reputation
┌─────────────────────────────────────────────────────────────────────────────┐
│ FRONTEND │
│ React + TypeScript + Tailwind CSS │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Pages │ │Components│ │ Services │ │ Context │ │
│ │ (Routes) │ │ (UI) │ │ (API) │ │ (State) │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
│
│ HTTP (REST API)
│ JWT Authentication
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ BACKEND │
│ Java + Spring Boot + Spring Security │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │Controller│──▶│ Service │──▶│Repository│──▶│ Entity │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ┌──────────────────────┐ ┌──────────────────────┐ │
│ │ Security │ │ Caching │ │
│ │ (JWT, Filters) │ │ (Redis, @Cacheable) │ │
│ └──────────────────────┘ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ PostgreSQL │ │ Redis │
│ (Database) │ │ (Cache) │
└──────────────┘ └──────────────┘
QuickServe/
│
├── backend/ # Spring Boot application
│ ├── pom.xml # Maven dependencies
│ ├── README.md # Backend documentation
│ └── src/main/java/com/quickserve/
│ ├── controller/ # REST endpoints
│ ├── service/ # Business logic
│ ├── repository/ # Data access
│ ├── model/ # JPA entities
│ ├── dto/ # Request/Response objects
│ ├── config/ # Spring configuration
│ ├── security/ # JWT authentication
│ ├── cache/ # Redis caching
│ ├── exception/ # Error handling
│ └── util/ # Helpers
│
├── frontend/ # React application
│ ├── package.json # NPM dependencies
│ ├── README.md # Frontend documentation
│ └── src/
│ ├── components/ # Reusable UI
│ ├── pages/ # Page components
│ ├── services/ # API layer
│ ├── context/ # Global state
│ ├── hooks/ # Custom hooks
│ └── types/ # TypeScript types
│
└── README.md # This file
| Technology | Purpose |
|---|---|
| React 18 | UI library |
| TypeScript | Type safety |
| Vite | Build tool (fast!) |
| Tailwind CSS | Styling |
| React Router | Client-side routing |
| Axios | HTTP client |
| Technology | Purpose |
|---|---|
| Java 17 | Programming language |
| Spring Boot 3 | Application framework |
| Spring Security | Authentication |
| Spring Data JPA | Database access |
| PostgreSQL | Primary database |
| Redis | Caching & sessions |
| JWT | Token authentication |
- Java 17+
- Node.js 18+
- PostgreSQL 14+
- Redis 6+
- Maven 3.8+
# Navigate to backend
cd backend
# Create database
createdb quickserve_dev
# Run application
mvn spring-boot:runBackend runs at: http://localhost:8080/api
# Navigate to frontend
cd frontend
# Install dependencies
npm install
# Start dev server
npm run devFrontend runs at: http://localhost:3000
Each subfolder has its own detailed README:
- Backend README - Complete Spring Boot guide
- Frontend README - Complete React/TypeScript guide
New to this project? Here's the recommended order:
- Start with the Backend README - Understand Spring Boot concepts
- Read the package-info.java files - Each package explains its purpose
- Move to the Frontend README - Understand React patterns
- Study the types/ folder - See how data flows
- Trace a request - Follow a booking from UI to database
- User authentication (JWT)
- Service provider profiles
- Category browsing
- Booking creation
- Basic dashboard
- Real-time notifications
- Payment integration
- Reviews & ratings
- Search & filters
- Admin dashboard
- Analytics
- Mobile app (React Native)
This project is designed for learning. Feel free to:
- Ask questions via issues
- Suggest improvements
- Submit pull requests
MIT License - see LICENSE file for details.