Skip to content

ciudadanointeligente/lcen

Repository files navigation

La Constitución es Nuestra

Guía de instalación y desarrollo

La Constitución es Nuestra es un proyecto de Ciudadanía Inteligente, The Global Initiative y Constitu+yo.

Objetivos del proyecto

  • 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.

Componentes del proyecto

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:

Instalación

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:

  1. Obviamente Django:
pip install django
  1. mysqlclient para conectar la aplicación con la base de datos creada en MySQL o MariaDB:
pip install mysqlclient
  1. pillow da a python soporte para trabajar con imágenes:
pip install pillow
  1. python-decouple para separar en un archivo .env las contraseñas e información sensible:
pip install python-decouple
  1. django-formtools para usar formularios separados en pasos:
pip install django-formtools
  1. crispy-bootstrap5 integra los estilos de bootstrap 5 a los formularios:
pip install crispy-bootstrap5
  1. 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
  1. django-extensions instala utilidades varias que sirven para el desarrollo:
pip install django-extensions
  1. django-filter para usar algunos buscadores:
pip install django-filter
  1. django-import-export para exportar usuarios, propuestas, etc.:
pip install django-import-export

Creación de base de datos

Cree una base de datos MySQL, MariaDB o Postgresql, la que prefiera. Guarde su nombre, usuario y contraseña.

Configuración de partida

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/' ()

Repositorios FCI

Todo el código utilizado está público on GitHub.

Todo el código utilizado está público on Gitlab.

Licencia

Licencia

Paz y Software Libre!