bloombus / bloombus-client Goto Github PK
View Code? Open in Web Editor NEWWeb client for the Bloomsburg University shuttle bus tracking system
Home Page: https://bloombus.herokuapp.com
License: MIT License
Web client for the Bloomsburg University shuttle bus tracking system
Home Page: https://bloombus.herokuapp.com
License: MIT License
When a user selects a stop a dashed line should be shown following a suggested walking path between the user's current location and the selected stop.
TBD
When the application is loaded, it should conditionally route to separate layout definitions depending on whether the user has a desktop or mobile User Agent. Recommended tool for detection is react-device-detect
.
TBD
When the app is ready for a beta or public release, we will need to begin publishing updates off of master following semver guidelines. This would also include adding a develop branch in which developers branch/merge feature branches from/to, and releases are published from develop to master. To help new developers, we already need to document our git flow and in addition we will need to set up and document the process for publishing these releases.
TBD
The high-res images of the stops (thanks again @colinmcintyre17) take a second or 2 to load over a decent network connection, and it would be a nice UX enhancement to lazyload these images with a loader placeholder
TBD
When the app is opened over http, the GeolocateControl is hidden since https is required for geolocation features. So, the navigation controls and the geolocatecontrol should both be put in a flexbox container that is absolutely positioned instead of the individual controls.
TBD
When a user is selecting between the available loops using the carousel, the stops that are not a part of the current loop should be partially faded out to bring visual focus to the locations of potential stops the user can navigate to.
TBD
The Google Maps API has limited ability for dynamically manipulating the map in React. Uber's react-map-gl
package is a React wrapper around Mapbox's Mapbox GL
JavaScript API which is much more extensive and enables us to self-host our vector tile basemap to avoid licensing limitations.
N/A
N/A
TBD
bearing
propertyTBD
When a user activates GeolocateControl and they are out of bounds (say California for instance) the app forever tries to fly to that location but due to our clamping logic gets stuck at the coordinating map boundary. Instead as soon as the GeolocateControl is activated a check should be done to determine if they are outside of the bounds and if so display a notification modal notifying them that they are unable to use the geolocation feature.
None
GeolocateControl
is activated, the app checks if the user is outside of our defined bounding boxCurrently Firebase SDK scripts are downloaded at runtime by linking to them in the HTML. To be more consistent with our other dependencies and to utilize optimization features of Webpack, we should use the npm packages for Firebase SDK instead.
N/A
N/A
TBD
<link>
s to Firebase SDK scripts have been removed from index.html
To complete the transition to react-map-gl, all previous map interactions must be replicated as it were with the Google Maps API.
N/A
N/A
TBD
There are ways within the app to navigate using on-screen controls, however it's often more convenient to use the browser forward/back navigation, especially on mobile.
N/A
N/A
TBD
When a user taps/clicks on a stop marker on the map, they should be presented with a bottom sheet that provides them with information on that stop (content TBD) as well as other stop-specific meaningful interface changes.
TBD
Ant-mobile was previously used for the timeline and navbar components in now outdated versions of the UI design. Since we will no longer be using this library, it should be removed as a dependency.
N/A
N/A
TBD
When a user is selecting between the available loops using the carousel, the stops that are not a part of the current loop should be partially faded out to bring visual focus to the locations of potential stops the user can navigate to.
Low (potential for styling bugs)
When the user has enabled the map's GeolocateControl and it is successfully providing location, whenever details on a stop is displayed the distance to that stop should be shown.
Possible performance degradation if distance calculations are done inefficiently
@turf/distance
moduleA crude version of a shuttle marker was temporarily added to test the rotation, placement, and dynamic coloring using the new react-map-gl API. It should be replaced with a higher quality inline SVG version as a more permanent solution.
TBD
To support having an overflow menu on the app's header with options to route to various other views besides the Home view, we need to utilize react-router and refactor the structure of the App/Home components.
Currently there appears to be no risk, although moving the header out of the Home component could change how we dynamically resize the map going forward.
AppHeader
component is migrated into App.js
The current display of lists depends on a large library (antd-mobile) and provides little customization, and has poor contrast with the bottom sheet background.
N/A
N/A
TBD
On certain monitor sizes, so far 16:10, there will be an extra blank bar at the bottom underneath the map.
This may require or also be linked to the need for having the map resize upon resizing the browser without needing a page refresh.
Open client application on a 16:10 or other weird aspect ratio monitors.
Use a proper aspect ratio monitor. Bug doesn't break overall project, just visual.
TBD
We need an overflow menu (see Android description of this) on the AppHeader to be able to provide a menu for additional tasks/options as well as a place to link attribution/about us docs.
None
calcite-ui-icons-react
package with its handle-vertical
iconcalcite-react
Menu
with these options:
Right now the flyTo transitions apply to all map transitions including typical clicking/touch panning around the map. FlyTo or EaseTo transitions should be reserved for only programmatic transitions such as after selecting a loop.
N/A
N/A
TBD
Remove flyTo/easeTo transitions for user map interactions
TBD
Add the Sidebar to the BrowserView and Render both the Loop names and their Stops.
N/A
N/A
N/A
The carousel leads to several visual challenges and an overall not great user experience having to swipe between all carousel stages to choose between a loop. Since we would like to use a swipeable BottomSheet to be more consistent with other UI steps (such as seeing information about a stop, a shuttle, etc) and to be closer to common experience in other major mapping applications, it should be replaced.
N/A
N/A
TBD
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.