Un proyecto hecho con Django para la gestión de hackackatones.
Después de clonar el repositorio, sigue estos pasos para iniciar el desarrollo:
- Definir variables de entorno.
Renombraplantilla.enva.envy fija los valores de las variables. - Crear el entorno virtual de Python e instalar las dependencias (
requirements.txt). - Crear la base de datos con las migraciones existentes:
python manage.py migrate - Cargar la tabla de restricciones alimentarias:
python manage.py loadddata restriccion_alimentaria - Crea un superusuario:
python manage.py createsuperuser(puedes dejar el correo en blanco) - Crea los grupos base y asigna los permisos:
python manage.py crear_permisos_grupos - (Opcional) Generar Participantes de ejemplo:
python manage.py fakeuserdata <cantidad> - Iniciar el desarrollo
Si no tienes experiencia con Django tienes info de cómo iniciar el servidor de desarrollo aquí y sobre Django en general aquí.
Desplegado sobre Debian 13:
- Usar usuario
debian. - Definir variables de entorno.
Renombraplantilla.enva.envy fija los valores de las variables. - Instalar las dependencias (
requirements.txt). - Crear la base de datos con las migraciones existentes:
python manage.py migrate - Cargar la tabla de restricciones alimentarias:
python manage.py loadddata restriccion_alimentaria - Crea un superusuario:
python manage.py createsuperuser(puedes dejar el correo en blanco) - Crea los grupos base y asigna los permisos:
python manage.py crear_permisos_grupos - Configurar nginx:
sudo cp ./doc/nginx-default /etc/nginx/sites-available/default - Lanzar gunicorn con la configuración especificada:
gunicorn
Para el despliegue automático después de un reinicio del servidor está disponible
el crontab en el archivo doc/crontab.
También se incluye el archivo doc/backup.sh, que crea una copia de la base de datos.
Como la base de datos está en modo WAL,
en el crontab se fuerza un checkpoint antes de las copias de seguridad.
Tanto para el crontab como para backup.sh será necesario definir o reemplazar
$ruta con la ruta al directorio donde se clonó el repositorio.
Los distintos estados en los que una persona puede encontrarse son:
- Registrada
La persona ha cubierto el formulario de registro. - (Opcionalmente) Con error en el envío del correo de verificación
Ha habido un problema al enviar el correo y se requiere intervención manual. - Verificada
La persona tiene el correo verificado. - Aceptada
A la persona se le ha aceptado en el evento. - Confirmada
La persona ha aceptado la plaza que se le ofreció. - (Opcionalmente) Rechazada
La persona ha rechazado la plaza que se le ofreció.
Los estados están detallados en el orden habitual en el que ocurren.
Una persona puede rechazar su plaza después de haberla aceptado,
pero no la puede aceptar (sin intervención manual de administración)
después de haberla rechazado.
Aún está en proceso, pero hay alguna información disponible en los archivos .md de la carpeta doc.
El proyecto está bajo la licencia AGPLv3, para más info ver la licencia.