SafeCycle—a tool that keeps cyclists safe. Gone are days of weaving through busy city streets, SafeCycle finds all the bike routes for you to ensure a smooth ride wherever you want to go.

Overview

Inspiration

Biking—an everyday form of travel for students and professionals across the globe. On-campus, back home, and with the people that we know the most, we see bike accidents occur all too often. We wanted to create a navigation app that's different from traditional services, one that prioritizes safety over all other aspects.

What it does

SafeCycle uses open-source mapping data to determine the safest and most optimal route from one place to another. It finds all the possible routes in the area and chooses based on road type, distance, and designated biking paths. Users can select custom start and end locations, or have the app automatically map the best route from their current location.

How we built it

Backend

To fetch the map, we used OpenStreetMap and created queries to get all accessible roads within a user-specified area. We parsed this mapping data into a graph data structure of connected nodes, and wrote a comprehensive pathfinding algorithm to determine the best route.

Frontend

We built an intuitive user interface using React Native various UI and functional libraries. We created a homepage to receive user input, which routes to a map page that gets the path from the backend and plots it.

Challenges we ran into

  • Determining which types of roads are safer than others. Using the OpenStreetMap documentation, we designed two queries that separated safe roads from less safe roads.
  • Parsing the GeoJSON data fetched from OpenStreetMap. We wrote an algorithm that organizes the data into an intuitive and easily extensible format.
  • Calculating bounds and distance with geographic coordinates. We installed a few libraries and wrote an algorithm that combines the functions of these libraries.

Accomplishments that we're proud of

  • Used a weighted graph data structure and a modified Dijkstra's algorithm to perform the route-finding logic.
  • Balanced the priority of each road segment based on its calculated safety weight.
  • Implemented a live location-tracking feature that updates the user's current location on the map.

What we learned

  • Using React Native to develop cross-platform mobile apps.
  • Learning about geolocation and mapping libraries.
  • Applying data structures and pathfinding algorithms to a real-world dataset.

What's next for SafeCycle

We want to expand the coverage and efficiency of SafeCycle by optimizing the backend and adding additional safety criteria.

You might also like...

Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

Jan 3, 2023

Foot Locker is an online store specialized in selling shoes of all kinds, where you can find all the shoes you want

Foot Locker is an online store specialized in selling shoes of all kinds, where you can find all the shoes you want

Foot Locker Links 🖇 Heroku link Adobe XD link Description Foot Locker is an online store specialized in selling shoes of all kinds, where you can fin

Apr 16, 2022

NAZAR TOOL ON UPDATEING WAIT SOME DAYS

NAZAR TOOL ON UPDATEING WAIT SOME DAYS

ABOUT TOOL : NAZARi is an information collection tool (OSINT) which aims to carry out Basic Information. It provides various modules that allow effici

Jun 29, 2022

100 days of code tracker tool.

100 days of code tracker tool 100 days of code tracker tool. Installation and use Clone/download the repository. Enter the 100-days-of-code-tracker-to

Mar 23, 2022

🧩 TypeScript utility type in order to ensure to return only properties (not methods) containing values in primitive types such as number or boolean (not Value Objects)

🧩 TypeScript utility type in order to ensure to return only properties (not methods) containing values in primitive types such as number or boolean (not Value Objects)

🧩 TypeScript Primitives type TypeScript utility type in order to ensure to return only properties (not methods) containing values in primitive types

Dec 7, 2022

Proof of concept: support immutable trpc servers using lambdas to ensure client/server compatibility

auto-versioned-trpc-aws-lambda Proof of concept to support an automatically versioned AWS Lambda running tRPC to ensure a somewhat graceful and automa

Aug 30, 2022

We are creating a Library that would ensure developers do not reinvent the wheel anymore as far as Authentication is concerned. Developers can easily register and download authentication codes that suits their need at any point.

We are creating a Library that would ensure developers do not reinvent the wheel anymore as far as Authentication is concerned. Developers can easily register and download authentication codes that suits their need at any point.

#AuthWiki Resource Product Documentation Figma Database Schema First Presentation Live Link API Documentation Individual Contributions User Activity U

Dec 2, 2022

Shield is a development framework for circom developers. The core reason is to provide libraries, plugins, and testing tools to ensure code quality and security.

Shield is a development framework for circom developers. The core reason is to provide libraries, plugins, and testing tools to ensure code quality and security.

SHIELD Shield is a development framework for circom developers but we plan it to other languages such as CAIRO, SNARKYJS etc. The core reason is to pr

Dec 22, 2022

🏗️ Figma Plugin for speeding up and ensure consistency in the structure of your Figma projects

🏗️ Figma Plugin for speeding up and ensure consistency in the structure of your Figma projects

🏗️ Codely Structurer Figma Plugin Figma Plugin for speeding up and ensure consistency in the structure of your Figma projects Stars are welcome 😊 👤

Dec 14, 2022
Owner
Ryan Hu
CS @ Cal Poly SLO
Ryan Hu
Framework agnostic CLI tool for routes parsing and generation of a type-safe helper for safe route usage. 🗺️ Remix driver included. 🤟

About routes-gen is a framework agnostic CLI tool for routes parsing and generation of a type-safe helper for safe route usage. Think of it as Prisma,

Stratulat Alexandru 192 Jan 2, 2023
100 Days of Code is a self improvement tool, where you make a commitment to solve 1 coding problem everyday for the next 100 days.

100 Days of Code is a self-improvement tool, where you make a commitment to solve 1 coding problem everyday for the next 100 days. This repository includes a range of tasks, lessons, resources, and challenges on various programming languages to help improve programming skills.

Tarleton Computer Society 7 Dec 14, 2022
The idea is build an app that make me consult uber ride prices through my mi band or a smart watch.

CanIGetHome? - Get uber prices The main idea is the possibility to me to get the estimate uber rides prices through my mi band 6. Get my current local

Emerson 174 Nov 23, 2022
Monorepo project that shows the current weather data and weather forecast for next 7 days. Created from scratch to participate in a 14-days hackathon.

Climatic Monorepo project that shows the current weather data and weather forecast for next 7 days. Created from scratch to participate in a 14-days h

Luis Marsiglia 6 Jun 23, 2022
Grayce Muthui 8 Jun 16, 2022
This package enables you to define your routes using the flat-routes convention.

Remix Flat Routes This package enables you to define your routes using the flat-routes convention. This is based on the gist by Ryan Florence ?? Insta

Kiliman 180 Jan 3, 2023
Reddit Wherever Chrome Extension

Reddit Wherever Reddit Wherever adds Reddit comments to Youtube Videos and also allows you to view Reddit comments of any webpage. By default YouTube

null 1 Jan 3, 2022
🚀 A Node.js server that automaticaly finds and checks proxies for you.

Proxi A Node.js app that automaticaly finds and checks proxies for you and shows them on a dashboard. Install & Setup ## Download git clone https://gi

Jareer Abdullah 8 Jul 7, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022