Este projeto é um framework robusto e flexível para aplicações web modernas, construído com FastAPI no backend e Vue.js (Vite) no frontend. Ele foi projetado com uma arquitetura limpa e desacoplada, pronta para ser estendida e adaptada a diversas necessidades.
- Backend Moderno: Construído com FastAPI, oferecendo alta performance, código assíncrono e documentação de API automática (Swagger/OpenAPI).
- Frontend Reativo: Utiliza Vue 3 com Vite para uma experiência de desenvolvimento rápida e uma interface de usuário reativa.
- Arquitetura de Provedores: Design flexível que permite trocar a fonte de dados de um domínio (ex: PostgreSQL, CSV) alterando uma única variável de configuração no arquivo do roteador, sem modificar o código de negócio.
- Autenticação Híbrida: Suporte nativo para autenticação via Active Directory (AD) em produção e um provedor "mock" para desenvolvimento offline (sem necessidade de credenciais de AD).
- Estrutura Escalável: Organização de projeto clara que separa responsabilidades (
routers,controllers,providers), facilitando a manutenção e a adição de novas funcionalidades.
A estrutura do projeto é projetada para separar claramente as responsabilidades entre backend, frontend e documentação.
.
├── data/ # Dados estáticos (ex: arquivos CSV)
├── docs/ # Documentação detalhada do projeto
│ ├── ARCHITECTURE.md # Explicação da arquitetura e padrões
│ ├── AUTHENTICATION.md # Detalhes sobre o sistema de autenticação
│ └── SETUP.md # Guia de instalação e execução
├── frontend/ # Código-fonte da aplicação Vue.js
├── src/ # Código-fonte do backend FastAPI
│ ├── auth/ # Lógica de autenticação (AD, Mock, JWT)
│ ├── controllers/ # Lógica de negócio e orquestração
│ ├── dependencies.py # Fábrica de injeção de dependência
│ ├── models/ # Modelos de dados (SQLAlchemy)
│ ├── providers/ # Camada de acesso a dados (Postgres, CSV, etc.)
│ │ ├── implementations/
│ │ └── interfaces/
│ ├── resources/ # Configuração de recursos (ex: conexão com DB)
│ └── routers/ # Definição dos endpoints da API
├── .env.example # Arquivo de exemplo para variáveis de ambiente
└── README.md # Esta documentação
Para instalar e executar a aplicação, siga o guia de configuração detalhado:
Se você já possui o uv instalado, pode subir o backend em segundos:
uv sync
cp .env.example .env
./start.shCaso contrário, entre na pasta frontend, rode os comandos:
npm install
npm run buildEm seguida vá até a raíz do projeto e use:
python -m uvicorn src.main:app --reloadPor último volte a pasta frontend e rode:
npm run devO frontend (build de produção) será servido automaticamente em http://localhost:8000.
Para entender a fundo os conceitos e padrões utilizados neste framework, consulte a documentação específica: