Skip to content

Repository files navigation

EventHub API

Spring Boot 3 API for the EventHub event management platform. It provides attendee, host, and administrator authentication with email MFA; event and seat inventory management; bookings and reviews; Stripe-hosted Checkout; signed webhook processing; cancellations and refunds; and operational health probes.

Local development

Requirements: Java 17 and either the supplied Docker Compose services or a local MySQL instance.

cp .env.example .env
docker compose -f compose.local.yaml up -d
./mvnw verify
./mvnw spring-boot:run

The Compose stack exposes MySQL on 127.0.0.1:3307 and Mailpit SMTP on 127.0.0.1:1025; captured local MFA messages are available at http://127.0.0.1:8025. If you instead use a manually installed MySQL server or Resend, update only the ignored .env file.

For Resend's onboarding@resend.dev test sender, set MAIL_RECIPIENT_OVERRIDE in .env to the email address associated with the Resend account. The override is for local/staging testing only and is rejected when DEPLOYMENT_ENVIRONMENT=production.

Flyway migrates an empty database before Hibernate validates the resulting schema. Automated tests use an isolated H2 database; CI also performs a fresh MySQL startup smoke test. Do not point the application at a legacy Hibernate-managed schema until completing the reviewed migration procedure.

The API listens on port 8080 by default. Health endpoints are available at /actuator/health, /actuator/health/liveness, and /actuator/health/readiness.

IntelliJ IDEA

Use JDK 17 for the project and Maven importer. Run com.sihe.emsbackend.EmsbackendApplication with the working directory set to the emsbackend folder and the active profile set to dev. The ignored .env is loaded by Spring; no IntelliJ dotenv plugin is required.

Production

Build and test the application with:

./mvnw verify
docker build --tag eventhub-api .

Production uses the prod Spring profile, versioned Flyway migrations, schema validation, exact HTTPS CORS origins, a verified transactional-email sender, and backend-only Stripe credentials. Store remote secrets in the hosting platform's secret manager, never in .env or frontend VITE_* variables.

Deployment references:

About

Event Management System backend built with Spring Boot, MySQL, Spring Security, JPA, MFA login, event booking, host/admin dashboards, reviews, and refund management.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages