Home

Blackhole Academy

Spring Boot 4Java 21Next.js 16TypeScriptPostgreSQLRedisMinIODockerNginxPrometheusGrafanaWebSocket

Team

vleonel · asimao · nmendes · lrafael

Overview

Blackhole Academy is the capstone project for the 42 Common Core curriculum (ft_transcendence). It's a comprehensive online learning management system (LMS) that combines education, gamification, and social networking into a unified web application.

The platform spans three specialized user interfaces — Student, Instructor, and Administrator — each powered by its own Next.js application and backed by a single Spring Boot API. The architecture is fully containerized and deployed with a single 'make' command.

Blackhole Academy preview
Blackhole Academy detail

Key Features

  • Three separate Next.js 16 frontend applications with role isolation (Student :3001, Instructor :3002, Admin :3003)
  • Spring Boot 4 REST API with 25 controllers and Swagger/OpenAPI documentation
  • 41-table PostgreSQL schema with 32 enums, managed by Flyway migrations
  • Real-time WebSocket chat via STOMP — direct messages, group chat, communities, typing indicators, read receipts
  • Gamification engine: XP system, tiered achievements, global/weekly/monthly leaderboards
  • OAuth 2.0 authentication (Google, GitHub, 42) + TOTP 2FA with QR code generation
  • Course delivery with modules and lessons (video, text, quiz formats)
  • Admin dashboard: KPI cards, user management, course review workflows, analytics
  • S3-compatible file storage via MinIO for avatars and course content
  • Full observability stack: Prometheus metrics collection + Grafana dashboards
  • Nginx reverse proxy with TLS termination, rate limiting (10r/s), and security headers

Technical Approach

A microservices-oriented architecture with Spring Boot serving multiple Next.js clients ensures modularity and scalability. PostgreSQL handles the complex relational model (users ↔ courses ↔ gamification ↔ social) with ACID guarantees.

Three separate frontend apps enforce role isolation at the deployment level. Each uses TanStack Query for server state management, Zustand for client stores, and shadcn/ui with Tailwind CSS for the component library.

Security is multi-layered: BCrypt password hashing, JWT with refresh token rotation, Spring Security RBAC (STUDENT/INSTRUCTOR/ADMIN), Nginx rate limiting, and Bucket4J API-level throttling. All secrets are managed via Docker secrets.

The entire infrastructure (10+ containers) is orchestrated via a single docker-compose.yml and launched with one 'make' command, including automatic secret generation, data directory creation, and image building.

Outcomes

  • Successfully deployed as the 42 Common Core capstone project (ft_transcendence)
  • 10+ containerized services running cohesively via Docker Compose
  • Comprehensive real-time chat system modeled after WhatsApp's UX patterns
  • Collaborative project completed by a team of 4 at 42 Luanda