{"id":20697653,"url":"https://github.com/capstone-projects-2023-spring/project-optimap","last_synced_at":"2025-08-30T22:15:48.858Z","repository":{"id":65963722,"uuid":"601293152","full_name":"Capstone-Projects-2023-Spring/project-optimap","owner":"Capstone-Projects-2023-Spring","description":"project-optimap created by GitHub Classroom","archived":false,"fork":false,"pushed_at":"2023-05-06T21:40:59.000Z","size":5403,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-22T20:51:04.497Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Capstone-Projects-2023-Spring.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-02-13T19:08:06.000Z","updated_at":"2024-10-30T03:27:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"d384fa1b-365d-42eb-a1f2-01830213c676","html_url":"https://github.com/Capstone-Projects-2023-Spring/project-optimap","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":"ApplebaumIan/tu-cis-4398-docs-template","purl":"pkg:github/Capstone-Projects-2023-Spring/project-optimap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capstone-Projects-2023-Spring%2Fproject-optimap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capstone-Projects-2023-Spring%2Fproject-optimap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capstone-Projects-2023-Spring%2Fproject-optimap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capstone-Projects-2023-Spring%2Fproject-optimap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Capstone-Projects-2023-Spring","download_url":"https://codeload.github.com/Capstone-Projects-2023-Spring/project-optimap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capstone-Projects-2023-Spring%2Fproject-optimap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272914558,"owners_count":25014443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T00:19:19.699Z","updated_at":"2025-08-30T22:15:48.833Z","avatar_url":"https://github.com/Capstone-Projects-2023-Spring.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Open in Codespaces](https://classroom.github.com/assets/launch-codespace-f4981d0f882b2a3f0472912d15f9806d57e124e0fc890972558857b51b24a6f9.svg)](https://classroom.github.com/open-in-codespaces?assignment_repo_id=10118262)\n\u003cdiv align=\"center\"\u003e\n\n# OptiMap\n[![Report Issue on Jira](https://img.shields.io/badge/Report%20Issues-Jira-0052CC?style=flat\u0026logo=jira-software)](https://temple-cis-projects-in-cs.atlassian.net/jira/software/c/projects/OM/issues)\n[![Deploy Docs](https://github.com/ApplebaumIan/tu-cis-4398-docs-template/actions/workflows/deploy.yml/badge.svg)](https://github.com/Capstone-Projects-2023-Spring/project-optimap/deployments/activity_log?environment=github-pages)\n[![Documentation Website Link](https://img.shields.io/badge/-Documentation%20Website-brightgreen)](https://capstone-projects-2023-spring.github.io/project-optimap/)\n\n\n\u003c/div\u003e\n\n\n## Website URL\n[OptiMap](https://stpaex.github.io/OptiMap/)\n\n## Keywords\n\nSection 002, React JS, FireBase, Node.js, Google Maps API, JEST Testing\n\n## Project Abstract\n\nOptiMap is a React JS progressive web application that ensures users get the most efficient route to any list of locations they enter. This is determined by a few factors, such as location, arrival time and time spent at each location, and time or distance between locations. An example user may need to plug in 10 or more locations that they need to visit, as well as the amount of time they expect to spend at each location. Additionally, they may add a time they need to be all done by. Our application gives them the most efficient path between locations, and allows them to properly plan their day of driving.\n\n## High Level Requirement\n\nThis application can be used by a plethora of users. A typical user will log in and plug \nin as many locations as they want into the app after creating an account. By default, the entire \ntrip is reordered in the most efficient manner in terms of time and distance from one \nlocation to the next. Users can further customize their trip by specifying the amount of time they \nexpect to spend at each location or arrival time (or both). Our app is able to update the routes based on factors via Google Maps API such as traffic times, create the most efficient route, and give them an overview of their trip in general. One of the main features is redirecting users to Google Maps for the navigation itself. For example, a user may decide to use our app’s default feature of optimizing trip by time and distance on X locations. They will first enter X locations, followed by clicking start. This will redirect them to Google Maps with our optimized directions, turn by turn. The user will follow these directions and can return to the app to re-optimize a route if needed. The stored route within our app can also be shared via the OptiMap friend system backed by Firebase. You can friend other users and share saved routes with them to plan a trip with one another.\n\n## Conceptual Design\n\nThis application is written in React JS as a progressive web app. This allows the app to be accesible on any platform. The backend for user authentication and storage uses Google Firebase. This is a free application where login and new account processes can be done using their services, as well as storage of individual records or previous routes that the user has gone through. \n\n## Background\n\nTo be fully transparent, there are many apps out there that are for mapping routes, going \nfrom point A to point B, and overall figuring out the most efficient route for something like \ndelivery. For example, the Doordash app will give you the routes from your location to the \ndelivery location, even if you have many places to deliver to in a row. However, our app will \noffer a unique experience because you can now determine more specific details such as the \namount of time you plan to spend on each location, and get the most efficient route between, say, \n10 or more locations. We have not been able to find any mapping apps that offer what we are \nplanning on offering, including the social media aspect and sharing routes. Furthermore, someone as big as Google maps only offers around 10 or so maximum destinations. We would like to offer more than this in an efficient manner and allow the user to plan their day so they can understand where they are headed at all moments and what time their day is expected to be “over”.\n\n## Required Resources\n\nThe required resources for this project are all software related, and it will mainly rely on \nReact JS to create the app itself. Then, for the database and user authentication, Google \nFirebase can allow users to sign in and store any information about their previous routes. Finally, the Google Maps API is used to get direction and traffic / time information between locations.\n\n## Extra Challenge Requirement\n\nTo achieve the most efficient route, the app will take into account traffic, road closure, and \nwrong turns and reroute promptly.\n\n## Collaborators\n\n[//]: # ( readme: collaborators -start )\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/benjaminrittenhouse\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/67079818?v=4\" width=\"100;\" alt=\"BenjaminRittenhouse\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eBenjamin Rittenhouse\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/rickwu135\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/67079818?v=4\" width=\"100;\" alt=\"RickyWu\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eRicky Wu\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/stpaeX\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/97627069?v=4\" width=\"100;\" alt=\"StevenLin\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eSteven Lin\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/AlexHarvey63\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/89492718?v=4\" width=\"100;\" alt=\"AlexHarvey\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eAlex Harvey\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/PandaSwaqq\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/33043105?v=4\" width=\"100;\" alt=\"StevenLin\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eSteven Lin\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/DatNguyen0512\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/97911087?v=4\" width=\"100;\" alt=\"DatNguyen\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eDat Nguyen\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/Endri2001\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/57300637?v=4\" width=\"100;\" alt=\"EndriPellumbi\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eEndri Pellumbi\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/kvphan7\"\u003e\n            \u003cimg src=\"https://avatars.githubusercontent.com/u/89526986?v=4\" width=\"100;\" alt=\"KennyPhan\"/\u003e\n            \u003cbr /\u003e\n            \u003csub\u003e\u003cb\u003eKenny Phan\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n[//]: # ( readme: collaborators -end )","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcapstone-projects-2023-spring%2Fproject-optimap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcapstone-projects-2023-spring%2Fproject-optimap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcapstone-projects-2023-spring%2Fproject-optimap/lists"}