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
| Layer | Technology | Version |
|---|---|---|
| Language | Kotlin | 1.9.25 |
| Framework | Spring Boot | 3.5.6 |
| Runtime | OpenJDK | 21 |
| Database | PostgreSQL | 16 |
| ORM | Spring Data JPA / Hibernate | — |
| Security | Spring Security + JWT (jjwt) | 6.x / 0.13.0 |
| API Docs | SpringDoc OpenAPI (Swagger) | 2.8.13 |
| Spring Mail + Thymeleaf templates | — | |
| Storage | Local / Google Cloud Storage / AWS S3 | — |
| Push | Firebase Admin SDK (FCM) | 9.2.0 |
| Build | Gradle | 8.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
| Module | Description |
|---|---|
| Auth | JWT authentication, password reset, MFA, rate limiting |
| Users | Profiles, account status, email verification |
| Organizations | Multi-tenant org management, branding, settings |
| Roles & Permissions | RBAC with granular authority system |
| Members | Directory, invitations, join requests |
| Membership | Membership types, lifecycle, renewals |
| Events | Event creation, registration, waitlists |
| News | Articles, comments, scheduling |
| Documents | File storage with folder organisation |
| Notifications | Push notifications via FCM |
| Templates, SMTP config, logs | |
| Audit | Security event logging |
| Connectors | External system integrations (CRM, HRM) |
| Billing | Subscriptions, invoices, payments |
| System | Platform-level settings and admin |
Sections in This Guide
- Getting Started — local setup, environment variables, Docker
- Authentication — JWT, roles, permissions, rate limiting
- API Reference — all endpoints documented by module
- Database — schema, migrations, entity overview
- Deployment — Docker, profiles, Cloud Run, Dokploy
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