Criar uma API para gerenciar logs de acesso ao sistema. Esta API será usada para registrar, listar e filtrar logs de usuários.
-
Registrar Log de Acesso:
- Endpoint:
POST /logs
- Receber os campos
user
eaction
no corpo da requisição. - Salvar o log no mysql.
- Endpoint:
-
Listar Logs de Acesso:
- Endpoint:
GET /logs
- Retornar todos os logs armazenados.
- Endpoint:
-
Filtrar Logs por Data e Usuário (Opcional):
- Endpoint:
GET /logs?user=<user>&date=<date>
- Retornar apenas os logs filtrados.
- Endpoint:
- Clone este repositório:
git clone https://github.com/GeekBoyBiel/backend-test.git cd backend-test Mude para a sua branch de trabalho: git checkout Seu_Nome_Completo
- Configure o acesso ao BD Usuário: Seu_Nome_Completo Seu_Nome_123
- Tabela
users
:- Armazena informações dos usuários do sistema.
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL UNIQUE, status TINYINT(1) DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
- Tabela
actions
:- Armazena os tipos de ações realizadas no sistema.
CREATE TABLE actions ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
- Tabela
logs
:- Registra os logs de acesso, associando usuários e ações.
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, action_id INT NOT NULL, ip_address VARCHAR(45), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE, FOREIGN KEY (action_id) REFERENCES actions(id) ON DELETE CASCADE );
- Você tem 45 minutos para concluir o teste.
- Os endpoints devem funcionar corretamente de acordo com o solicitado.
- Organização do Código:
- Utilização do padrão MVC (Models, Controllers e Routes).
- Código limpo e bem estruturado.
- Mensagens claras para erros (ex.: dados faltantes, usuário não encontrado).
- Uso de códigos HTTP apropriados.
- Verifique se os campos obrigatórios estão preenchidos (user, action).
- Valide dados de entrada (ex.: formato do email ou ID do usuário).
- Clareza nos nomes de variáveis e funções.
- Comentários claros, se necessário.
- Evitar duplicação de código.