Aplicación web fullstack para la gestión de finanzas personales con soporte multi-inquilino
Finanplanen es una aplicación web diseñada para ayudarte a tomar el control total de tus finanzas personales. Permite registrar ingresos y gastos, administrar múltiples cuentas (crédito, débito, efectivo), establecer presupuestos mensuales por categoría, definir metas de ahorro, y programar transferencias recurrentes entre cuentas. Con soporte multi-inquilino, es ideal tanto para uso personal como para pequeños equipos o familias que deseen centralizar su gestión financiera.
| Capa | Tecnología |
|---|---|
| Backend | Django 4.2.20 |
| Base de datos | MySQL |
| Frontend | HTML5 · CSS3 · JavaScript |
| Autenticación | Django Auth |
| Tareas asíncronas | Celery + Redis |
| Imágenes | Pillow |
- Python 3.10+
- MySQL corriendo localmente
- Redis (para Celery)
- Git
# 1. Clonar el repositorio
git clone https://github.com/Code-Castor28/finanplanen.git
cd finanplanen
# 2. Crear entorno virtual
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# 3. Instalar dependencias
pip install -r requirements.txt
# 4. Configurar variables de entorno
cp .env.example .env
# Editar .env con tus valores
# 5. Crear la base de datos MySQL
mysql -u root -p -e "CREATE DATABASE finanplanen CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# 6. Aplicar migraciones
python manage.py migrate
# 7. Crear superusuario
python manage.py createsuperuser
# 8. Correr el servidor
python manage.py runserverAbrí http://127.0.0.1:8000 en tu navegador.
Creá un archivo .env en la raíz del proyecto basado en .env.example:
| Variable | Descripción | Ejemplo |
|---|---|---|
SECRET_KEY |
Clave secreta de Django | django-insecure-... |
DEBUG |
Modo depuración | True |
DB_NAME |
Nombre de la base de datos | finanplanen |
DB_USER |
Usuario de la base de datos | root |
DB_PASSWORD |
Contraseña de la base de datos | |
DB_HOST |
Host de la base de datos | 172.31.128.1 |
DB_PORT |
Puerto de la base de datos | 3306 |
ALLOWED_HOSTS |
Hosts permitidos | * |
finanplanen/
├── apps/
│ ├── accounts/ # Cuentas financieras (crédito, débito, efectivo)
│ ├── budgets/ # Presupuestos mensuales por categoría
│ ├── categories/ # Categorías y etiquetas
│ ├── core/ # Dashboard principal e infraestructura
│ ├── savings/ # Metas de ahorro y depósitos
│ ├── theme/ # Personalización de temas (colores, íconos)
│ ├── transactions/ # Ingresos y gastos
│ ├── transfers/ # Transferencias entre cuentas
│ └── users/ # Usuarios, autenticación e inquilinos
├── config/
│ └── settings/ # Configuración de Django (base, dev, prod)
├── static/ # Archivos estáticos (CSS, JS)
├── templates/ # Templates HTML
├── media/ # Archivos subidos (comprobantes, etc.)
├── manage.py
├── requirements.txt
└── .env.example
| Módulo | Descripción |
|---|---|
| Dashboard | Panel principal con resumen de balance total, ingresos/gastos del mes, gráficos de evolución (6 meses) y distribución por categorías |
| Cuentas | Administración de cuentas de crédito, débito y efectivo con saldo en tiempo real |
| Transacciones | Registro de ingresos y gastos con soporte para comprobantes |
| Presupuestos | Límites de gasto mensual por categoría con indicador de progreso y alertas de exceso |
| Metas de ahorro | Definición de objetivos de ahorro con seguimiento de depósitos y porcentaje de avance |
| Transferencias | Transferencias entre cuentas con soporte para recurrencias (diarias, semanales, mensuales) |
| Categorías | Organización de transacciones por categorías y etiquetas |
- Ejecución de recurrencias (diaria a las 6:00 AM) — procesa transferencias recurrentes
- Recordatorio de tarjetas de crédito (diaria a las 9:00 AM) — notifica próximos pagos
Hecho con ❤️ por Code-Castor28