REST API backend for the SkillSync Academic Mentorship & Code Review Platform.
- Java 21 + Spring Boot 3.5
- Spring Security + JWT authentication
- Spring Data JPA + PostgreSQL
- Lombok + Validation
- SpringDoc OpenAPI (Swagger UI)
- Docker + Docker Compose
- Role-based access control (Admin / Mentor / Student)
- JWT token authentication
- Mentor availability & 45-minute slot booking
- Concurrency-safe session booking with transaction isolation
- AI-powered session audit log generation
- Swagger UI at
/swagger-ui.html
- Java 21
- PostgreSQL
- Maven
# Start PostgreSQL and create the database
sudo systemctl start postgresql
sudo -u postgres psql -c "CREATE DATABASE skillsync;"
sudo -u postgres psql -c "CREATE USER skillsync_user WITH PASSWORD 'skillsync123';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE skillsync TO skillsync_user;"
# Run the app
mvn spring-boot:rundocker-compose up --buildOnce running, visit:
http://localhost:8080/swagger-ui.html
| Variable | Description |
|---|---|
SPRING_DATASOURCE_URL |
PostgreSQL connection URL |
SPRING_DATASOURCE_USERNAME |
Database username |
SPRING_DATASOURCE_PASSWORD |
Database password |
APP_JWT_SECRET |
JWT signing secret |
APP_JWT_EXPIRATION |
Token expiry in milliseconds |
src/main/java/com/pentastack/skillsync/
├── auth/
├── mentor/
├── student/
├── stack/
├── session/
└── shared/
├── security/
└── exception/