Nome do Projeto: PHP Clean Arch
Descrição:
Este projeto é uma API REST desenvolvida com o objetivo de estudo e prática da Clean Architecture e dos conceitos de Domain-Driven Design (DDD).
A aplicação foi construída em PHP utilizando o framework Laravel, com persistência de dados em MySQL. A arquitetura do projeto prioriza a separação de responsabilidades entre as camadas de domínio, aplicação, infraestrutura e interfaces, buscando alto desacoplamento, testabilidade e facilidade de manutenção.
Através da API é possível realizar operações de CRUD no domínio de registros, incluindo criação, listagem, atualização e exclusão, além de uma funcionalidade de exportação dos dados registrados por meio de uma rota específica.
O projeto foi estruturado para simular um cenário real de API backend, aplicando boas práticas como uso de casos de uso, repositórios, DTOs e critérios de filtragem. Também foram implementados testes automatizados com o objetivo de cobrir as principais camadas da aplicação, garantindo o correto funcionamento das regras de negócio e facilitando a evolução do código.
Objetivo:
Implementar uma aplicação simples em Arquitetura Limpa + DDD.
Tecnologias Utilizadas:
Se você é um desenvolvedor interessado em contribuir ou entender melhor o funcionamento do projeto, aqui estão algumas informações adicionais:
Ambiente:
CREATE DATABASE IF NOT EXISTS `mysql-clean-arch`;
USE `mysql-clean-arch`;
CREATE TABLE IF NOT EXISTS `registrations` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`registration_number` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`birth_date` date NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `registrations_registration_number_index` (`registration_number`),
KEY `registrations_deleted_at_index` (`deleted_at`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ciInstruções de Instalação e Configuração:
Atenção: Obrigatório o uso de Docker em sua máquina.
- Clone o repositório do projeto:
git clone https://github.com/edssaac/php-clean-arch
- Navegue até o diretório do projeto:
cd php-clean-arch
- Inicie a aplicação atráves do script que configura o Docker:
.ci_cd/init.sh
Com isso a aplicação estará acessivel: http://localhost:8080
Confira a Documentação para informações sobre o consumo da API.
Caso queira rodas os testes:
docker exec -it php bash
php artisan test
- Quando desejar encerrar a aplicação, use:
.ci_cd/stop.sh
Caso deseje encerrar e remover os volumes criados, use:
.ci_cd/stop.sh -v