Popularis es un buscador de sentencias de tribunales panameños para hacerlas fácilmente accesibles a todos a través de una página web, con el objetivo de compartir conocimiento de derecho en Panamá y fomentar la rendición de cuentas de los jueces.
Estas instrucciones buscan que puedas correr el programa en tu propia computadora localmente para development y como deploy la aplicación al production environment.
Antes de empezar, debes tener esto instalado en tu computadora:
ruby 2.4.3
rails 5.2
postgresql 10.4
(1) Fork/clone este repository para poder ver el código localmente en tu computadora
(2) En la terminal:
bundle
rails db:migrate db:seed
(3) Asegurarse de tener las environment variables
(por ej, API keys) escritas en su código local adentro de popularis/.env
.
(4) Para crear el servidor local, corra rails server
en el Terminal y deberías poder ver el sitio en http://localhost:3000
en el navegador.
Esta sección busca explicar lo que sucede cada vez que alguien accede al buscador y llega a sentences#index
:
(1) Si el usuario no escribió nada, verá todas las sentencias en el orden como estan guardadas en la base de datos.
(2) Si el usuario escribió una palabra(@query
), la plataforma buscara una palabra similar a esa adentro de:
- Nombre de cada sentencia
- Tipo de cada sentencia
- Institución de cada sentencia
- Entrada de cada sentencia
- Contenido del Cuerpo
- Tipo de Cuerpo
Luego se crea un nuevo hash: {sentencia: cantidad}
-> donde sentencia
es el objeto en cuestión y la cantidad
es el número de veces que aparece @query
en las columnas establecidas en el punto 2 de cada sentencia.
Luego estas se ordenan de manera que las que tienen el número más alto van al inicio.
(3) Si @query
no existe en ningun lado, podrá ver un texto para que se trate de nuevo.
- En el Terminal:
$ rails console
Sentence.all
Feedback.all
Sentence.first.bodies.all
..cualquier método de [ActiveRecord](https://guides.rubyonrails.org/active_record_basics.html)
-
En el navegador:
De no escribir nada en la barra del buscador, podrá ver todas las sentencias en http://localhost:3000/sentences en development o http://popularis.herokuapp.com/sentences en production.
Para ver todos los feedbacks recibidos puede acceder a http://localhost:3000/jYai98Pp7 en development o http://popularis.herokuapp.com/jYai98Pp7 en production.
El servidor en producción está en Heroku actualmente bajo el sitio http://popularis.herokuapp.com
De tener algún inconveniente en producción, empiece por correr heroku logs
en el Terminal y la documentación de Heroku.
El próximo paso seguro será conseguir un SSL certificate para poder tener seguro el sitio de cualquier hacker (https). Esto se puede lograr por medio de Heroku con tal de que se este pagando al menos por el Plan Hobby. También lo ofrece GoDaddy.
He dejado instalado Devise para cuando estén listos para crear usuarios
en la plataforma.
En ese sentido, falta agregar tambien el Admin interface para poder visualizar la data y agregar Pundit para trabajar el authorization de los usuarios mientras navegan en la plataforma.
Para el manejo de las environment variables, se ha utilizado Dotenv Gem
- En development:
En popularis/.env
podrá encontrar todas las environment variables
para cualquier modificación. Este file solo existe localmente y quien quiera trabajar la plataforma deberá tener las correctas en su file local.
- En producción:
Una vez publique el sitio online, deberá escribir en el Terminal heroku config:set API_KEY=value
(reemplazando API_KEY
por el nombre del API y value
por el key secreto correspondiente) para enviar las variables al servidor.
Las environment variables
que existen actualmente en producción se pueden encontrar dentro del Heroku Dashboard > Settings > Config Vars > Reveal Config Vars
- Ruby on Rails - MVC Ruby framework
- Dotenv - Gem para guardar en secreto los env variables
- Cloudinary - Archivador de media assets
- Fullstory - Tracking
- Simple Form - Gem para agilizar creación de formularios
- FontAwesome - Símbolos en la plataforma
- Juliette Chevalier - juliettech