https://github.com/berkanserbes/smart-appointment-system
Smart, secure appointment management API built with Spring Boot, JWT, Redis, and PostgreSQL. Includes automated email reminders, role-based access, and admin reporting.
https://github.com/berkanserbes/smart-appointment-system
java java-security spring-boot
Last synced: about 9 hours ago
JSON representation
Smart, secure appointment management API built with Spring Boot, JWT, Redis, and PostgreSQL. Includes automated email reminders, role-based access, and admin reporting.
- Host: GitHub
- URL: https://github.com/berkanserbes/smart-appointment-system
- Owner: berkanserbes
- License: mit
- Created: 2026-02-12T14:20:00.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-05-12T11:35:19.000Z (about 2 months ago)
- Last Synced: 2026-05-12T12:34:58.044Z (about 2 months ago)
- Topics: java, java-security, spring-boot
- Language: Java
- Homepage:
- Size: 176 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐
Smart Appointment System
### A modern, secure, and scalable appointment management platform
[](https://openjdk.org/)
[](https://spring.io/projects/spring-boot)
[](https://www.postgresql.org/)
[](https://redis.io/)
[](https://www.docker.com/)
[](LICENSE)
[Features](#-features) โข [Quick Start](#-quick-start) โข [Documentation](#-documentation) โข [Tech Stack](#tech-stack) โข [Contributing](#-contributing)
---
## ๐ Features
### ๐ Authentication & Security
- JWT-based authentication
- Role-based access control (USER/ADMIN)
- BCrypt password encryption
- Secure session management
### ๐ Appointment Management
- Complete lifecycle management
- Conflict detection
- Status tracking (Scheduled, Confirmed, Completed, etc.)
- Time slot validation
### ๐ Performance & Scalability
- Redis caching layer with graceful fallback
- Scheduled background task processing
- Email notification delivery via SMTP
- Docker containerization
### ๐ Audit & Compliance
- Comprehensive audit logging
- User action tracking
- IP address recording
- Compliance-ready reports
### โจ Additional Features
- ๐ฅ **Service Provider Management** - Manage professionals and their services
- ๐ **Location Management** - Multiple location support
- ๐ท๏ธ **Category System** - Organize appointments by type
- โญ **Feedback System** - Collect and manage user reviews
- ๐ง **Email Notifications** - Automated reminder system
- ๐ **Reporting Dashboard** - Admin analytics and insights
- ๐ **API Documentation** - Interactive Swagger UI
---
## ๐ Quick Start
### Prerequisites
- Docker & Docker Compose
- Java 25 (for local development)
- Maven 3.9+ (for local development)
### ๐ณ Run with Docker (Recommended)
```bash
# 1. Clone the repository
git clone https://github.com/yourusername/smart-appointment-system.git
cd smart-appointment-system
# 2. Setup environment
cp .env.example .env.development
# Edit .env.development with your configuration
# 3. Start all services
docker-compose --env-file .env.development up --build
# 4. Access the application
API: http://localhost:8080
Swagger UI: http://localhost:8080/swagger-ui.html
```
### ๐ป Local Development
```bash
# 1. Start PostgreSQL and Redis
docker-compose up postgres redis -d
# 2. Run the application
mvn spring-boot:run
# 3. Access Swagger UI
open http://localhost:8080/swagger-ui.html
```
---
## ๐ Documentation
| Document | Description |
|----------|-------------|
| ๐ [Architecture](docs/ARCHITECTURE.md) | System design and architecture patterns |
| ๐๏ธ [Database Schema](docs/DATABASE_SCHEMA.md) | Complete database structure and relationships |
| ๐ณ [Docker Guide](docs/DOCKER_GUIDE.md) | Docker setup and commands |
| โ๏ธ [Environment Setup](docs/ENVIRONMENT_SETUP.md) | Configuration and environment variables |
| ๐ค [Contributing](CONTRIBUTING.md) | How to contribute to the project |
---
## Tech Stack
### Backend Framework
### Database & Cache
### Security & API
### DevOps & Tools
---
## ๐๏ธ Architecture
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Client Applications โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ REST API
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Controller Layer โ
โ โข Request validation โ
โ โข Response formatting โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DTOs
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Service Layer โ
โ โข Business logic โ
โ โข Transaction management โ
โ โข Authorization โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Entities
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Repository Layer โ
โ โข Data access โ
โ โข Query optimization โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโดโโโโโโโโโโโ
โผ โผ
โโโโโโโโโโโโ โโโโโโโโโโโโ
โPostgreSQLโ โ Redis โ
โโโโโโโโโโโโ โโโโโโโโโโโโ
```
**Key Design Patterns:**
- ๐ฏ Repository Pattern
- ๐ DTO Pattern
- ๐ญ Service Layer Pattern
- ๐บ๏ธ Mapper Pattern
- ๐จ Builder Pattern
---
## ๐ Project Structure
```
smart-appointment-system/
โโโ ๐ src/main/java/com/smartappointment/
โ โโโ ๐ง config/ # Configuration classes
โ โโโ ๐ฎ controller/ # REST endpoints
โ โโโ ๐ฆ dto/ # Data Transfer Objects
โ โโโ โ ๏ธ exception/ # Custom exceptions
โ โโโ ๐บ๏ธ mapper/ # Entity-DTO mappers
โ โโโ ๐ model/ # JPA entities & enums
โ โโโ ๐พ repository/ # Data access layer
โ โโโ ๐ security/ # Security components
โ โโโ ๐ผ service/ # Business logic
โ โโโ ๐ ๏ธ util/ # Utility classes
โ
โโโ ๐ docs/ # Documentation
โ โโโ ARCHITECTURE.md
โ โโโ DATABASE_SCHEMA.md
โ โโโ DOCKER_GUIDE.md
โ โโโ ENVIRONMENT_SETUP.md
โ
โโโ ๐ณ docker-compose.yml # Docker orchestration
โโโ ๐ Dockerfile # Application container
โโโ ๐ pom.xml # Maven dependencies
โโโ ๐ README.md # You are here!
```
---
## ๐ Security Features
- ๐ **JWT Authentication** - Stateless token-based auth
- ๐ค **Role-Based Access Control** - USER and ADMIN roles
- ๐ **Password Encryption** - BCrypt hashing
- ๐ก๏ธ **CORS Protection** - Configurable CORS policies
- ๐ **Audit Logging** - Complete action tracking
- ๐ซ **Input Validation** - Request validation with Bean Validation
---
## ๐ฏ API Endpoints
### ๐ Public Endpoints
- `POST /api/auth/register` - User registration
- `POST /api/auth/login` - User login
### ๐ Protected Endpoints
- `GET /api/appointments` - List appointments
- `POST /api/appointments` - Create appointment
- `GET /api/categories` - List categories
- `GET /api/providers` - List service providers
- `POST /api/feedback` - Submit feedback
### ๐ Admin Only
- `GET /api/reports/dashboard` - Admin dashboard
- `POST /api/categories` - Create category
- `DELETE /api/appointments/{id}` - Delete appointment
**๐ Full API documentation available at:** `http://localhost:8080/swagger-ui.html`
---
## ๐งช Testing
```bash
# Run all tests
mvn test
# Run with coverage
mvn test jacoco:report
# Run specific test
mvn test -Dtest=AppointmentServiceTest
```
---
## ๐ค Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
### Quick Contribution Steps
1. ๐ด Fork the repository
2. ๐ฟ Create your feature branch (`git checkout -b feature/amazing-feature`)
3. โ
Commit your changes (`git commit -m 'feat: add amazing feature'`)
4. ๐ค Push to the branch (`git push origin feature/amazing-feature`)
5. ๐ Open a Pull Request
---
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
### โญ Star this repository if you find it helpful!