Este proyecto es una aplicación tipo SaaS, desarrollado bajo la arquitectura Multitenat para permitir en una sola instancia de la aplicación servir a muchos clientes (Modelo de maduración Nivel 3 "Configurable y eficiente"). Con respecto al modelo de datos elásticos se implemento base de datos compartidas (Shared database-sharded) por medio de la libreria django-tenants-schemas que permite en una sola base de datos generar schemas y asociarlos por medio de la url a un tenant.
- Crear base de datos (revisar settings.py)
- Ejecutar el archivo requirements.txt
python manage.py makemigrations
python manage.py migrate_schemas
- ejecutar los archivos sql que están en la carpeta querys en el siguiente orden:
- 00_insertar_superusuario.sql
- 01_insertar_tenant.sql
- 02_relacionar_dominio.sql
- levantar servidor e ingresar a localhost:8000
-
Cree una cuenta en el sistema por medio de un correo y contraseña signin
-
Ingrese departamentos y ciudades; para eso dirijase a la siguiente ruta
http://localhost:8000/cities/cities/
y cargue el archivo de excel llamado colombia.xls
-
Cree una empresa, la información de la empresa es la que se utiliza para crear un tenant en el sistema
-
Ingrese a la nueva url de acuerdo al nombre comercial que haya digitado en el formulario de crear empresa, ejemplo:
http://tenant2.localhost:8000/
- Ingrese con el usuario previamente creado
- Si desea cargar información al sistema, lo puede hacer por medio de la opción carga masiva que se encuentra en cada modulo y subiendo los archivos de excel que se encuentran en este repositorio.
- Gestión de usuarios.
- Gestión de clientes.
- Gestión de vehículos.
- Gestión de conductores.
- Gestión de rutas
- Gestión de reportes
- Generar un archivo en formato JSON
- Personalización de tenant
Este proyecto hace uso de las siguientes librerias de terceros:
- Django JET: Administrador de Django
- Django Custom User: Cambia el comportamiento del usuario por defecto de Django
- Django reCaptcha v2
- Anymail: Django email backends for Mailgun
- Django-Select2 Input select2 for Django
- django-excel