Inspiration

The inspiration for VeloGuard came when we kept hearing about friends, fellow students, and even teachers getting their bikes and scooters stolen in random places, such as at school, at the train station, or even outside their houses.

In fact, one of our bikes was stolen just a few months ago. It was an e-bike locked right outside the house, yet someone took it, and I felt helpless because there was nothing simple I could do. I didn't want to file a police report, as it felt too complicated for a replaceable bike.

According to Blue News, a record 54,308 bicycles and e-bikes were stolen in Switzerland in 2024, an increase of roughly 50% compared to 2021. The same article reports that in 2025, a bike went missing from one in every 30 households in the canton of Basel. The highest rate was in the canton of Solothurn, with about 24 thefts per 1,000 residents.

Furthermore, Switzerland's largest property and casualty insurer, AXA, paid out 21 million Swiss francs (25 million USD) for stolen bicycles in 2025, across 9,000 reported cases.

We quickly realized there was no easy solution to this problem. Since we had both built lots of websites using HTML and CSS before, we decided to use that experience to create one. Our goal was to take action and make it easier for people to quickly report thefts.

What it does

VeloGuard lets users pinpoint a theft location anywhere in Switzerland by clicking directly on a map or searching for their village name or postal code. The map colors each location based on how secure it is:

  • Green (low risk): 0 reports
  • Yellow (mildly insecure): reported 1–2 times
  • Red (high risk): reported 3 or more times

The map also displays thousands of bike racks in cities and villages, making it easier to pinpoint the exact theft location.

After selecting a location, users fill in a few simple details about the incident, including the date of the theft and the color and brand of the bike or scooter. Based on this information and the selected location, VeloGuard automatically prepares an email in Gmail addressed to the local police. The user can review the email and then send it.

How we built it

We built VeloGuard in Visual Studio Code, mainly using HTML and CSS.

We used the Live Share extension to collaborate on the code at the same time.

We used ChatGPT and Claude to help us add JavaScript to the code, which was crucial for creating the interactive map, adding thousands of bike rack locations, and letting users pinpoint the exact location of a theft. We also used them to help with complex CSS styling, including our navigation bar and various headings and subheadings.

We used Leaflet, a JavaScript mapping library, to add the interactive map to our site.

We used Supabase to store the theft reports, so the map's risk colors update automatically as new reports come in.

Challenges we ran into

We ran into several challenges while building VeloGuard.

Our biggest struggle was figuring out how to store users' data. Neither of us had any experience with databases, so we had to learn how to save reports and have the website update automatically. We watched multiple tutorials to understand the topic, and while we still aren't experts, we learned a lot throughout the project.

We also struggled to decide on the best way to create the map. We started with a simple HTML image map of a small village, based on an idea from W3Schools.

However, this caused several problems. The image only showed a small section of one village and only let users click on stores, train stations, and other places shown on Google Maps. We quickly realized it would be far too difficult and time-consuming to do this for many villages, and that it would be much easier to use Leaflet to build an interactive map instead.

Accomplishments that we're proud of

  • Built a working website to help people report stolen bikes and scooters in Switzerland
  • Created an interactive map that lets users identify the precise location of a theft
  • Created a report form that generates a pre-filled email to the local police through Gmail
  • Connected the map, reporting form, and email process into one simple workflow
  • Found a real-life problem affecting people in our community and built a working solution

What we learned

  • How to combine several different pages into one website tool
  • That JavaScript is far more practical than plain HTML for building an interactive map, after many attempts and failures
  • How to use links with pre-filled information to generate emails in Gmail
  • How to use GitHub to store and manage our code
  • How to use Cloudflare Pages to publish our website online

What's next for VeloGuard

We plan to contact the local police in each Swiss canton to make VeloGuard a real, working service. After talking to the police, we'll ask our school principal to advertise the site in the weekly newsletter. We also plan to hang VeloGuard posters in local villages such as Coppet, Commugny, and Founex, and to ask mayors of various villages to send letters to residents promoting the website.

If we're successful, we want to buy the veloguard.ch domain.

Although we focused on Switzerland for this project, bike and scooter theft is a problem everywhere, and VeloGuard could potentially help solve it around the world.

Built With

Share this project:

Updates

Submission history