WORK IN PROGRESS
A complete Full-Stack system for event management, user registrations, and real-time attendance control (check-in).
Developed with a focus on security, solid architectural practices, apply design patterns (Like Singleton) , and automated testing.
This repository contains the source code for both the Front-end and Back-end of the application. The system was designed to solve the problem of event access control, allowing Organizers to create events with a limited capacity, and Participants to register and check in on the day of the event.
- JWT (JSON Web Token) Athentication: Secure login with hashed passwords using BCrypt.
- Role-Based Access Control: Differentiated permissions between
ORGANIZADOR(Organizer - can manage events) andPARTICIPANTE(Participant).
- Complete event CRUD.
- Control and validation of available spots limit.
- Automatic user registration linked to the event.
- Business rule validation (prevents double registration, prevents registration if no spots are available).
- Check-in system to confirm participant attendance at the event.
- Unit Tests: Coverage of the Services layer using JUnit 5 and Mockito.
- Integration Tests: Validation of the HTTP request flow and business rules using MockMvc.
- QR Code generation and reading for instant check-in.
- Automated email dispatch (registration confirmation and reminders).
- User Interface (UI/UX) refinement on the Front-end.
- Java 17+
- Node.js & npm (or yarn)
- PostgreSQL (running locally or via Docker)
-
Navigate to the
back-endfolder. -
Configure your database credentials in the
src/main/resources/application.propertiesfile. -
Run the project in your IDE or via terminal:
./mvnw spring-boot:run
-
The API will be up and running. Swagger UI can be accessed on the default port 8080//swagger-ui.html.
-
Navigate to the
front-endfolder. -
Install deps
npm i
-
Start the development server
npm run dev