Una app para organizar la impresión y distribución de piezas 3D para respiradores artificiales en Cuba, como parte de la lucha contra la COVID-19.
Esta aplicación web consta de un backend
y un frontend
, comunicados por una API
en GraphQL
.
Stack frontend:
- VueJS
- NuxtJS
- Buefy
- Axios
- Apollo
- Vuelidate
- Vuex
Más detalles en package.json.
Stack backend:
- Python 3.6
- Django 3.0.4
- Graphene 2.1.8
- Djangorestframework 3.2.1
Más detalles en pyproject.toml.
Si usas yarn
:
cd frontend
yarn install
yarn dev
Si usas npm
:
cd frontend
npm install
npm run dev
El frontend
quedará expuesto en localhost:3000
.
Usamos poetry
como manejador de dependencias de Python
.
pip3 install --user poetry
cd backend
poetry install
poetry run ./dev.py createsuperuser
poetry run ./dev.py runserver
El backend
quedará expuesto en localhost:8000
.
Sugerencia: Aplica estos alias en tu .bashrc
o .zshrc
para que sea más cómodo:
alias poetry="python3 -m poetry"
alias django="poetry run ./dev.py"
alias djm="django makemigrations; django migrate;"
alias djr="django runserver"
Así, puedes usar estos comandos:
Comando | Descripción |
---|---|
poetry install | Instalar dependencias |
djr | Levantar backend |
djm | Migrar base de datos |
¿Deseas contribuir? Contáctame en Telegram.
-
Clona el repositorio.
-
Colócalo en
/root/apps/cubavscovid/codebase
en tu VPS. -
Crea un archivo
.env
en dicha locación y añade las siguientes líneas:CUBAVSCOVID__DJANGO_SECRET_KEY=unallavesecretaaleatoria CUBAVSCOVID__DJANGO_HOSTNAME=covid.copincha.org CUBAVSCOVID__DJANGO_PRODUCTION_STATIC_ROOT=/storage/frontend/static CUBAVSCOVID__DJANGO_PRODUCTION_MEDIA_ROOT=/storage/frontend/static/media
-
Crea un archivo
.env
dentro defrontend
y añade las siguientes líneas:BASE_URL=http://covid.copincha.org BACKEND_BASE_URL=http://covid.copincha.org/api/ API_BASE_URL=http://covid.copincha.org/api/
-
Levanta los servicios usando
docker-compose
:sudo docker-compose up --build
-
Entra por bash al container del backend y añade un superusuario:
sudo docker exec -it backend bash poetry run ./prod.py createsuperuser exit
-
Habilita los puertos 80 y 443 en el firewall para permitir el tráfico hacia la aplicación.
Voilà!
🦠😷🦠