Skip to content

ctrindadedev/Sistema_CheckIN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 

Repository files navigation

WORK IN PROGRESS

Check-in and Event Management System

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.

💻 Tech Stack

React TypeScript Vite Java Spring PostgreSQL JUnit Swagger

📖 About the Repository

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.

Key Features

🔐 Security & Authentication

  • JWT (JSON Web Token) Athentication: Secure login with hashed passwords using BCrypt.
  • Role-Based Access Control: Differentiated permissions between ORGANIZADOR (Organizer - can manage events) and PARTICIPANTE (Participant).

📅 Event Management

  • Complete event CRUD.
  • Control and validation of available spots limit.

📝 Registrations & Check-in

  • 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.

🧪 Code Quality & Testing

  • 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.

TO-DO

  • 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.

🛠️ How to run the project locally

Prerequisites

  • Java 17+
  • Node.js & npm (or yarn)
  • PostgreSQL (running locally or via Docker)

Back-end Setup

  1. Navigate to the back-end folder.

  2. Configure your database credentials in the src/main/resources/application.properties file.

  3. Run the project in your IDE or via terminal:

    ./mvnw spring-boot:run
  4. The API will be up and running. Swagger UI can be accessed on the default port 8080//swagger-ui.html.

Front-end Setup

  1. Navigate to the front-end folder.

  2. Install deps

    npm i
  3. Start the development server

    npm run dev

About

A complete Full-Stack system for event management, user registrations, and real-time attendance control (check-in).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages