"Sua Liberdade Financeira Tem Nome e Lugar"
Eleutheriss é uma plataforma de gestão e educação financeira voltada ao público feminino. O sistema permite que usuárias registrem comprovantes de gastos por foto, acompanhem receitas e despesas, visualizem dashboards financeiros e acessem conteúdos educacionais sobre finanças pessoais.
Desenvolvido como projeto acadêmico na FACENS – Faculdade de Engenharia de Sorocaba, disciplina de Engenharia de Software (7º semestre).
Eleutheriss/
├── backend/ # API REST em Python com FastAPI
└── frontend/ # Interface web em React + TypeScript + Vite
- Python 3.11+
- FastAPI — framework web
- SQLAlchemy 2.0 — ORM
- Alembic — migrations de banco de dados
- PostgreSQL (via Supabase)
- Pydantic v2 — validação de dados
- python-jose + bcrypt — autenticação JWT
- Uvicorn — servidor ASGI
- React 18 + TypeScript
- Vite — bundler
- Tailwind CSS + shadcn/ui — estilização
- React Router v6 — roteamento
- TanStack Query — gerenciamento de estado assíncrono
- React Hook Form + Zod — formulários e validação
- Recharts — gráficos
Antes de começar, certifique-se de ter instalado:
- Python 3.11+
- Node.js 18+ (ou Bun)
- Git
- Acesso a um banco PostgreSQL (o projeto usa Supabase por padrão)
git clone https://github.com/seu-usuario/Eleutheriss.git
cd Eleutherisscd backend
# Windows
python -m venv venv
venv\Scripts\activate
# Linux / macOS
python -m venv venv
source venv/bin/activatepip install -r requirements.txtCrie um arquivo .env dentro da pasta raiz do projeto (ou edite o existente) com as seguintes variáveis:
DATABASE_URL=postgresql://<usuario>:<senha>@<host>:<porta>/<banco>
SECRET_KEY=sua_chave_secreta_aqui
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=1440
OPENAI_API_KEY= # opcional — para OCR de comprovantes
REDIS_URL=redis://localhost:6379/0 # opcional💡 O projeto usa Supabase como banco de dados em nuvem. Você pode criar um projeto gratuito em supabase.com e copiar a connection string para
DATABASE_URL.
alembic upgrade headSe aparecer o erro
Multiple head revisions, rode antes:alembic merge heads -m "merge_heads" alembic upgrade head
uvicorn app.main:app --reloadA API estará disponível em: http://localhost:8000
Documentação interativa (Swagger): http://localhost:8000/docs
cd frontendnpm install
# ou, se preferir Bun:
bun installnpm run dev
# ou
bun devO frontend estará disponível em: http://localhost:8080
| Método | Rota | Descrição |
|---|---|---|
POST |
/api/v1/users/register |
Cadastro de usuária |
POST |
/api/v1/users/login |
Login e geração de token JWT |
GET |
/api/v1/incomes/ |
Listar receitas |
POST |
/api/v1/incomes/ |
Registrar nova receita |
GET |
/ |
Health check da API |
Acesse
/docscom a API rodando para ver todos os endpoints disponíveis.
| RF | Funcionalidade | Prioridade |
|---|---|---|
| RF1 | Cadastro de usuárias | Must Have |
| RF2 | Registrar comprovante de gasto por foto | Must Have |
| RF3 | Registrar renda manual ou por foto | Must Have |
| RF4 | Dashboard com fluxo de caixa e categorias | Must Have |
| RF5 | Cursos de educação financeira | Should Have |
| RF6 | Definir metas financeiras | Could Have |
| RF7 | Monitorar objetivos com prazo e valor | Could Have |
cd frontend
npm run testnpm run test:watchProjeto desenvolvido para a disciplina de Engenharia de Software — FACENS, 7º semestre.
Este projeto é de uso acadêmico.