Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Gabo-gutierrez/Cinefinder/llms.txt
Use this file to discover all available pages before exploring further.
Introduction to Cinefinder API
Cinefinder is a robust RESTful API designed to manage and discover cultural content including movies, theater works, artists, and urban events. Built with modern Java technologies, it provides a complete backend solution for cultural content management platforms.What is Cinefinder?
Cinefinder API enables you to:- Manage Movies (Peliculas): Create, read, update, and delete movie records with complete metadata including synopsis, duration, and categories
- Handle Theater Works (Obras): Organize theatrical performances and shows with detailed descriptions and scheduling
- Track Artists (Artistas): Maintain a database of actors, singers, dancers, and other performers with their profiles
- Organize Urban Events (Eventos Urbanos): Coordinate street performances, festivals, and cultural events
- Categorize Content: Classify all content types using a flexible category system
- Link Participations: Connect artists to their roles in movies, works, and events
Key Features
RESTful Architecture
Fully RESTful API with intuitive endpoints following industry best practices:- Resource-based URLs (
/peliculas,/artistas,/eventosUrbanos) - Standard HTTP methods (GET, POST, PUT, DELETE)
- Proper HTTP status codes (200, 201, 404, etc.)
- JSON request/response format
Complete CRUD Operations
Every resource supports full Create, Read, Update, and Delete operations:Flexible Search & Filtering
Search resources by various criteria:- Movies by title
- Artists by DNI (national ID)
- Categories by name
- Events by title
Relational Data Management
Proper handling of relationships between entities:- Movies, works, and events linked to categories
- Artists connected to their participations
- Foreign key constraints ensuring data integrity
Tech Stack
Cinefinder API is built with modern, enterprise-grade technologies:Core Framework
- Spring Boot 3.5.5: Latest version of the leading Java application framework
- Java 21: Modern Java with latest language features and performance improvements
- Spring Web: RESTful web services and MVC architecture
- Spring Boot DevTools: Enhanced development experience with automatic restarts
Data Layer
- Spring Data JPA: Simplified database access with Java Persistence API
- Hibernate: Robust ORM (Object-Relational Mapping) implementation
- MySQL 8.4.0: Reliable relational database for data persistence
- JDBC: MySQL Connector for database connectivity
Developer Tools
- Lombok: Reduces boilerplate code with annotations
- Jakarta Validation API 3.0.2: Bean validation for request data
- Maven: Dependency management and build automation
- JUnit Jupiter 5.10.0: Modern testing framework
Architecture Patterns
- DTO Pattern: Clean separation between entities and API contracts
- Service Layer: Business logic encapsulation
- Repository Pattern: Data access abstraction
- Exception Handling: Global exception handling with custom exceptions
API Resources
The API provides the following main resources:Peliculas (Movies)
Manage movie catalog with titles, synopsis, duration, and genre categories.Artistas (Artists)
Track performers including actors, singers, dancers, and other artists with their profiles.Eventos Urbanos (Urban Events)
Coordinate street performances, festivals, and cultural events with dates and locations.Obras (Theater Works)
Organize theatrical performances and stage productions.Categorias (Categories)
Classification system for movies, events, and works (Action, Comedy, Drama, etc.).Participaciones (Participations)
Link artists to movies, works, or events they participate in.Database Schema
Cinefinder uses a well-structured MySQL database with the following main tables:peliculas: Movie records with foreign key to categoriesartistas: Artist profiles with DNI as primary keyeventos_urbanos: Urban events with dates and locationsobras: Theater works catalogcategorias: Content classificationparticipaciones: Junction table linking artists to content