Sistema desenvolvido para gerenciar a distribuição de rações do Projeto Antonieta da Prefeitura de Pindamonhangaba.
- FastAPI
- SQLAlchemy
- PostgreSQL
- Python 3.10+
- Alembic (Migrations)
- Vue.js 3
- Nuxt 3
- Naive UI
- TypeScript
- Python 3.10 ou superior
- Node.js 16 ou superior
- PostgreSQL
- Git
# Clone o repositório
git clone https://github.com/abraaom/Pindamonhangaba.Antonieta.git
cd Pindamonhangaba.Antonieta
# Inicie o banco de dados
docker-compose up -d
# O PostgreSQL estará disponível em:
# Host: localhost
# Porta: 5433
# Usuário: antonieta_usr
# Senha: antonieta_passd
# Database: antonieta_db# Navegue até a pasta do backend
cd Antonieta.Backend
# Crie um ambiente virtual
python -m venv venv
# Ative o ambiente virtual
# Linux/Mac:
source venv/bin/activate
# Windows:
.\venv\Scripts\activate
# Instale as dependências
pip install -r requirements.txt
# Configure as variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env com suas configurações
# Execute as migrations
alembic upgrade head
# Crie o usuário administrador inicial
python create_admin_user.py
# Execute o SQL gerado no PostgreSQL:
# psql -U antonieta_usr -d antonieta_db -h localhost -p 5433 -f insert_admin_user.sql
# Inicie o servidor
uvicorn main:app --reload --port 8000Credenciais padrão do administrador:
- Email:
admin@antonieta.com - Senha:
Admin@123 ⚠️ IMPORTANTE: Altere a senha após o primeiro login!
# Navegue até a pasta do frontend
cd Antonieta.Frontend
# Instale as dependências
npm install
# Configure as variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env se necessário
# Inicie o servidor de desenvolvimento
npm run devO frontend estará disponível em: http://localhost:3000
Pindamonhangaba.Antonieta/
├── Antonieta.Backend/ # API Backend
│ ├── alembic/ # Migrations do banco de dados
│ ├── controllers/ # Controladores da API (endpoints)
│ ├── models/ # Modelos do SQLAlchemy
│ ├── services/ # Lógica de negócio
│ ├── dtos/ # Data Transfer Objects
│ ├── database.py # Configuração do banco
│ ├── main.py # Arquivo principal da aplicação
│ ├── requirements.txt # Dependências Python
│ └── create_admin_user.py # Script para criar admin inicial
├── Antonieta.Frontend/ # Frontend Web
│ ├── components/ # Componentes Vue reutilizáveis
│ ├── pages/ # Páginas da aplicação
│ ├── services/ # Serviços de comunicação com API
│ ├── models/ # Tipos e modelos TypeScript
│ ├── layouts/ # Layouts da aplicação
│ ├── middleware/ # Middlewares de autenticação
│ ├── composables/ # Composables Vue (useAuth, etc)
│ └── nuxt.config.ts # Configuração do Nuxt
├── Antonieta.Tests/ # Testes automatizados
│ ├── tests/ # Casos de teste E2E
│ ├── pages/ # Page Objects
│ └── playwright.config.ts # Configuração do Playwright
├── docker-compose.yml # Configuração Docker
└── readme.md # Este arquivo
- ✅ Cadastro completo de beneficiários
- ✅ Pesquisa e filtros avançados
- ✅ Edição e exclusão de registros
- ✅ Histórico de distribuições por beneficiário
- ✅ Registro de entradas de ração
- ✅ Controle de estoque por tipo de ração
- ✅ Alertas de estoque baixo
- ✅ Relatório de movimentação
- ✅ Registro de distribuição de rações
- ✅ Controle de quantidade por beneficiário
- ✅ Histórico completo de distribuições
- ✅ Validações de estoque automáticas
- ✅ Métricas em tempo real
- ✅ Gráficos de distribuição
- ✅ Indicadores de estoque
- ✅ Resumo de beneficiários ativos
- ✅ Gestão de usuários
- ✅ Controle de permissões (comum/administrador)
- ✅ Log de auditoria
- ✅ Autenticação JWT
- ✅ Relatório de distribuições
- ✅ Relatório de beneficiários
- ✅ Exportação de dados
- ✅ Histórico de movimentações
# Banco de Dados
DATABASE_URL=postgresql://antonieta_usr:antonieta_passd@localhost:5433/antonieta_db
# JWT/Autenticação
SECRET_KEY=your-super-secret-key-change-this-in-production
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
# Ambiente
ENVIRONMENT=development# URL da API
NUXT_PUBLIC_BACKEND_URL=http://localhost:8000O projeto inclui testes E2E usando Playwright:
cd Antonieta.Tests
# Instalar dependências
npm install
# Executar testes
npm test
# Executar com interface gráfica
npm run test:ui
# Relatório de testes
npm run test:reportA documentação interativa da API (Swagger) está disponível em:
- Desenvolvimento: http://localhost:8000/docs
- Redoc: http://localhost:8000/redoc
- Produção: https://api.pindamonhangaba.sp.gov.br/docs
POST /auth/token- Login (retorna JWT)GET /auth/me- Dados do usuário autenticadoPOST /auth/register- Registro de novo usuário (apenas admin)
GET /beneficiaries- Lista beneficiáriosPOST /beneficiaries- Cria beneficiárioGET /beneficiaries/{id}- Detalhes do beneficiárioPUT /beneficiaries/{id}- Atualiza beneficiárioDELETE /beneficiaries/{id}- Remove beneficiário
GET /distributions- Lista distribuiçõesPOST /distributions- Registra distribuiçãoGET /distributions/{id}- Detalhes da distribuição
GET /ration-stocks- Lista estoque de raçõesPOST /ration-inputs- Registra entrada de raçãoGET /dashboard- Métricas do dashboard
# Verifique se o PostgreSQL está rodando
docker-compose ps
# Reinicie o container do banco
docker-compose restart db
# Verifique os logs
docker-compose logs dbcd Antonieta.Backend
# Reverter última migration
alembic downgrade -1
# Aplicar migrations novamente
alembic upgrade head
# Criar nova migration
alembic revision --autogenerate -m "descrição"- Verifique se o backend está rodando em
http://localhost:8000 - Confirme a variável
NUXT_PUBLIC_BACKEND_URLno.env - Verifique CORS no backend (deve permitir
http://localhost:3000)
Se após fazer login com um usuário administrador o menu não aparecer:
- Limpe o cache do navegador (Ctrl+Shift+Delete)
- Faça logout e login novamente
- Verifique no console do navegador se há erros
- Confirme que o role do usuário no banco é
'administrador'
- Módulo de relatórios avançados
- Exportação para Excel/PDF
- Notificações por email
- App mobile
- API de integração com outros sistemas
- Dashboard analítico avançado
- Sistema de agendamento de distribuições
- Faça o fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Para suporte e dúvidas:
- Email: abraao.moreira@pindamonhangaba.sp.gov.br
- Departamento: Secretaria de Tecnologia, Inovação e Projetos
- Prefeitura: Pindamonhangaba - SP
- Abraão Moreira - Analista de Tecnologia de Informação - GitHub
- Prefeitura Municipal de Pindamonhangaba
- Secretaria de Tecnologia, Inovação e Projetos
- Equipe do Projeto Antonieta
- Comunidade open source
Desenvolvido com ❤️ pelo Departamento de Sistemas
Secretaria de Tecnologia, Inovação e Projetos
Prefeitura de Pindamonhangaba © 2025