Skip to main content

Backend API — Overview

The Backend API is the core of the Association App platform. It is built with Kotlin + Spring Boot and exposes a RESTful API consumed by the Admin UI, Mobile App, and WordPress Plugin.

Tech Stack

LayerTechnologyVersion
LanguageKotlin1.9.25
FrameworkSpring Boot3.5.6
RuntimeOpenJDK21
DatabasePostgreSQL16
ORMSpring Data JPA / Hibernate
SecuritySpring Security + JWT (jjwt)6.x / 0.13.0
API DocsSpringDoc OpenAPI (Swagger)2.8.13
EmailSpring Mail + Thymeleaf templates
StorageLocal / Google Cloud Storage / AWS S3
PushFirebase Admin SDK (FCM)9.2.0
BuildGradle8.5

Architecture

The API follows a multi-tenant architecture where each organisation is isolated. All data queries are automatically scoped to the authenticated user's organisation.

Admin UI  ──┐
Mobile App ──┼──► Spring Boot API ──► PostgreSQL
WP Plugin ──┘ │
├──► SMTP (email)
├──► FCM (push notifications)
└──► GCS / S3 (file storage)

Modules

ModuleDescription
AuthJWT authentication, password reset, MFA, rate limiting
UsersProfiles, account status, email verification
OrganizationsMulti-tenant org management, branding, settings
Roles & PermissionsRBAC with granular authority system
MembersDirectory, invitations, join requests
MembershipMembership types, lifecycle, renewals
EventsEvent creation, registration, waitlists
NewsArticles, comments, scheduling
DocumentsFile storage with folder organisation
NotificationsPush notifications via FCM
EmailTemplates, SMTP config, logs
AuditSecurity event logging
ConnectorsExternal system integrations (CRM, HRM)
BillingSubscriptions, invoices, payments
SystemPlatform-level settings and admin

Sections in This Guide

Interactive API Docs

When the server is running, Swagger UI is available at:

http://localhost:8080/swagger-ui.html

OpenAPI spec:

  • JSON: http://localhost:8080/v3/api-docs
  • YAML: http://localhost:8080/v3/api-docs.yaml