API desenvolvida para um processo seletivo, com requisitos funcionais e regras de negócios solicitados. A API, criada utilizando AdonisJS, é voltada para o gerenciamento de alocação de salas em escolas e universidades. Ela oferece funcionalidades para gerenciar usuários, salas e a alocação de estudantes em salas específicas.
- Gerenciamento de Usuários: Cadastro, edição, exclusão e consulta de usuários.
- Gerenciamento de Salas: Cadastro, edição, exclusão e consulta de salas.
- Alocação de Estudantes: Alocação e remoção de estudantes em salas específicas.
- Autenticação: Sistema de autenticação para administradores e usuários.
- Node.js
- AdonisJS
- TypeScript
- MySQL
- Clone o repositório:
git clone https://github.com/IanBraga96/school-room-management.git
- Navegue até o diretório do projeto:
cd school-room-management
- Instale as dependências:
npm install
- Configure o arquivo
.env
com suas credenciais do banco de dados.DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_USER=usuário_do_banco DB_PASSWORD=senha_do_banco DB_DATABASE=nome_do_banco
- Execute as migrações do banco de dados:
node ace migration:run
- Gere um administrador através do seed:
node ace db:seed
- Inicie o servidor:
npm run dev
- Para realizar testes automatizados nas rotas:
node ace test
-
Login
POST /login
: Login.
-
Usuários
POST /users
: Cria um novo usuário.GET /users/:id
: Mostra detalhes de um usuário específico.PUT /users/:id
: Atualiza um usuário específico.DELETE /users/:id
: Exclui um usuário específico.
-
Salas
POST /rooms
: Cria uma nova sala.GET /rooms/:id
: Mostra detalhes de uma sala específica.PUT /rooms/:id
: Atualiza uma sala específica.DELETE /rooms/:id
: Exclui uma sala específica.
-
Alocações
POST /allocate
: Aloca um estudante em uma sala.DELETE /deallocate
: Remove um estudante de uma sala.GET /user/:id/rooms
: Consulta das salas alocadas pelo usuário.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.