Inspiration
Crime-related information in Indonesia is often scattered across different news portals and social media platforms, making it difficult for people to understand the actual safety conditions around them. We wanted to transform fragmented crime reports into actionable insights through an interactive safety map that helps communities stay informed and aware of their surroundings.
What it does
CrimeAlert aggregates crime-related news from major Indonesian media outlets such as Sindonews, CNN Indonesia, and Detik through an automated scraping pipeline. The collected incidents are displayed on an interactive map using clustering and heatmap visualization, allowing users to quickly identify crime hotspots.
In addition, users can:
- Submit community crime reports with location, photos, categories, and severity levels.
- Participate in discussions through comments and community interactions.
- Access an SOS feature with emergency contact information.
- View crime statistics and trends through a dashboard.
- Browse a centralized news feed containing verified crime-related articles.
The platform combines official news sources with community-driven reporting to create a more comprehensive picture of public safety.
How we built it
Frontend
- React 19 SPA powered by Vite
- Tailwind CSS 4 for styling
- Leaflet for interactive maps, clustering, and heatmaps
- Supabase integration for data retrieval and authentication
Backend
- Laravel 13 REST API
- Custom SupabaseService for database interaction
- Controllers for crimes, reports, comments, images, and statistics
- JWT authentication middleware integrated with Supabase Auth
Scraper Service
- FastAPI-based Python microservice
- Automated scraping from Sindonews, CNN Indonesia, and Detik
- Data normalization before insertion into Supabase
Database
- Supabase PostgreSQL
Main tables:
- crime_articles
- community_reports
- report_comments
- report_votes
Infrastructure
- Dockerized development environment using Laravel Sail
- Redis and Meilisearch support
- Vite proxy integration for local scraper communication
Challenges we ran into
One of our biggest challenges was building a reliable scraping pipeline, as most of our team had limited experience with web scraping. Different news websites have unique structures, making data extraction and standardization more difficult than expected.
Another challenge was maintaining focus throughout development. We generated many feature ideas during brainstorming, and it was sometimes difficult to decide which features were essential for the MVP. Balancing ambition with execution became an important part of the project.
We also faced challenges in validating community-generated reports while ensuring the platform remained accessible and easy to use.
Accomplishments that we're proud of
- Successfully built an automated scraper that collects and processes crime-related news from multiple Indonesian media sources.
- Developed a complete end-to-end platform integrating news aggregation, community reporting, mapping, and analytics.
- Implemented interactive heatmaps and clustering to make crime data easier to understand.
- Created a scalable architecture using React, Laravel, Supabase, and FastAPI services.
- Delivered a functional MVP with all core features working together seamlessly.
What we learned
Through building CrimeAlert, we gained hands-on experience with:
- Web scraping and data extraction techniques.
- Designing scalable full-stack architectures using microservices.
- Integrating Supabase authentication and database services.
- Working with geospatial data and map visualizations.
- Building verification workflows for user-generated content.
- Prioritizing features and managing project scope under hackathon time constraints.
Most importantly, we learned how technology can help transform raw information into meaningful insights that support community safety and awareness.
What's next for CrimeAlert
Our vision is to evolve CrimeAlert from a crime information platform into a comprehensive public safety ecosystem.
Future plans include:
- AI-powered classification and categorization of crime reports.
- Automatic geolocation extraction from news articles.
- Crime prediction and risk analysis using historical data.
- Real-time notifications for incidents occurring near a user's location.
- Partnerships with local authorities and public safety organizations.
- Enhanced verification systems to reduce misinformation and improve report credibility.
- Expanded coverage across more regions and news sources throughout Indonesia.
Ultimately, we want CrimeAlert to become the go-to platform for understanding, monitoring, and improving community safety across Indonesia.
Log in or sign up for Devpost to join the conversation.