Loan Services es una aplicación Django que proporciona un sistema de gestión de préstamos, pagos y clientes. Este proyecto está dockerizado para facilitar su despliegue y desarrollo. Incorpora patrones de diseño como Repository, Service, y Specification para organizar la lógica de negocio de manera modular y mantenible. También incluye documentación API con Swagger.
- Gestión de clientes, préstamos y pagos.
- Arquitectura basada en patrones de diseño para un código limpio y mantenible.
- Dockerizado para fácil despliegue y desarrollo.
- Documentación API con Swagger.
- Django y Django REST Framework para el backend.
- PostgreSQL como sistema de gestión de base de datos.
- Docker para contenerización y orquestación.
- Swagger para documentación API.
-
Repository: Abstrae la lógica de acceso a datos del dominio de la aplicación, permitiendo que el código de negocio sea independiente de la capa de acceso a datos.
- Referencia: Repository pattern
-
Service: Define una capa de lógica de negocio que abstrae y encapsula toda la lógica de aplicación, coordinando las operaciones de los objetos del dominio.
- Referencia: Service layer pattern
-
Specification: Permite la encapsulación de la lógica de selección en objetos específicos, lo que facilita la reutilización de la lógica de consulta.
- Referencia: Specification pattern
- Clonar el repositorio
git clone https://AndresDFX/loan-services.git
cd loan-services
- Construir y levantar los contenedores con Docker
docker-compose up --build
- Ejecutar migraciones
docker-compose exec web python manage.py migrate
- Crear un superusuario (opcional)
docker-compose exec web python manage.py createsuperuser
- Acceder a la documentación de la API
Navega a http://localhost:8000/swagger/
para ver la documentación Swagger de la API.
Para ejecutar los tests, utiliza el comando:
docker-compose exec web pytest
- Gestión de Clientes: Permite el registro, actualización y consulta de clientes.
- Gestión de Préstamos: Permite la creación de préstamos asociados a clientes, así como su consulta y actualización.
- Gestión de Pagos: Permite registrar pagos realizados por los clientes, distribuyendo el monto entre los préstamos activos.