Photo by Koshu Kunii on Unsplash
Una organización civil requiere de una aplicación web mediante la cual se puedan registrar y consultar denuncias ciudadanas
La aplicación web deberá complir con las siguientes funciones:
- Permite a cualquier ciudadano registrarse proporcionando la siguiente información:
Usuario
. Campo alfanumérico que permite identificar de manera única a cada persona registrada.E-mail
. Correo electrónico que sirve de contacto con el usuario.Clave
. Campo alfanumérico para la clave de acceso del usuario.
BONUS POINTS el e-mail
debe ser verificado por algún mecanismo, por ejemplo, enviando algún código de confirmación al correo
- Permite a los usuarios registrados y al administrador iniciar sesión. Para iniciar sesión deberán capturar su
e-mail
yclave
Inicio
. Muestra un listado de las denuncias presentadas en loslugares de interés
que el usuario tiene registrados, ordenado cronológicamente de la más reciente a la más antigua.Configuración
. Esta opción o pantalla permite al usuario:- cambiar su nombre de usuario.
- cambiar su correo electrónico.
- cambiar su clave de acceso.
- agregar
lugares de interés
. Los lugares de interés se componen por los camposcódigo postal
yasentamiento
. Mis denuncias
. Esta opción muestra un listado de las denuncias que se han presentado ordenadas cronológicamente de la más reciente a la más antigua.Agregar denuncia
. Esta opción permite agregar una nueva denuncia.
El listado de la pantalla de inicio, muestra las denuncias presentadas en los lugares de interés aue el usuario tiene registrados, ordenado cronológicamente de la más reciente a la más antigua. La información que el usuario puede ver es:
- Usuario que hizo la denuncia
- Area
- Título
- Descripción
- Evidencia(s)
- Botón que permite otros usuarios manifestar su apoyo a esa denuncia (like)
Permite agregar una nueva denuncia. Para agregar una denuncia el usuario deberá registrarse la siguiente información:
usuario
[requerido] El usuario que realiza la denuncia, debe existir la opción de hacer denuncias de manera anónimafecha de registro
fecha en que se registra o publica la denunciafecha de hechos
fecha en la que ocurrieron los hechos o denunciaárea
[requerido] El área de la denuncia, por ejemplo, seguridad, servicios, infraestructura, etc. Se toman de un catálogo definido en la base de datostitulo
[requerido] [Un título que identifica a la denunciadescripción
[requerido] Descripción de los hechos o denunciaubicación
[requerido] Dirección de los hechos o denuncia. Esta integrado por lo siguientes campos:Estado
[requerido]Municipio
[requerido]Código postal
[requerido]Asentamiento
[requerido]Calle
[no requerido]Número
[no requerido]- La información se toma de un catálogo almacenado en la base de datos el cual puede llenarse con información obtenida de esta página
evidancia
Inageb que se agrega como evidencia. BONUS POINTS Permite agregar más de una imagen o documento PDF.
Permite ver un listado de las denuncias que el usuario ha registrado presentado ordenadas cronológicamente de la más reciente a la más antigua y le permite modificar o eliminar denuncias.
- Calidad
- Utilizar estilo de código definido por la comunidad (apoyarse en Rubocop)
- Pruebas unitarias
- Puntuación en Rubycritic: por lo menos 90 en la carpeta de la App y por lo menos 65 en la carpeta de pruebas
- Utilizar SandiMeter para analizar el código y utilizar el resultado para hacer mejoras
- Presentación correcta en las versiones más recientes de los principales navegadores: Edge, Chrome, Safari y Firefox
- Deployment
- Configuración de un servidor web (heroku o similar) para el deployment automático de actualizaciones de la app
- Configuración de un servidor de integración continua como Travis CI o Circle CI
- Frontend
- CSS: libertad para utilizar cuaquier framework o librería, preferentemente SASS
- Por ejemplo puedes utilizar Bootsrap junto con bootstrap_form para tus formularios
- CSS: libertad para utilizar cuaquier framework o librería, preferentemente SASS
- Ruby on Rails en el backend
- PostgreSQL como base de datos principal
- CSS: libertad para utilizar cuaquier framework o librería, preferentemente SASS
- Por ejemplo puedes utilizar Bootsrap y junto con bootstrap_form para tus formularios
- Javascript: libertad para utilizar cualquier framework o librería, preferentemente sin jQuery
- Framework para pruebas Rspec ó Minitest
- Código fuente en Github
- Debe incluir README con información sobre como configurar el proyecto
- Los commits de Git deben ser significativos
- Demo de la App correndo en heroku o similar
- Libertad para utilizar cualquier diseño, imágenes, etc, que considere necesarios y apropiados
En este elnace se describen los pasos necesarios para ejecutar/probar este proyecto, así como los integrantes de este equipo