This project is a Transaction Magnament System that allows users to manage clients, invoices, and transactions records efficiently. It supports bulk data upload via CSV files and provides advanced queries for transactions analytics.
-
Clone the repository:
git clone <https://github.com/WillmanGZ/ExpertSoft> cd ExpertSoft
-
Install dependencies:
npm install
-
Set up the database:
- Make sure you have MySQL installed and running.
- Execute the SQL script located at
docs/pd_willman_giraldo_caiman.sql
to create the database and tables:
-
Start the backend server:
npm run server
-
Start the frontend (Vite dev server):
npm run dev
- Open your browser and go to
http://localhost:5173
(or the port shown in your terminal).
- Open your browser and go to
- Frontend: HTML, CSS, JavaScript, Vite
- Backend: Node.js, Express.js
- Database: MySQL
- Other Libraries:
- SweetAlert2 (for alerts)
- csv-parser (for CSV processing)
- Multer (for file uploads)
- mysql2 (for MySQL connection)
- CORS (for API permission control)
The database is normalized as follows:
- Clients Table: Stores client information.
- Invoices Table: Stores invoice details.
- Transactions Table: Stores transaction records, referencing clients and invoices via foreign keys.
This structure avoids data redundancy and ensures data integrity through the use of primary and foreign keys.
-
Prepare a CSV file with the following columns:
- ID de la Transacción
- Fecha y Hora de la Transacción
- Monto de la Transacción
- Estado de la Transacción
- Tipo de Transacción
- Nombre del Cliente
- Número de Identificación
- Dirección
- Teléfono
- Correo Electrónico
- Plataforma Utilizada
- Número de Factura
- Periodo de Facturación
- Monto Facturado
- Monto Pagado
-
On the main page, use the file upload form to select and upload your CSV file.
-
The system will process the file and populate the database with clients, invoices, and transactions.
The backend provides several advanced endpoints:
/clients/total-paid/:id
: Returns the total paid by this client./invoices/with-delays
: Lists of pending invoices./transactions/platforms/:name
: Lists transactions filtered by platform (Nequi or Daviplata).
See the root endpoint (/
) for a full list of available API routes.
See [docs/ExpertSoft DB.png
](docs/ExpertSoft DB.png ) for the relational model diagram.
- Name: [Willman Alfredo Giraldo Zambrano]
- Clan: [Caiman]
- Email: [willman0520@outlook.com]