Overview
Hub is built with modern, production-ready technologies focused on developer experience, performance, and scalability.Backend Stack
Core Framework
Spring Boot
Version: 3.5.10Enterprise Java framework for building production-ready applications with minimal configuration.
Java
Version: 21Modern Java with records, pattern matching, and virtual threads support.
Web & API
| Technology | Version | Purpose |
|---|---|---|
| Spring Web | 3.5.10 | RESTful API development |
| Spring WebFlux | 3.5.10 | Reactive web client for external APIs |
| SpringDoc OpenAPI | 2.8.9 | API documentation (Swagger UI) |
| Spring Validation | 3.5.10 | Bean validation and request validation |
Access API documentation at
http://localhost:8080/swagger-ui.html when running the backend.Data & Persistence
- PostGIS: Geospatial queries for venue location search
- Flyway: Version-controlled database migrations (
db/migration) - Hibernate Spatial: JTS geometry types for coordinates
- JPA Auditing: Automatic
createdAt/updatedAttracking
Security & Authentication
| Technology | Version | Purpose |
|---|---|---|
| Spring Security | 3.5.10 | Security framework |
| OAuth2 Resource Server | 3.5.10 | JWT token validation |
| Auth0 | External | Identity provider (JWT issuer) |
- JWT-based authentication via Auth0
- Role-based access control (RBAC)
- Stateless session management
- CORS configuration for frontend
External Services
Cloudinary
Version: 2.3.2Image upload, storage, and transformation service for venue photos and user avatars.
Brevo (Sendinblue)
API IntegrationTransactional email service for booking confirmations and notifications.
Utilities & Tools
| Technology | Version | Purpose |
|---|---|---|
| Lombok | Latest | Reduce boilerplate (getters, constructors, builders) |
| Caffeine Cache | Latest | In-memory caching for performance |
| Spring Actuator | 3.5.10 | Health checks and monitoring endpoints |
| Thymeleaf | 3.5.10 | Email template rendering |
Testing
- Unit Tests: Pure domain logic with no dependencies
- Integration Tests: Use Testcontainers for real PostgreSQL
- API Tests: Test controllers with
@SpringBootTest
Build Tools
| Tool | Version | Purpose |
|---|---|---|
| Maven | 3.x (via wrapper) | Dependency management and build |
| Maven Wrapper | Included | Ensures consistent Maven version |
| Spotless | 3.2.1 | Code formatting (Google Java Format) |
| Google Java Format | 1.17.0 | Java code formatter |
Frontend Stack
Core Framework
Next.js
Version: 16.1.6React framework with server-side rendering, file-based routing, and API routes.
React
Version: 19.2.3Modern React with hooks, concurrent rendering, and server components.
UI & Styling
| Technology | Version | Purpose |
|---|---|---|
| Tailwind CSS | 4.2.0 | Utility-first CSS framework |
| Radix UI | Latest | Accessible, unstyled UI primitives |
| shadcn/ui | 3.8.5 | Pre-built components based on Radix |
| Lucide React | 0.575.0 | Icon library |
| class-variance-authority | 0.7.1 | Component variants and styles |
| tailwind-merge | 3.5.0 | Merge Tailwind classes intelligently |
- Dialogs, Dropdowns, Tooltips (Radix UI)
- Forms, Buttons, Cards (shadcn/ui)
- Charts (Recharts)
- Carousels (Embla Carousel)
Authentication
Auth0 Next.js SDK
Version: 4.15.0Official Auth0 SDK for Next.js with automatic session management and route protection.
- Automatic token refresh
- Protected API routes
- Server-side session management
- Role-based access control
Forms & Validation
| Technology | Version | Purpose |
|---|---|---|
| React Hook Form | 7.71.2 | Performant form library |
| Zod | 4.3.6 | TypeScript-first schema validation |
| @hookform/resolvers | 5.2.2 | Zod integration for React Hook Form |
Maps & Geolocation
Leaflet
Version: 1.9.4Open-source interactive maps for venue location display and search.
Country State City
Version: 3.2.1Location data for dropdowns and search filters.
UI Utilities
| Technology | Version | Purpose |
|---|---|---|
| next-themes | 0.4.6 | Dark mode support |
| date-fns | 4.1.0 | Date manipulation and formatting |
| sonner | 2.0.7 | Toast notifications |
| vaul | 1.1.2 | Drawer component for mobile |
| cmdk | 1.1.1 | Command palette (⌘K) |
| recharts | 3.7.0 | Charts for analytics |
Development Tools
Infrastructure
Docker & Containers
hub-postgres: PostgreSQL 16 with PostGIS 3.4hub-pgadmin: Database management UIhub-backend: Spring Boot application (optional)
Database
| Feature | Technology |
|---|---|
| RDBMS | PostgreSQL 16 |
| Geospatial | PostGIS 3.4 |
| Migrations | Flyway |
| Connection Pool | HikariCP |
postgis: Geospatial data types and functionsuuid-ossp: UUID generation (if needed)
Development Tools
pgAdmin
Web-based PostgreSQL managementAccess:
http://localhost:5050Swagger UI
Interactive API documentationAccess:
http://localhost:8080/swagger-ui.htmlMonitoring & Observability
Spring Actuator Endpoints
Enabled endpoints:/actuator/health- Health check/actuator/info- Application info/actuator/mappings- Request mappings
Health details are hidden in production (
show-details: never)Caching Strategy
| Technology | Use Case |
|---|---|
| Caffeine | In-memory caching for frequently accessed data |
| Spring Cache | Declarative caching with @Cacheable |
Key Configuration Files
| File | Purpose |
|---|---|
backend/pom.xml | Maven dependencies and plugins |
backend/src/main/resources/application.yaml | Spring configuration |
docker-compose.yml | Infrastructure services |
Makefile | Development commands |
frontend/package.json | npm dependencies |
frontend/tailwind.config.ts | Tailwind configuration |
frontend/tsconfig.json | TypeScript configuration |
Version Summary
Backend Core
- Java 21
- Spring Boot 3.5.10
- PostgreSQL 16
- PostGIS 3.4
Frontend Core
- Next.js 16.1.6
- React 19.2.3
- TypeScript 5.9.3
- Tailwind CSS 4.2.0
External Services
- Auth0 (cloud)
- Cloudinary (cloud)
- Brevo (cloud)
Next Steps
Setup Guide
Set up your development environment
Architecture
Learn about the hexagonal architecture