Skip to content

Repository files navigation

Demy API

English | Español

Java 21 Spring Boot MySQL

The REST API that powers Demy, a multiplatform academy-management product built by Nistra. It centralizes identity, institutions, enrollment, scheduling, attendance, billing, and accounting so the administrator, teacher, and student applications share one source of truth.

What it provides

  • JWT-based authentication, account recovery, and role-aware access.
  • Academy, teacher, student, course, classroom, and academic-period management.
  • Enrollment and schedule workflows for administrators, teachers, and students.
  • Attendance recording and reporting.
  • Billing, transactions, financial summaries, and PDF/Excel report endpoints.
  • English and Spanish message bundles.
  • OpenAPI 3 documentation through Swagger UI.

Architecture

The service is built with Java 21, Spring Boot, Spring Data JPA, and MySQL. Its package structure follows Domain-Driven Design with these bounded contexts:

com.nistra.demy.platform
├── iam
├── institution
├── enrollment
├── scheduling
├── attendance
├── billing
├── accountingfinance
└── shared

Each bounded context separates application, domain, infrastructure, and interface concerns. shared contains cross-cutting infrastructure rather than business ownership.

API preview

Demy API overview in Swagger UI

Browse more API screenshots

Endpoint catalog

Demy API endpoint catalog

Student schedule request

Student schedule request in Swagger UI

Run locally

Requirements

  • JDK 21
  • MySQL 8+
  • The included Maven Wrapper

Configure the variables referenced by application.properties and application-dev.properties, including the database connection, JWT settings, documentation contact, and mail sender. Then run:

SPRING_PROFILES_ACTIVE=dev ./mvnw spring-boot:run

The default local endpoints are:

  • API: http://localhost:8080/api/v1
  • Swagger UI: http://localhost:8080/swagger-ui/index.html
  • OpenAPI document: http://localhost:8080/v3/api-docs

Swagger advertises a relative server URL, so requests stay on the host that served the documentation.

Verification

./mvnw test
./mvnw package

Integration tests require a valid MySQL test configuration.

Demy ecosystem

See CONTRIBUTING.md for the Git workflow and coding conventions.

About

Backend REST API powering Demy. Handles authentication, enrollment, schedules, payments, and user management through a centralized, scalable, and secure service for academies in Peru.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages