Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jdcodework/afp

Proyecto de software FullStack que he propuesto para desarrollar y reafirmar conocimientos tanto en el desarrollo front-end como back-end
https://github.com/jdcodework/afp

backend frontend nestjs postgresql reactjs swagger typeorm typescript

Last synced: about 1 month ago
JSON representation

Proyecto de software FullStack que he propuesto para desarrollar y reafirmar conocimientos tanto en el desarrollo front-end como back-end

Awesome Lists containing this project

README

        

# Aplicación de Finanzas Personales

AFP es un proyecto de software FullStack que he propuesto para desarrollar y reafirmar conocimientos tanto en el desarrollo front-end como back-end

## Descripción 📖

`AFP` es una aplicación web diseñada para ayudar a los usuarios a gestionar sus finanzas personales de manera intuitiva. Ofrece diversas herramientas que permiten un control eficiente de los recursos:

- **Presupuestos**: proporcionan una guía clara sobre el límite máximo de gasto en cada categoría financiera, ayudando a evitar excesos.
- **Metas**: permiten al usuario monitorear sus ahorros y visualizar su progreso hacia objetivos financieros específicos.
- **Gastos recurrentes**: gestionan pagos periódicos, como cuotas, suscripciones o facturas, manteniendo al usuario al tanto de sus compromisos financieros.
- **Transacciones**: registran y gestionan los ingresos y egresos, ofreciendo una visión completa de las finanzas personales.

Con estas funcionalidades, `AFP` facilita una gestión financiera más ordenada y eficiente.

## Requerimientos

Para el desarrollo de la aplicación, se han definido los siguientes requerimientos necesarios para su completo funcionamiento:

- **Gestión de Bolsillos de Ahorro**: El sistema permitirá a los usuarios crear y gestionar bolsillos de ahorro. Los usuarios podrán definir metas, establecer cronogramas de ahorro y asociar transacciones de ahorro a estas metas. Será posible aprobar, modificar o eliminar estos bolsillos en cualquier momento.

- **Gestión de Transacciones**: Los usuarios podrán crear y gestionar transacciones (ingresos y gastos), cada una asociada a una categoría financiera específica. El sistema debe permitir la clasificación de las transacciones de acuerdo a la naturaleza del movimiento (ingreso o gasto) y su categoría correspondiente.

- **Presupuestos**: El sistema permitirá a los usuarios crear y gestionar presupuestos, estableciendo límites máximos de gasto para diferentes categorías. Estos presupuestos ayudarán a los usuarios a controlar sus finanzas y evitar exceder los límites definidos.

- **Gastos Recurrentes**: El sistema permitirá a los usuarios gestionar pagos recurrentes, como suscripciones, facturas o cuotas periódicas. Los usuarios podrán visualizar y administrar estos pagos, configurando la frecuencia y las fechas de inicio y fin.

- **Registro y Autenticación Segura**: El sistema debe proporcionar un mecanismo seguro para que los usuarios se registren, inicien sesión y accedan a la aplicación. Además, permitirá a los usuarios modificar su información personal cuando lo deseen, respetando las normas de seguridad y privacidad.

Con estos requerimientos, se busca garantizar una gestión integral y segura de las finanzas personales de los usuarios.

# Planificación del Sistema

Esta sección incluye toda la información visual y los datos utilizados para planear el desarrollo de `AFP`, una aplicación web para gestionar finanzas personales.

## 1. Diagramas de Arquitectura del Sistema 🏗️

### 1.1 Diagrama Entidad-Relación (ER)

![Diagrama ER](./AFP_DIAGRAM.svg)

## 2. Estructura de Base de Datos 🗄️

### 2.1 Esquema de Tablas

A continuación, se presenta una vista general de las tablas y sus relaciones:

- **Users**: Maneja la información personal y de acceso de los usuarios.
- **Transactions**: Registra todas las transacciones de ingresos y gastos.
- **Goals**: Representa los diferentes objetivos de ahorro.
- **Subscription**: Gestiona las suscripciones y pagos periódicos.
- **Budgets**: Define los límites de gasto en distintas categorías.

## 3. Mockups y Diseño de la UI 🎨

_En desarrollo_

## 4. Reglas de Negocio y Validaciones ⚖️

- Los usuarios deben autenticarse de manera segura antes de poder acceder a la aplicación.
- Solo los usuarios registrados podrán crear, modificar o eliminar transacciones, presupuestos, y metas.
- Las transacciones deben asociarse a una categoría y deben respetar los límites definidos en los presupuestos.
- Los pagos recurrentes serán automáticos según la frecuencia establecida, pero los usuarios podrán cancelarlos en cualquier momento.