-
Notifications
You must be signed in to change notification settings - Fork 2
Backend System
The backend system is a Spring Boot application that provides REST APIs and core business logic for the Effective Office platform. It handles room booking management, workspace administration, user authentication, and real-time notifications through Google Calendar integration. This document covers the backend architecture, module organization, core services, and deployment configuration.
For information about specific features like booking workflows, see [Booking Management](Backend System/Booking Management). For deployment strategies and operations, see [Deployment and Operations](Deployment and Operations).
The backend follows a modular Spring Boot architecture with clear separation between core infrastructure and
feature-specific functionality. The application runs on port 8080 and exposes REST APIs under the /api
context path.
The backend is organized into core infrastructure modules and feature-specific modules. Each module has a specific responsibility and well-defined interfaces.
Module | Purpose | Key Components |
---|---|---|
core:domain |
Business models and entities | Domain objects, business rules |
core:data |
Data transfer objects | REST API contracts, DTOs |
core:repository |
Data access layer | JPA repositories, database interfaces |
Module | Purpose | Key APIs |
---|---|---|
user |
User management and profiles | User CRUD operations |
authorization |
Authentication and security | JWT token management |
booking:core |
Room booking functionality | Booking CRUD, availability |
workspace |
Room and workspace management | Workspace CRUD, room details |
calendar-subscription |
Real-time calendar sync | Notification subscriptions |
notifications |
Push notification system | FCM integration |
The backend leverages Spring Boot with PostgreSQL for persistence and integrates with Google services for calendar management and push notifications.
The backend exposes RESTful APIs through multiple controllers organized by feature domain. All APIs are served under the
/api
context path.
TODO image-here
The application uses a layered configuration approach supporting multiple environments and external service integration.
Configuration File | Purpose | Environment |
---|---|---|
application.yml |
Base configuration | All environments |
application-local.yml |
Local development overrides | Local development |
.env file |
Environment variables | Production/staging |
The backend includes automated background services for maintaining real-time synchronization with external calendar systems.
The CalendarSubscriptionScheduler
maintains Google Calendar notification subscriptions that expire every 7 days.
Centralized exception handling ensures consistent error responses across all API endpoints through the
GlobalExceptionHandler
.
The backend supports containerized deployment through Docker with environment-specific configurations.