Skip to content

Backend System

Radch-enko edited this page Jul 24, 2025 · 2 revisions

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).

Architecture Overview

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.

architecture-overview.svg

Module Structure

The backend is organized into core infrastructure modules and feature-specific modules. Each module has a specific responsibility and well-defined interfaces.

Core Infrastructure Modules

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

Feature Modules

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

Technology Stack and Configuration

The backend leverages Spring Boot with PostgreSQL for persistence and integrates with Google services for calendar management and push notifications.

technology-stack-configuration.svg

REST API Structure

The backend exposes RESTful APIs through multiple controllers organized by feature domain. All APIs are served under the /api context path.

rest-api-structure.svgTODO image-here

Configuration Management

The application uses a layered configuration approach supporting multiple environments and external service integration.

Environment Configuration

Configuration File Purpose Environment
application.yml Base configuration All environments
application-local.yml Local development overrides Local development
.env file Environment variables Production/staging

Key Configuration Areas

key-configuration-areas.svg

Background Services

The backend includes automated background services for maintaining real-time synchronization with external calendar systems.

Calendar Subscription Scheduler

The CalendarSubscriptionScheduler maintains Google Calendar notification subscriptions that expire every 7 days.

calendar-subscription-scheduler.svg

Error Handling

Centralized exception handling ensures consistent error responses across all API endpoints through the GlobalExceptionHandler.

Exception Response Structure

error-handling.svg

Deployment Architecture

The backend supports containerized deployment through Docker with environment-specific configurations.

deployment-architecture.svg

Clone this wiki locally