Sistema de reserva de salas para reunião.
Meeting Room Reservation System
O objetivo desse projeto é criar uma API com arquitetura bem definida e desacoplada, utilizando DDD e Clean Architecture para fazer distribuição de responsabilidade de camadas, seguindo os pricípios do SOLID.
The objective of this project is to create an API with a well-defined, decoupled architecture, utilizing DDD and Clean Architecture to distribute responsibilities across layers, following SOLID principles.
- Cadastro de usuários
- Gerenciamento de salas
- Reserva de salas
- Visualização de reservas
- Cancelamento de reservas
- User registration
- Room management
- Room reservation
- Reservation viewing
- Reservation cancellation
- Cadas usuário deve ter um e-mail único para registro.
- Senhas dever ser armazenadas de forma segura (hashing).
- Apenas administratores podem criar, editar ou deletar salas.
- Cada sala deve ter um nome único, capacidade e recursos (ex: TV, quandro, etc).
- Usuários podem reservar salas para uma data e hora específicas.
- Reservas não podem sobrepor-se a outras reservas.
- A duração miníma de uma reserva é de 30 minutos e a máxima é de 4 horas.
- Usuários podem visualizar apenas suas próprias reservas.
- Usuários podem visualizar a disponibilidade das salas para fazer novas reservas.
- Usuários podem cancelar suas reservas até 1 hora antes do horário de início.
- Each user must have a unique email for registration.
- Passwords must be securely stored (hashed).
- Only administrators can create, edit, or delete rooms.
- Each room must have a unique name, capacity, and resources (e.g., TV, whiteboard, etc.).
- Users can reserve rooms for specific dates and times.
- Reservations cannot overlap with other reservations.
- The minimum duration of a reservation is 30 minutes, and the maximum is 4 hours.
- Users can only view their own reservations.
- Users can check room availability to make new reservations.
- Users can cancel their reservations up to 1 hour before the start time.