Skip to content

GuiOliverA/finance-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Flask HTML5 MySQL VS Code Railway

# Finance App

Aplicação web de controle financeiro pessoal desenvolvida com Flask e MySQL. Permite registrar receitas e despesas, organizá-las por categoria e visualizar relatórios com gráfico de pizza.


Funcionalidades

  • Transações — cadastro, edição e exclusão de receitas e despesas
  • Filtro por tipo (receita / despesa) na página inicial
  • Categorias — CRUD completo; 20 categorias padrão pré-cadastradas automaticamente
  • Relatório — totais de receitas, despesas e saldo; tabela e gráfico de pizza com distribuição de despesas por categoria (Chart.js)
  • Página 404 personalizada
  • Interface responsiva com Bootstrap 5

Tecnologias

Camada Tecnologia
Backend Python 3 · Flask 3 · SQLAlchemy 2
Banco de dados MySQL · PyMySQL
Frontend Bootstrap 5 · Chart.js 4
Deploy Procfile (compatível com Heroku / Railway)

Estrutura do projeto

finance_app/
├── app/
│   ├── __init__.py        # Application factory, db.create_all(), seed de categorias
│   ├── models.py          # Modelos ORM: Categoria e Transacao
│   ├── routes.py          # Todas as rotas (Blueprint `main`)
│   └── templates/
│       ├── base.html
│       ├── index.html
│       ├── adicionar.html
│       ├── editar.html
│       ├── relatorio.html
│       ├── categorias.html
│       ├── categorias_adicionar.html
│       └── 404.html
├── config.py              # Configurações de desenvolvimento e produção
├── run.py                 # Ponto de entrada
├── requirements.txt
└── Procfile

Rotas

Método URL Descrição
GET / Lista transações (aceita ?tipo=receita|despesa)
GET / POST /adicionar Nova transação
GET / POST /editar/<id> Editar transação
POST /deletar/<id> Excluir transação
GET /relatorio Resumo financeiro + gráfico
GET /categorias Listar categorias
GET / POST /categorias/adicionar Nova categoria
POST /categorias/deletar/<id> Excluir categoria

Como rodar localmente

Pré-requisitos

  • Python 3.10+
  • MySQL rodando localmente

1. Clone e instale as dependências

git clone <url-do-repositorio>
cd finance_app
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate

pip install -r requirements.txt

2. Crie o banco de dados no MySQL

CREATE DATABASE finance_app CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3. Configure as variáveis de ambiente (opcional)

Por padrão a app conecta em root:04072003@localhost:3306/finance_app. Para sobrescrever sem alterar o código:

export DATABASE_URL="mysql+pymysql://<usuario>:<senha>@localhost:3306/finance_app"
export SECRET_KEY="sua-chave-secreta"

4. Execute

python run.py

Acesse http://localhost:5000. As tabelas são criadas e as 20 categorias padrão são inseridas automaticamente na primeira execução.


Variáveis de ambiente

Variável Padrão Descrição
DATABASE_URL mysql+pymysql://root:SUA_SENHA@localhost:3306/finance_app URI de conexão com o MySQL
SECRET_KEY troque-esta-chave-em-producao Chave para assinatura de sessões Flask
PORT 5000 Porta HTTP (usado pelo run.py)

Atenção: nunca suba credenciais reais no controle de versão. Em produção, use sempre variáveis de ambiente.

About

Uma aplicação web completa para controle financeiro pessoal, desenvolvida com Python e Flask. O projeto permite o gerenciamento de transações (CRUD), integração com banco de dados MySQL e está pronto para produção com deploy via Railway. Focado em simplicidade, eficiência e organização de gastos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors