Skip to content

pedronicolasg/agendae-api

Repository files navigation

📅 Agendaê API

Backend do sistema de agendamento de equipamentos da EEEP Elsa Porto

Kotlin Spring Boot Java PostgreSQL Redis Licença

API REST para reserva de equipamentos e espaços escolares por professores, com gestão administrativa, controle de conflitos e auditoria.


📖 Sobre

A Agendaê API é o backend de um sistema de agendamento de equipamentos e espaços de uma instituição de ensino. Professores reservam recursos (notebooks, projetores, microfones, espaços, etc.) para horários de aula específicos, vinculando cada reserva a uma ou mais turmas. Administradores gerenciam o catálogo de equipamentos, as turmas e os professores.

🔧 Funcionalidades

  • Autenticação JWT com Access/Refresh Tokens e senhas protegidas com Argon2.
  • Convite e ativação de contas de professores.
  • Gestão completa de equipamentos, turmas e professores.
  • Sistema de agendamentos com prevenção de conflitos utilizando PostgreSQL e Redis.
  • Exportação de comprovantes em PDF.
  • Auditoria de ações administrativas.
  • Rate limiting para endpoints críticos.
  • Documentação OpenAPI (Swagger) integrada.

🚀 Executando o projeto

Pré-requisitos

  • JDK 21
  • PostgreSQL
  • Redis

Configuração

cp .env.example .env

Configure as variáveis de ambiente conforme sua instalação.

Executar

./gradlew bootRun

ou

.\gradlew.bat bootRun

A API estará disponível em:

Serviço Endereço
API http://localhost:8080
Swagger http://localhost:8080/swagger-ui.html
Health http://localhost:8080/actuator/health

📦 Build

./gradlew build
./gradlew bootJar

java -jar build/libs/agendae-1.0.0.jar

⚙️ Configuração

Todas as configurações da aplicação são feitas por variáveis de ambiente.

Consulte: .env.example


🔐 Perfis de acesso

Perfil Permissões
USER Gerencia seus próprios agendamentos e consulta recursos.
ADMIN Administração completa da plataforma, incluindo usuários, equipamentos, turmas e auditoria.

About

API REST para reserva de equipamentos e espaços escolares por professores, com gestão administrativa, controle de conflitos e auditoria.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors