Backend Prueba Fullstack is a REST API for academic management. This page introduces the three core resources, how they relate to each other, the technology stack, and the key architectural decisions that shape how you interact with the API.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/JuanSebax85/backend-prueba-fullstack/llms.txt
Use this file to discover all available pages before exploring further.
Core resources
The API exposes three resources:- Alumno — a student record with personal details (name, surname, email, date of birth).
- Materia — an academic subject with a name, code, and credit value.
- Nota — a grade that links one Alumno to one Materia, recording the numeric value and the date it was registered.
Relationships
alumno_id and materia_id on the Nota table enforce this at the database level.
Data model
| Field | Entity | Type | Notes |
|---|---|---|---|
id | Alumno, Materia, Nota | Long | Auto-generated primary key |
nombre, apellido | Alumno | String | First and last name |
email | Alumno | String | Contact email |
fechaNacimiento | Alumno | Date | Date of birth |
nombre | Materia | String | Subject name |
codigo | Materia | String | Subject code |
creditos | Materia | Integer | Credit value |
valor | Nota | Double | Numeric grade |
fechaRegistro | Nota | Date | Date grade was recorded |
alumno_id | Nota | FK → Alumno | Foreign key |
materia_id | Nota | FK → Materia | Foreign key |
Technology stack
| Component | Technology |
|---|---|
| Language | Java 17 |
| Framework | Spring Boot 3 |
| Persistence | Spring Data JPA |
| Database | PostgreSQL 15 |
| Build tool | Maven |
| Containerization | Docker & Docker Compose |
| Boilerplate reduction | Lombok |
Architecture
The API follows a straightforward three-layer path from HTTP request to database:Key design choices
No service layer
Controllers call repositories directly. If you are reading the source code or extending the API, expect to find query logic and validation inside the controller methods rather than in a separate@Service class.
Referential integrity enforced at the controller level
The database schema allows cascade deletes to be avoided by checking for dependent records in the controller before executing a delete. Attempting to delete an Alumno that has associated Notas returns400 Bad Request instead of removing the record.
DTO pattern for Nota responses
When the API returns a Nota, it uses a Data Transfer Object (DTO) rather than the raw entity. This controls the shape of the JSON response and avoids serialization issues that arise from bidirectional JPA relationships.Schema management
The application usesspring.jpa.hibernate.ddl-auto=update, so Hibernate automatically creates or updates tables on startup to match the entity definitions. You do not need to run migrations manually during development.
CORS
The API allows cross-origin requests fromhttp://localhost:3000. If you are building a frontend that runs on a different origin, you will need to update the CORS configuration in the source code.
What’s next
Quickstart
Clone the repo, start the services with Docker Compose, and make your first API call in minutes.
API reference — Alumnos
Full endpoint reference for creating, reading, updating, and deleting student records.
API reference — Materias
Full endpoint reference for managing academic subjects.
API reference — Notas
Full endpoint reference for recording and querying grades.