Estruturas de Pastas para Projetos
← Início
É uma base para a criação dos projetos seguindo padrões de documentação e desenvolvimento
1. Java/Spring Boot Web API - DDD Simplificado
src/main/java/com/company/project/
│
├── application/ # Camada de Serviços de Aplicação
│ ├── service/ # Serviços de aplicação (casos de uso)
│ ├── dto/ # Objetos de Transferência de Dados
│ └── mapper/ # Mapeadores DTO <-> Domínio
│
├── domain/ # Camada de Domínio (Lógica de Negócio Principal)
│ ├── model/ # Entidades e Objetos de Valor
│ ├── repository/ # Interfaces de repositório
│ └── service/ # Serviços de domínio
│
├── infrastructure/ # Camada de Infraestrutura
│ ├── persistence/ # Implementações de repositório
│ │ ├── jpa/ # Entidades JPA
│ │ └── repository/ # Implementações de repositório JPA
│ ├── config/ # Classes de configuração
│ ├── security/ # Implementações de segurança
│ └── external/ # Adaptadores de serviços externos
│
├── interfaces/ # Camada de Interface (Apresentação)
│ ├── controller/ # Controladores REST
│ ├── request/ # DTOs de requisição
│ └── response/ # DTOs de resposta
│
└── ProjectApplication.java # Ponto de entrada da aplicação
src/main/resources/
├── application.yml # Configuração
├── application-dev.yml # Perfil de desenvolvimento
├── application-prod.yml # Perfil de produção
└── db/migration/ # Migrações Flyway
src/test/java/com/company/project/ # Testes espelhando a estrutura principal
Descrição das Camadas
| Camada |
Responsabilidade |
| application |
Orquestração de casos de uso, DTOs, mapeadores |
| domain |
Entidades, regras de negócio, interfaces de repositório |
| infrastructure |
Implementações técnicas, configs, segurança |
| interfaces |
Controllers REST, DTOs de entrada/saída |
2. Projeto Frontend Next.js React (App Router)
src/
├── app/ # App Router (Next.js 13+)
│ ├── (auth)/ # Grupo de rotas - páginas de autenticação
│ │ ├── login/
│ │ │ └── page.tsx
│ │ └── register/
│ │ └── page.tsx
│ │
│ ├── (dashboard)/ # Grupo de rotas - páginas protegidas
│ │ ├── layout.tsx
│ │ ├── page.tsx # /dashboard
│ │ └── users/
│ │ └── page.tsx # /dashboard/users
│ │
│ ├── api/ # Rotas de API
│ │ ├── auth/
│ │ │ └── route.ts
│ │ └── users/
│ │ └── route.ts
│ │
│ ├── layout.tsx # Layout raiz
│ ├── page.tsx # Página inicial
│ ├── loading.tsx # UI de carregamento
│ ├── error.tsx # Boundary de erro
│ └── not-found.tsx # Página 404
│
├── components/ # Componentes reutilizáveis
│ ├── ui/ # Componentes base de UI (Button, Input, etc.)
│ ├── forms/ # Componentes de formulário
│ ├── layouts/ # Componentes de layout
│ └── shared/ # Componentes compartilhados
│
├── hooks/ # Hooks React customizados
│ ├── useAuth.ts
│ └── useApi.ts
│
├── lib/ # Utilitários e bibliotecas
│ ├── api.ts # Cliente API
│ ├── auth.ts # Utilitários de autenticação
│ └── utils.ts # Funções auxiliares
│
├── services/ # Camada de serviços API
│ ├── user.service.ts
│ └── auth.service.ts
│
├── types/ # Tipos TypeScript
│ ├── user.types.ts
│ └── api.types.ts
│
├── store/ # Gerenciamento de estado (Zustand/Redux)
│ └── index.ts
│
└── styles/ # Estilos globais
└── globals.css
public/ # Assets estáticos
├── images/
├── fonts/
└── favicon.ico
.env.local # Variáveis de ambiente
next.config.js
tailwind.config.js
tsconfig.json
Descrição dos Diretórios
| Diretório |
Responsabilidade |
| app/ |
Rotas e páginas do App Router |
| components/ |
Componentes React reutilizáveis |
| hooks/ |
Custom hooks |
| lib/ |
Utilitários e configurações |
| services/ |
Camada de comunicação com API |
| types/ |
Tipos TypeScript |
| store/ |
Estado global (Zustand) |
3. Projeto de Machine Learning em Python
project_root/
│
├── data/ # Diretório de dados
│ ├── raw/ # Dados brutos e imutáveis
│ ├── processed/ # Dados limpos/processados
│ ├── external/ # Fontes de dados externas
│ └── interim/ # Transformações intermediárias
│
├── notebooks/ # Jupyter notebooks
│ ├── exploration/ # Exploração de dados
│ │ └── 01_eda.ipynb
│ ├── experiments/ # Experimentos de modelos
│ │ └── 01_baseline.ipynb
│ └── reports/ # Relatórios de análise
│ └── final_report.ipynb
│
├── src/ # Código fonte
│ ├── __init__.py
│ │
│ ├── data/ # Processamento de dados
│ │ ├── __init__.py
│ │ ├── dataset.py # Classes de dataset
│ │ ├── loader.py # Carregamento de dados
│ │ └── preprocessing.py # Pré-processamento de dados
│ │
│ ├── features/ # Engenharia de features
│ │ ├── __init__.py
│ │ └── build_features.py
│ │
│ ├── models/ # Definições de modelos
│ │ ├── __init__.py
│ │ ├── train.py # Scripts de treinamento
│ │ ├── predict.py # Scripts de predição
│ │ └── architecture/ # Arquiteturas de modelos
│ │ ├── __init__.py
│ │ └── model_v1.py
│ │
│ ├── evaluation/ # Métricas de avaliação
│ │ ├── __init__.py
│ │ └── metrics.py
│ │
│ └── utils/ # Utilitários
│ ├── __init__.py
│ ├── config.py # Configuração
│ ├── logging.py # Configuração de logging
│ └── visualization.py # Utilitários de visualização
│
├── configs/ # Arquivos de configuração
│ ├── config.yaml # Configuração principal
│ ├── model_config.yaml # Hiperparâmetros do modelo
│ └── training_config.yaml # Configurações de treinamento
│
├── experiments/ # Rastreamento de experimentos
│ └── experiment_name/
│ ├── config.yaml
│ ├── metrics.json
│ └── checkpoints/
│
├── scripts/ # Scripts independentes
│ ├── train.py # Ponto de entrada de treinamento
│ ├── predict.py # Ponto de entrada de predição
│ └── evaluate.py # Ponto de entrada de avaliação
│
├── tests/ # Testes unitários
│ ├── __init__.py
│ ├── test_data.py
│ ├── test_models.py
│ └── test_features.py
│
├── artifacts/ # Modelos salvos e artefatos
│ ├── models/
│ ├── encoders/
│ └── scalers/
│
├── logs/ # Logs de treinamento
│
├── requirements.txt # Dependências Python
├── setup.py # Configuração do pacote
├── pyproject.toml # Configuração do projeto
├── Makefile # Comandos comuns
└── README.md
Descrição dos Diretórios
| Diretório |
Responsabilidade |
| data/ |
Dados em diferentes estágios |
| notebooks/ |
Exploração e experimentação |
| src/ |
Código fonte modular |
| configs/ |
Configurações YAML |
| experiments/ |
Resultados de experimentos |
| scripts/ |
Scripts executáveis |
| tests/ |
Testes unitários |
| artifacts/ |
Modelos treinados |
← Início