Skip to content

Latest commit

 

History

History
221 lines (171 loc) · 6.59 KB

File metadata and controls

221 lines (171 loc) · 6.59 KB

SUPAP Backend API - Project Overview

Purpose

This is the backend API for SUPAP (Sociedad Uruguaya de Psicoterapias Asistidas con Psicodélicos), supporting the organization's website and future Aula Virtual (Learning Management System) for professional training.

What This Is

  • Organization Platform Backend - Manages events, services, team, and content
  • Future LMS System - Will support online courses, enrollments, and certificates
  • RESTful API - Built with Spring Boot following enterprise best practices
  • Scalable Architecture - Designed to grow from website to full educational platform

What This Is NOT

  • Not a generic boilerplate (specific to SUPAP requirements)
  • Not a standalone application (requires frontend)
  • Not a CMS (custom-built for SUPAP needs)
  • Not a third-party LMS (custom Aula Virtual implementation)

Target Audience

  1. SUPAP members and visitors - Accessing events and services
  2. Organization administrators - Managing content and events
  3. Future students - Enrolling in courses through Aula Virtual
  4. Instructors - Teaching and managing courses
  5. Developers - Maintaining and extending the platform

Key Features

Current Features (Phase 1-3)

Events Management

  • Conversatorios, Talleres, Seminarios, Conferencias
  • Event registration with pricing tiers (Member/Non-Member/Student/International)
  • Speaker management
  • Capacity tracking
  • Virtual/Presencial/Híbrido event types

Content Management

  • Services catalog
  • Team & Commissions management
  • Organization milestones
  • Partnerships (regulatory authorities, international networks, universities)
  • Newsletter subscriptions
  • Contact form

User Management

  • User authentication (JWT)
  • Role-based access control (RBAC)
  • Membership management
  • User types: Visitor, Member, Student, Instructor, Admin

Future Features (Phase 4-7)

Aula Virtual (LMS)

  • Course creation and management
  • Module and lesson structure
  • Video lessons, quizzes, assignments
  • Student enrollment and progress tracking
  • Certificates generation
  • Payment processing (MercadoPago/Stripe)

Project Goals

  1. Support Organization Growth - Scalable platform for SUPAP's expansion
  2. Professional Training - Enable online education through Aula Virtual
  3. Member Engagement - Streamline event registration and communications
  4. Administrative Efficiency - Reduce manual work for organizers
  5. Revenue Generation - Support paid events and courses

Technical Architecture

Core Stack

  • Java 21 LTS - Modern Java features and long-term support
  • Spring Boot 3.2 - Latest Spring framework
  • PostgreSQL 15+ - Robust relational database
  • JWT Authentication - Stateless security
  • Flyway - Database version control

Security

  • Spring Security 6.x with JWT
  • BCrypt password hashing
  • Role-based access control
  • CORS configuration for web frontend

API Design

  • RESTful endpoints
  • OpenAPI/Swagger documentation
  • Standardized JSON responses
  • Comprehensive error handling

Database Schema

Core Entities

  • Users & Roles - Authentication and authorization
  • Events - Event management with speakers and registrations
  • Services - Organization services catalog
  • Team - Team members and commissions
  • Newsletter - Email subscriptions
  • Contact - Contact form messages

Future LMS Entities

  • Courses - Course catalog and details
  • Modules & Lessons - Course curriculum structure
  • Enrollments - Student course registrations
  • Progress - Student learning progress
  • Assignments & Submissions - Coursework management
  • Assessments - Quizzes and exams
  • Certificates - Course completion certificates
  • Payments - Transaction management

Implementation Roadmap

Phase 1: Core Backend Setup ✅ (In Progress)

  • Project initialization
  • Database configuration
  • User authentication (JWT)
  • Basic CRUD operations

Phase 2: Events Module (Next)

  • Event CRUD endpoints
  • Speaker management
  • Event registration
  • Email notifications

Phase 3: Content Management

  • Services management
  • Team & Commissions
  • Newsletter subscriptions
  • Contact form

Phase 4: Aula Virtual - Courses (Future)

  • Course creation and management
  • Module and lesson structure
  • Student enrollment system

Phase 5: Assessments & Assignments (Future)

  • Assignment submission
  • Quiz system
  • Grading functionality

Phase 6: Payments Integration (Future)

  • MercadoPago integration
  • Payment processing
  • Receipt generation

Phase 7: Certificates (Future)

  • Certificate generation
  • PDF creation
  • Verification system

API Structure

Base URL: https://api.supap.uy/api/v1

Public Endpoints

  • /auth/* - Authentication (login, register)
  • /events - Event listings
  • /services - Services catalog
  • /team - Team information
  • /contact - Contact form

Authenticated Endpoints

  • /enrollments - User enrollments
  • /registrations/my - User's event registrations
  • /courses/*/progress - Course progress

Admin Endpoints

  • /admin/* - Administrative functions
  • /events (POST/PUT/DELETE) - Event management
  • /courses/*/manage - Course management

Development Workflow

  1. Local Development - H2 in-memory database
  2. Testing - JUnit 5 + Mockito
  3. Database Migrations - Flyway version control
  4. API Documentation - Swagger UI at /swagger-ui.html
  5. Monitoring - Spring Boot Actuator

Deployment

  • Environment: Docker/Railway/DigitalOcean
  • Database: PostgreSQL (managed service)
  • Files: AWS S3/Cloudinary for media
  • Email: SendGrid/AWS SES
  • Monitoring: Actuator + Prometheus (future)

Success Criteria

A successful SUPAP backend should:

  • ✅ Handle 1000+ concurrent users
  • ✅ Support multiple event types and registrations
  • ✅ Secure JWT-based authentication
  • ✅ Scalable to full LMS functionality
  • ✅ Comprehensive API documentation
  • ✅ 95%+ uptime
  • ✅ GDPR-compliant data handling

Next Steps

  1. Complete Phase 1 (Core Backend Setup)
  2. Implement Events Module (Phase 2)
  3. Build Content Management (Phase 3)
  4. Design Aula Virtual architecture (Phase 4)
  5. Plan payment integration (Phase 6)

Support & Documentation

Contact

Organization: SUPAP - Sociedad Uruguaya de Psicoterapias Asistidas con Psicodélicos Website: https://supap.uy API Base URL: https://api.supap.uy/api/v1