Controle Financeiro - API
API completa para controle financeiro pessoal -- com autenticacao segura, CRUD de transacoes e endpoints adicionais para analise de gastos.
Sobre o projeto
Este e o meu primeiro projeto de API desenvolvido de forma independente. Ela foi criada com FastAPI (Python) e tem como objetivo gerenciar financas pessoais, permitindo registrar, visualizar e editar transacoes, alem de autenticacao segura com bcrypt e JWT.
A API esta totalmente funcional e pronta para integracao com um front-end.
Funcionalidades principais
Autenticacao
POST /auth/registrar - Cria novo usuario (senha criptografada com bcrypt)
POST /auth/login - Login com retorno de token JWT
POST /auth/login_form - Login via formulario
GET /auth/refresh - Atualiza o token de autenticacao
Transacoes
POST /order/alterar_saldo - Altera o saldo do usuario
POST /order/criar_transacao - Cria nova transacao (Entrada/Saida)
GET /order/visualizar_transacoes - Lista todas as transacoes
PUT /order/editar_transacao - Edita transacao existente
DELETE /order/excluir_transacao - Exclui transacao
GET /order/soma_de_gastos - Retorna soma total de gastos
GET /order/gastos_por_categoria - Mostra gastos agrupados por categoria
Tecnologias utilizadas
Python 3.10+
FastAPI -- framework principal
Uvicorn -- servidor ASGI
bcrypt -- criptografia de senhas
JWT (PyJWT) -- autenticacao
SQLAlchemy / SQLite -- banco de dados e ORM
Como rodar o projeto localmente
- Clone o repositorio:
git clone https://github.com/seu-usuario/controle-financeiro-api.git cd controle-financeiro-api
- Crie e ative um ambiente virtual:
python -m venv .venv source .venv/bin/activate # Linux/Mac .venv\Scripts\activate # Windows
- Instale as dependencias:
pip install -r requirements.txt
- Crie um arquivo .env com suas configuracoes:
SECRET_KEY=sua_chave_secreta_aqui ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=60
- Inicie o servidor:
uvicorn app.main:app --reload
- Acesse a documentacao interativa (Swagger UI):
Exemplos de uso (Swagger UI)
A documentacao interativa permite testar todos os endpoints facilmente, com suporte a autenticacao via token JWT.
Licenca
Este projeto e distribuido sob a licenca MIT. Sinta-se a vontade para usar, modificar e contribuir!
Criado por: Alexandre S. de Franca