O ERP SSAG adota uma organização de pastas baseada no padrão Domain-Driven Design (DDD). Essa estrutura visa facilitar a escalabilidade e a manutenção do projeto, garantindo que cada camada e responsabilidade estejam bem definidas.
SSAG.ERP/
├── src/ # Diretório principal do código-fonte do projeto
│ ├── SSAG.ERP.Domain/ # Lógica de negócios e entidades do domínio
│ │ ├── Entities/ # Classes de entidades que representam o modelo de domínio
│ │ ├── Interfaces/ # Interfaces para repositórios e contratos de domínio
│ │ ├── Services/ # Serviços que encapsulam regras de negócios específicas
│ │ └── Events/ # Eventos de domínio para notificação de alterações internas
│ ├── SSAG.ERP.Application/ # Serviços de aplicação intermediários e lógica de negócios
│ │ ├── DTOs/ # Objetos de Transferência de Dados usados para comunicação
│ │ ├── Interfaces/ # Interfaces dos serviços de aplicação
│ │ └── Services/ # Implementações dos serviços de aplicação e lógica de negócios
│ ├── SSAG.ERP.Infrastructure/ # Persistência de dados, configuração e repositórios
│ │ ├── Repositories/ # Repositórios que gerenciam o acesso e persistência de dados
│ │ ├── Data/ # Configurações de contexto de dados e conexões de banco
│ │ └── Migrations/ # Scripts de migração para controle de versão do banco de dados
│ ├── SSAG.ERP.Identity/ # Autenticação e autorização
│ │ ├── IdentityDbContext/ # Contexto de banco de dados para gerenciar usuários e identidades
│ │ ├── Services/ # Serviços para autenticação e autorização
│ │ ├── Models/ # Modelos de dados personalizados para identidade
│ │ └── Configurations/ # Configurações para autenticação, como provedores de login
│ ├── SSAG.ERP.API/ # API RESTful para exposição de serviços backend
│ │ ├── Controllers/ # Controladores que definem endpoints e rotas da API
│ │ ├── Models/ # DTOs específicos da API para entrada e saída de dados
│ │ ├── Filters/ # Filtros personalizados para autenticação e autorização
│ │ ├── Middlewares/ # Middlewares personalizados para manipulação de requisições
│ │ └── Configurations/ # Configurações gerais da API, como CORS e dependências
│ ├── SSAG.ERP.UI/ # Interface com o usuário para a aplicação web
│ │ └── Web/ # Projeto Blazor Web para a interface com o usuário
│ │ ├── Pages/ # Componentes de páginas Blazor, representando telas do sistema
│ │ ├── Shared/ # Componentes e layouts compartilhados entre páginas
│ │ └── wwwroot/ # Arquivos estáticos como CSS e JavaScript para UI
│ ├── SSAG.ERP.Shared/ # Modelos e DTOs compartilhados entre camadas
│ │ ├── DTOs/ # Data Transfer Objects usados por múltiplas camadas
│ │ ├── Enums/ # Enumerações compartilhadas para uso entre camadas
│ │ └── Constants/ # Constantes comuns para todo o sistema
│ └── SSAG.ERP.Tests/ # Testes automatizados para backend e frontend
│ ├── Domain.Tests/ # Testes unitários para a lógica de domínio e entidades
│ ├── Application.Tests/ # Testes de unidade para a camada de aplicação e casos de uso
│ ├── Infrastructure.Tests/ # Testes de integração para validar persistência e repositórios
│ ├── Identity.Tests/ # Testes de unidade e integração para autenticação e identidade
│ ├── UI.Web.Tests/ # Testes de interface para componentes do Blazor Web
│ └── API.Tests/ # Testes de integração para os endpoints da API
└── docs/ # Documentação do projeto, geralmente em arquivos Markdown
Essa estrutura permite uma separação clara de responsabilidades, facilitando o desenvolvimento baseado em DDD e a implementação de padrões como SOLID e Clean Code.
A seguir, consulte a página de Padrões de Desenvolvimento para entender as diretrizes de codificação e melhores práticas.
Última atualização: [10/11/2024]