Pular para conteúdo

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