A full-stack application for appointment booking and service management.
backend/— Spring Boot REST API for users, services, and reservationsfrontend/— Angular application for user interface
- User registration and management
- Service catalog and management
- Reservation creation and management
- RESTful API (Spring Boot)
- In-memory H2 database for development
- User Roles and Authentication using JWT
- Neobrutalism Design System with high-contrast UI
- Responsive Angular frontend with Sora typography
Consistent high-contrast auth experience

- Java 17 or higher
- Maven
- Node.js & Angular CLI
- Navigate to the backend folder:
cd backend - Build and run the backend:
The API will be available at
mvn clean install mvn spring-boot:runhttp://localhost:8080.
- Navigate to the frontend folder:
cd frontend - Install dependencies and run:
The app will be available at
npm install ng servehttp://localhost:4200.
POST /api/auth/register— Register a new userPOST /api/auth/login— Login and get JWTGET /api/services— List services (Public)GET /api/reservations/my— View my reservations (Requires JWT)POST /api/reservations— Create reservation (Requires JWT)DELETE /api/reservations/{id}— Cancel reservation (Requires JWT)
{
"service": { "id": 2 },
"reservationDateTime": "2025-07-01T14:00:00",
"notes": "Please send invoice"
}As the database is in-memory, the following users have been pre-loaded for quick testing:
| Role | Password | |
|---|---|---|
| User | test@example.com |
password123 |
| Admin | admin@appointly.com |
admin123 |
- The backend uses an in-memory H2 database that resets on every execution.
- Security is enabled via JWT. Almost all
/api/reservations/**endpoints require the token in theAuthorization: Bearer <token>header. - The frontend is developed in Angular and already integrates an interceptor for session management.


