English Version

Inspiration

It stems from the need to track issues reported to local authorities. Often, problems like potholes or broken streetlights are reported, but there is no prompt response or confirmation of the repairs to ensure transparency. Furthermore, there are cases where a pothole is fixed only to reappear shortly after because poor-quality materials were used.

What it does

It logs civic reports, which are initially verified in the backend to filter out unsafe images and comply with Apple's strict App Review Guidelines.

How we built it

We used various technologies to build the app. We utilized SwiftUI for the native interface and SQLite for the local database, which contains all the cities in El Salvador and their administrative divisions to accurately route each report to the correct authority. On the backend, we implemented Lambda functions written in Go to process requests; one of these Lambdas is dedicated exclusively to validating report content to block harmful material (NSFW).

Challenges we ran into

We faced challenges where entered city names didn't match the official registry names. We had to implement workarounds in our grouping logic to overcome these discrepancies and ensure accurate assignment.

Accomplishments that we're proud of

Getting approved by the App Store. Since the app features social networking elements, it required strict content and message moderation. We managed to strike a balance that allows freedom of expression without offending others, providing a safe space for citizens to comment on reports and express their frustration about community issues.

What we learned

We learned how to integrate subscriptions and native payment methods using RevenueCat, as well as how to configure Google AdMob for ad-based monetization.

What's next for Repórtamelo

Expanding our services to other countries, which will require indexing new cities and their administrative details so that reports can be properly processed and routed internationally.

Versión en Español

Inspiration

Surge de la necesidad de darle seguimiento a los problemas reportados a las autoridades. En múltiples ocasiones, se reportan baches o lámparas quemadas y no hay una pronta respuesta, ni confirmación de los cambios para ofrecer transparencia. Además, se han presentado casos en los que reparan un bache y este vuelve a aparecer al poco tiempo porque usaron materiales de mala calidad.

What it does

Registra reportes ciudadanos, los cuales son verificados inicialmente en el backend para filtrar imágenes con contenido no seguro y cumplir con las estrictas normas de Apple.

How we built it

Utilizamos diferentes tecnologías para construir la app. Para la interfaz nativa empleamos SwiftUI, y como base de datos local usamos SQLite, la cual contiene todas las ciudades de El Salvador y sus divisiones administrativas para clasificar correctamente a qué entidad le corresponde cada reporte. En el backend, implementamos funciones Lambda escritas en Go para procesar las peticiones; una de estas Lambdas está dedicada exclusivamente a la validación del contenido del reporte para bloquear material dañino (NSFW).

Challenges we ran into

Nos enfrentamos a problemas porque algunos nombres de ciudades ingresados no coincidían con los nombres oficiales de los registros. Tuvimos que implementar soluciones alternativas (workarounds) en la lógica de agrupación para superar estas discrepancias y asegurar una asignación precisa.

Accomplishments that we're proud of

Lograr la aprobación de la App Store, dado que la aplicación incluye funciones sociales que requieren moderación de contenido y mensajes. Conseguimos establecer un balance que permite la libertad de expresión sin ofender a los demás, brindando un espacio seguro para que los ciudadanos comenten y expresen su frustración sobre los problemas de su comunidad.

What we learned

Aprendimos a integrar suscripciones y métodos de pago nativos utilizando RevenueCat, así como a configurar Google AdMob para la monetización mediante anuncios.

What's next for Repórtamelo

Expandir el servicio a otros países, lo cual requerirá el indexado de nuevas ciudades y sus detalles administrativos para que los reportes se puedan procesar y asignar correctamente a nivel internacional.

Built With

Share this project:

Updates

Submission history