Coder Social home page Coder Social logo

drklee3 / youtinerary Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 2.0 1.69 MB

Plan and schedule trips with an visual overview. Project for CSCI 187: Design and Management of Software at SCU (Santa Clara University).

Home Page: https://youtinerary.dlee.dev/

License: MIT License

TypeScript 90.01% JavaScript 5.68% CSS 3.72% Dockerfile 0.59%
typescript react gatsby koa

youtinerary's Introduction

YOUtinerary

Website API Node CI Netlify Status codecov Language grade: JavaScript

Web application that provides easy scheduling and visual overviews of trips. Project for CSCI 187: Design and Management of Software at SCU. YOUtinerary is available at YOUtinerary.dlee.dev.

Development

To get started developing on or to run a local instance of YOUtinerary, follow the wiki pages below.

Learn More

To learn more about YOUtinerary, the following wiki pages provide high level descriptions and motivations for the technology stack and information about other technology used.

License

MIT.

youtinerary's People

Contributors

drklee3 avatar dependabot-preview[bot] avatar pbebla avatar za-wong avatar eccx400 avatar

Stargazers

Junha Park avatar  avatar  avatar  avatar

Watchers

James Cloos avatar  avatar  avatar  avatar

Forkers

pbebla slaterong

youtinerary's Issues

Google Maps location bias should use client location

Expected Behavior

Location bias is where user is located, results are biased to current location. Could just hardcode this to be at scu who cares

Current Behavior

Location bias is where api server is located, searching stuff gives results in other locations

Map bounds should be consistent and updated.

Expected Behavior

Map bounds and centre are correct.

Current Behavior

minor issue is the bounds load differently when you go to menu and come back vs refresh. refresh displays it right but it's small

Also, map centering is inconsistent, sometimes is set to SCU with other locations out of bound.

Default event time should be adjusted & rounded to 15 min

Expected Behavior

New events are rounded to the closest 15 min.

Also still needs decision on what the default time should be. Current time doesn't really seem like a good default, so maybe the time right after the previous event? Additionally, the first event created should have a sensible default, maybe some time in the morning around 10AM.

Current Behavior

Currently time selections for minutes are set to every 15 min (0, 15, 30, 45), but new events use the current time.

Use user's actual location for locationBias

Expected Behavior

Builds off #123, uses Geolocation API to get user's actual location for locationBias. Or, uses Mozilla Location Services API via api request on client side (though this isn't recommended).

Using Geolocation API, however, requires explicit permission from clients to use their location which many times is denied.

Current Behavior

Hardcoded to SCU coordinates.

Event times should be changed based on order

Expected Behavior

Event times adjust when drag and dropped. e.g. moving an event before another should change the time to be before the other event

Current Behavior

No association between position and times

Map route should auto update when locations are changed

Expected Behavior

Get new directions data via api when event locations change, removing old route and adding new

Current Behavior

Doesn't get new directions unless page refreshed, componentDidUpdate() in Plan.tsx seems to give the current state as prevstate. Could possibly be issues with state being array and some reference comparisons.

This also happens:

image

  • Reordering events refreshes the route with the new one.
  • Changing an event location does not get a new route (before/after waypoints logging shows the new location for both)
  • Adding a new event and adding a location does not get a new route.

Persistence data structure should be extensible

Expected Behavior

Persisted data should be in format that stores and supports multiple days / plans (even if it doesn't support it yet). Need to consider class objects that have to be recreated when deserialized.

ex:

{
    "plans": [ // multiple different plans
        {
            "metadata": { // plan data
                "name": "plan name"
            },
            "events": [] // multiple days
        }
    ]
}

Current Behavior

Persisted data only has 1 itinerary data (title) and 1 plan (list of events)

Route should show on refresh

Expected Behavior

Route is either refetched on refresh or saved & restored from the user's browser. Preferably stored in the browser along with the plan data to prevent excessive API calls (even if it's cached, minimize latency).

Current Behavior

Route is not shown when page is refreshed. Also route is not persisted or saved anywhere.

Refresh -> Route gone

Navigating home and back to Plan page -> Route is loaded

First load of itinerary should have example tutorial event

Expected Behavior

When user first starts an itinerary, an example event should be added. This could have information in description like a small explanation of what you can do.

e.g: This is an example event! You can add or change descriptions and titles by clicking the edit button at the side. + search help when it's implemented, etc. etc.

Current Behavior

Empty itinerary on first load

Users SBAT choose which transportation method to use

Expected Behavior

Available options are 'driving', 'walking', 'bicycling', 'transit'. User should have buttons for each respective method. The shown route should change to the respective one when the transportation method changes

Current Behavior

n/a

Users SBAT search for locations

Expected Behavior

Users can search for businesses, places, etc via Google Maps API or equivalent. It should provide addresses and additional information.

Current Behavior

n/a

Map should show on mobile

Expected Behavior

Map shows on mobile, either below plan or with a toggle button

Current Behavior

map doesn't show

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.