La Constitución es Nuestra nació como una iniciativa de Ciudadanía Inteligente, CONSTITU+YO y la iniciativa Global por los Derechos Económicos, Sociales y Culturales (GI-ESCR) con la convicción de que el proceso constituyente le pertenece a la ciudadanía.
Este proyecto acompañó las etapas de ensayos constitucionales que vivió la sociedad chilena a partir del estallido social.
Liderado por Ciudadanía Inteligente, la iniciativa Global por los Derechos Económicos, Sociales y Culturales (GI-ESCR), Avina y Amnistía Internacional– invitó a organizaciones y personas a participar haciendo propuestas, evaluando medidas y comentando los posibles contenidos de la eventual nueva constitución.
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
Las ramas son desarrollo y master. Además hay dos ramas para tener ordenados los cambios del proyecto en el tiempo: preplebiscito y postplebiscito. Si se necesita un modelo de app para crear propuestas y compromisos, se debe usar preplebiscito.
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.
Paz y Software Libre!