-
-
REPORTAMELO ICON
-
Insights view
-
Timeline of the report
-
Details View
-
App Settings View.
-
Evidence that authorities must upload to the report once is finished.
-
Confirmation View.
-
Location View
-
My reports view
-
User profile view
-
Attachments View
-
Paywall made with RevenueCat
-
Login view with different options
-
Report Type Chooser
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
- amazon-dynamodb
- amazon-web-services
- amplify
- bedrock
- go
- lambdas
- nextjs
- pushnotifications
- redis
- revenuecat
- sqlite
- swift
- swiftdata
- swiftui
- webp

Log in or sign up for Devpost to join the conversation.