Aplicacion web con el objetivo de facilitar las labores realizadas por contadores auditores
Estas instrucciones te permitirán obtener una copia del proyecto en funcionamiento en tu máquina local para propósitos de desarrollo y pruebas.
- Docker 19.03^
- Docker Compose 1.25^
https://github.com/raebeb/bastet-accounting-django.git
ó
git@github.com:raebeb/bastet-accounting-django.git
docker-compose up
Si es primera vez que se levanta el proyecto, este se buildeara e instalara todas las dependencias necesarias
Si en la terminal aparece un mensaje como el siguiente, el proyecto se ha levantado con éxito
Container bastet-accounting-django-db-1 Running
Container bastet-accounting-django-web-1 Created
Attaching to bastet-accounting-django-web-1
bastet-accounting-django-web-1 | Watching for file changes with StatReloader
bastet-accounting-django-web-1 | Performing system checks...
bastet-accounting-django-web-1 |
bastet-accounting-django-web-1 | System check identified no issues (0 silenced).
bastet-accounting-django-web-1 | February 10, 2023 - 19:05:29
bastet-accounting-django-web-1 | Django version 4.1.4, using settings 'bastet.settings'
bastet-accounting-django-web-1 | Starting development server at http://0.0.0.0:8000/
bastet-accounting-django-web-1 | Quit the server with CONTROL-C.
La primera vez que se levanta el proyecto es posible que falle, ya que se levanta web antes que db, si esto ocurre es necesario detener el contenedor con
Ctrl + C
y volver a levantarlo condocker-compose up
Antes de hacer cualquier cambio en la base de datos es necesario correr la migraciones con este comando
python manage.py migrate
Cada vez que se haga algun cambio en los modelos es necesario ejecutar
python manage.py makemigrations
y luego el comando de arriba
Una vez ejecutadas las migraciones es necesario generar la data inicial para la base de datos, para eso es necesario ejecutar el siguiente comando
python manage.py seed
a este comando se le pueden agregar las siguientes flags: --mode=initial (genera datos iniciales) --mode=refresh (eliminara los datos existentes y generara nueva data en todos los modelos) --mode=clear (elimina la data existente y no genera nueva data)
En caso de que surja algun problema a base de datos es necesario eliminarla por completo SOLO EN AMBIENTE DE DEVELOPMENT
Esto se logra mediante el siguiente comando:
python manage.py reset_db
Luego de ejecutarlo nos pedira una confirmacion, una vez reseteada la base de datos es necesario volver a correr migraciones y ejecutar el seed
Si existiera algun problema con el comando anterior se recomienda ejecuar lo siguiente
docker-compose stop db
docker-compose start db
El proyecto cuenta con una serie de tests, para ejecutarlos el primer paso es tener contenedor levantado, luego seguir con los siguientes pasos
- Ejecutar el siguiente comando en una terminal diferente:
docker-compose exec web sh -c "python manage.py test"
En este paso se llevara a cabo la ejecución de los test unitarios desarrollados, al finalizar se visualizara un mensaje como el siguiente, indicando que todas las pruebas se ejecutaron con éxito
Ran 14 tests in 518.023s
OK
Destroying test database for alias 'default'...
- Para verificar la covertura de codigo testeado es necesario seguir los siguientes pasos
2.1 Ejecutar el siguiente comando
docker-compose exec web sh -c "coverage run manage.py test"
Este comando ejecutara los test y actualizara el conocimiento de ellos a la libreria coverage
2.2 Luego, ejecutar el siguiente comando
docker-compose exec web sh -c "coverage report -m"
Este comando mostrara un mensaje como el siguiente (siempre y cuando no existan problemas con los tests)
Name Stmts Miss Cover Missing
-------------------------------------------------------
my_program.py 20 4 80% 33-35, 39
my_other_module.py 56 6 89% 17-23
-------------------------------------------------------
TOTAL 76 10 87%
Tambien es posible ver la covertura de los test en una pagina web estatica, para esto debemos ejecutar el punto 2.1 y luego el siguiente comando
docker-compose exec web sh -c "coverage html"
Este comando creara en nuestro proyecto un directorio llamado coverage_html_reports
dentro de esta estara el archivo index.html el cual podremos ver en cualquier navegador
- Python 3.11 - Lenguaje de programación
- Django 4.1 - Framework web utilizado
- PostgreSQL 14.4 - Gestor de base de datos
- Docker - Gestor de contenedores
- Francisca Osores - Trabajo inicial
- Larva
⌨️ con ❤️ por Francisca Osores & Larva👩💻
/> フ
| _ _|
/` ミ_xノ
/ |
/ ヽ ノ
│ | | |
/ ̄| | | |
( ̄ヽ__ ヽ_)__)
\二)