Loading repository data…
Loading repository data…
aleRibeiro0209 / repository
LealCode.API é uma API RESTful desenvolvida em PHP com a arquitetura MVC (Model-View-Controller). Esta API foi projetada para gerenciar o estoque de uma rede de agências de carro. Este projeto é parte de uma atividade da disciplina de Engenharia de Software II, cujo objetivo é proporcionar uma experiência prática no uso da metodologia Scrum.
LealCode.API é uma API RESTful desenvolvida em PHP com a arquitetura MVC (Model-View-Controller). Esta API foi projetada para gerenciar o estoque de uma rede de agências de carros. Este projeto é parte de uma atividade da disciplina de Engenharia de Software II, cujo objetivo é proporcionar uma experiência prática no uso da metodologia Scrum. A API está disponível na Railway na url: https://lealcode.up.railway.app/
A estrutura do projeto é baseada na arquitetura MVC, organizada da seguinte forma:
App/Core:
Controller.php: Classe base para todos os controladores, fornecendo métodos comuns.Model.php: Classe base para todos os modelos, com métodos para interação com o banco de dados.Routes.php: Define as rotas da aplicação, ligando URLs a métodos nos controladores.App/Controllers:
Veiculos.php: Controlador para gerenciar as operações relacionadas aos veículos.Carrocerias.php: Controlador para gerenciar as operações relacionadas às carrocerias.Marcas.php: Controlador para gerenciar as operações relacionadas às marcas.Cargos.php: Controlador para gerenciar as operações relacionadas aos cargos.Setores.php: Controlador para gerenciar as operações relacionadas aos setores.Funcionarios.php: Controlador para gerenciar as operações relacionadas aos funcionários.Notificacoes.php: Controlador para gerenciar as operações relacionadas as notificações.LoginController.php: Controlador responsável pelas operações de autenticação e login.EstoqueController.php: Controlador responsável pelas operações de relacionadas ao estoque.App/Models:
Veiculo.php: Modelo que representa a tabela de veículos no banco de dados.Carroceria.php: Modelo que representa a tabela de carrocerias no banco de dados.Marca.php: Modelo que representa a tabela de marcas no banco de dados.Cargo.php: Modelo que representa a tabela de cargos no banco de dados.Setor.php: Modelo que representa a tabela de setores no banco de dados.Funcionario.php: Modelo que representa a tabela de funcionários no banco de dados.Notificacao.php: Modelo que representa a tabela de notificações no banco de dados.Estoque.php: Modelo que representa a tabela de estoque no banco de dados.App/Middlewares:
AccessControl.php: Middleware para verificar as permissões de acesso dos usuários às rotas protegidas.Public:
index.php: O ponto de entrada da aplicação que inicializa as rotas e direciona as requisições.Clone o repositório:
git clone https://github.com/aleRibeiro0209/lealcode.api.git
Acesse o diretório do projeto:
cd lealcode.api
Instale as dependências via Composer:
composer install
Configure o banco de dados no arquivo .env:
DB_HOST=localhost
DB_USER=usuario
DB_PASS=senha
DB_NAME=bdLealCar
JWT_SECRET=chaveSecreta
Inicie o servidor:
php -S localhost:8000 -t public
Todas as rotas da API, exceto a de login, estão protegidas por autenticação baseada em token JWT. O algoritmo utilizado para a assinatura dos tokens é o HS512, garantindo uma camada adicional de segurança. Para acessar qualquer outra rota, o cliente deve fornecer um token JWT válido no cabeçalho da requisição:
Authorization: Bearer {seu_token_jwt}
/veiculos - Lista todos os veículos no estoque./veiculos/{id} - Retorna os detalhes de um veículo específico./veiculos - Adiciona um novo veículo ao estoque./veiculos/{id} - Atualiza as informações de um veículo existente./veiculos/{id} - Remove um veículo do estoque./carrocerias - Lista todos os tipos de carrocerias./carrocerias/{id} - Retorna os detalhes de uma carroceria específica./carrocerias - Adiciona uma nova carroceria./carrocerias/{id} - Atualiza as informações de uma carroceria existente./carrocerias/{id} - Remove uma carroceria./marcas - Lista todos os tipos de marcas./marcas/{id} - Retorna os detalhes de uma marca específica./marcas - Adiciona uma nova marca./marcas/{id} - Atualiza as informações de uma marca existente./marcas/{id} - Remove uma marca./funcionarios - Lista todos os funcionários./funcionarios/{id} - Retorna os detalhes de um funcionário específico./funcionarios - Adiciona um novo funcionário./funcionarios/{id} - Atualiza as informações de um funcionário existente./funcionarios/{id} - Remove um funcionário./cargos - Lista todos os cargos./cargos/{id} - Retorna os detalhes de um cargo específico./cargos - Adiciona um novo cargo./cargos/{id} - Atualiza as informações de um cargo existente./cargos/{id} - Remove um cargo./setores - Lista todos os setores./setores/{id} - Retorna os detalhes de um cargo específico./setores - Adiciona um novo cargo./setores/{id} - Atualiza as informações de um cargo existente./setores/{id} - Remove um cargo./estoque - Lista todos os veiculos e seus status no estoque./estoque/{id} - Retorna os detalhes de um veiculo no estoque em específico./estoque/{id} - Atualiza o status de um veiculo existente no estoque./notificacoes - Lista todos os notificações./notificacoes/{id} - Retorna os detalhes de um notificação específico./notificacoes - Adiciona um novo notificação./notificacoes/{id} - Remove um notificação./login - Autentica um usuário e gera um token JWT.Este projeto segue a metodologia Scrum, com iterações de desenvolvimento organizadas em Sprints de duas semanas. As atividades são gerenciadas através de reuniões diárias (Daily Standups), revisões de Sprint e retrospectivas. O objetivo é entregar incrementos funcionais da aplicação ao final de cada Sprint, garantindo um ciclo contínuo de melhoria e adaptação às necessidades do cliente.
Se deseja contribuir para este projeto:
git checkout -b minha-funcionalidade.git commit -m 'Adiciona minha nova funcionalidade'.git push origin minha-funcionalidade.Este projeto é licenciado sob a MIT License.