La Constitución es Nuestra es un proyecto de Ciudadanía Inteligente, The Global Initiative y Constitu+yo.
- Ser una plataforma para la creación de propuestas para la nueva constitución
- Entregar información sobre l*s integrantes de la Convención Constituyente
- Difundir información sobre el proceso constituyente
El objetivo de esta guía es documentar los pasos necesarios para la instalación y la modificación del código del proyecto para otras necesidades.
LCeN es la suma de varios componentes principales:
- Django - El framework de aplicaciones web
- Python - Lenguaje de programación que utiliza Django
- MySQL-MariaDB - Base de datos -se puede utilizar otra!-
- NGINX - Servidor web utilizado -se puede reemplazar por otro!-
- uwsgi - Software que permite la comunicación entre la aplicación y el servidor web
La instalación de Python, MySQL, nginx y wsgi en un servidor para hacer correr el proyecto no se cubre en esta guía, sin embargo acá hay una lista de tutoriales muy buenos que pueden servir:
Clone el proyecto desde la última versión de desarrollo en Github. Esta está en este repositorio. Existen dos ramas principales, dev y master, para desarrollo y producción respectivamente.
git clone https://github.com/pedregalux/lcen
Le recomendamos usar virtualenv, un paquete de python para crear un entorno virtual de desarrollo local para este proyecto, así no afectará otras instalaciones de python y django que pueda tener en su servidor o máquina local. Si ya tiene instalados python3 y viartualenv, el comando para crear el ambiente de trabajo debería ser:
python3 -m venv /ruta/entorno/virtual
Luego se activa con:
source bin/activate
Aplicaciones de django requeridas:
- Obviamente Django:
pip install django
- mysqlclient para conectar la aplicación con la base de datos creada en MySQL o MariaDB:
pip install mysqlclient
- pillow da a python soporte para trabajar con imágenes:
pip install pillow
- python-decouple para separar en un archivo .env las contraseñas e información sensible:
pip install python-decouple
- django-formtools para usar formularios separados en pasos:
pip install django-formtools
- crispy-bootstrap5 integra los estilos de bootstrap 5 a los formularios:
pip install crispy-bootstrap5
- django-allauth es la aplicación para que usuarios de google y facebook -u otras- puedan usar sus credenciales en la plataforma:
pip install django-allauth
- django-extensions instala utilidades varias que sirven para el desarrollo:
pip install django-extensions
- django-filter para usar algunos buscadores:
pip install django-filter
- django-import-export para exportar usuarios, propuestas, etc.:
pip install django-import-export
Cree una base de datos MySQL, MariaDB o Postgresql, la que prefiera. Guarde su nombre, usuario y contraseña.
Para mantener ordenado el proyecto, las contraseñas se guardan en un archivo .env local que es independiente del código, para eso debe crear un archivo .env en la raíz del proyecto, la carpeta lcen.
En ese archivo debe incluir la siguiente información:
SECRET_KEY=xxxxxxx (cualquier contraseña que quiera, bien larga)
DEBUG=True (en producción se debe cambiar a False)
ALLOWED_HOSTS= ()
DB_NAME=
DB_USER=
DB_PASSWORD=
DB_HOST=localhost ()
STATIC_URL='/static/' ()
STATIC_ROOT=
STATICFILES_DIRS=
MEDIA_ROOT=
MEDIA_URL='/media/' ()
Todo el código utilizado está público on GitHub.
Todo el código utilizado está público on Gitlab.
Paz y Software Libre!