Inspiration
When did you guys find out about the previous stabbing at M-city? Or how about the increasing number of assault and burglary cases in Geelong? For myself and many others who may not be constantly on the news, it may take a week or two for us to realise the recent incidents. Some of us may even live near these areas. BSafer was innovated to address the main problem that crime information is often fragmented, delayed and rarely organised into an intuitive, live and comprehensible dashboard. We wanted to make an application which addresses the rising crime in Melbourne and allows our users to stay safer by increasing their awareness of relevant news around Melbourne, and most importantly, around them.
What it does
BSafer is a live crime-tracking web app for Melbourne. It ingests Victoria Police breaking-news data, classifies incidents into serious and minor categories, geocodes locations, and renders them on an interactive map. There is also a community side, where users can submit community crime reports, upload area photos for AI cleanliness verification, view a historical crime heatmap, and compute a safer walking route that penalises paths passing too close to flagged points. In local areas, communities can be improved by being more aware of where to avoid, whether that be an unpleasant and messy street corner or a dramatic theatre of gang violence. Our app heightens the awareness aspect by supporting geolocation-based proximity alerts when a user enters a two-kilometre risk radius for serious crimes.
How we built it
We built the frontend as a static HTML/CSS/JavaScript dashboard with Leaflet for cartography and a Python local server as the orchestration layer. The backend queries the Victoria Police Elasticsearch endpoint directly, enriches each article with address extraction and geocoding, merges official items with user reports, and exposes clean JSON APIs. For user-submitted area reports, we call Gemini 2.5 Flash for vision-based verification before allowing a report to be submitted. Historical density is generated from Crime Statistics Agency Victoria LGA data into a heatmap payload consumed by the client.
Challenges we ran into
The main difficulty was data reliability. News articles are not structured as GIS records, so address extraction, suburb disambiguation, and geocoding precision all required fallback logic. Also, there was the issue of using too many sources and getting duplicate events. Therefore, we consolidated our source scraping to one reliable source from Victoria Police. Routing was also nontrivial because we were not just finding a shortest path, but scoring alternative paths against nearby incident geometry. On the reporting side, we had to explore AI moderation to reject clean or ambiguous area photos so the map would not accumulate noisy community data (or random trolls!).
Accomplishments that we're proud of
We are proud that we managed to move BSafer beyond a static crime map into a functioning safety-intelligence pipeline. The app supports official-source ingestion, community reporting, AI verification, route-risk scoring, heatmap visualisation, and real-time proximity alerts in one coherent interface. This makes the product feel like an operational prototype, something we are very proud to achieve.
What we Learned
We learned that geospatial safety products are fundamentally data-engineering systems. The hardest parts include ranking source credibility, validating location granularity, and designing interfaces that turn noisy data into high-quality user decisions. We also learned that lightweight infrastructure can still produce a credible end-to-end service when the API surface is disciplined.
What's next for BSafer
Moving forward, we would like stronger source expansion, better trust scoring for community reports, push notifications, and route models that optimise safety with richer spatial heuristics than simple proximity penalties. Being able to package the product for mobile use will also allow us to increase adoption and potentially enable a broader rollout beyond Melbourne across Australia.
Log in or sign up for Devpost to join the conversation.