Giter Club home page Giter Club logo

shuttle-tracker-web's Introduction

Shuttle-Tracker-Web

New shuttle tracker web UI implemented in Vue.js. View the temporary testing site here. The shuttle tracker web UI does not help with crowd-sourcing location data.

Dependency Installation

This project requires Node.js and its package manager npm to run. To install the dependencies:

npm install

Compiles and hot-reloads for development

There are two development environments: development and production. The development mode gives developers access to devtools and information that isn't shown in the production build. Run it with the following command:

npm run serve

To simulate the production build (which is how the final deployment would look like), run the following command:

npm run serve_prod

Compiles and minifies for production

For normal production build, run the following command:

npm run build

To build with development mode, run the following command:

npm run build_dev

Contribution guideline

  • To get started, first clone the repo with git clone REPO_URL. It is recommended to setup an ssh key since password credential is deprecated.
  • Before making any contributions, make sure you go on the issue tab and assign yourself to the specific bug. This is to avoid multiple people working on the same stuff.
  • To start making changes, create a new branch of branch dev. Do this by using git checkout -b NEW_BRANCH_NAME.
  • Make the commit messages meaningful. Don't leave it blank.
  • To submit changes, push your new branch to the repo with git push origin NEW_BRANCH_NAME.
  • Create a pull request merging your new branch to dev, and request reviews from one of the moderators.
  • Once your pull request has been merged into dev, ask that a maintainer push your changes to the staging environment.
  • After the first review the change should show on the staging environment.
  • Finalized feature will be pushed to the main branch after testing.

Lints and fixes files

npm run lint

Customize configuration

See Configuration Reference.

Deployment

Deployment for the Web interface is similar to that of the Shuttle Tracker Server, so refer to the Production Server Administration article for Shuttle Tracker Server for most details about deployment. The main difference is that for the Web interface, the production environment is shuttletracker-new-web (not shuttletracker-new), and the staging environment is shuttletracker-new-web-staging (not shuttletracker-new-staging). Also, the Web interface doesn’t use any database.

Production Environment

  • To add the Git remote: git remote add production ssh://[email protected]:2222/shuttletracker-new-web
  • To deploy: git push production main:master

Staging Environment

  • To add the Git remote: git remote add staging ssh://[email protected]:2222/shuttletracker-new-web-staging
  • To deploy: git push staging dev:master
    • Note the reference to the local dev branch instead of the local main branch. You can try pushing main to the staging environment, but doing so might create difficult-to-resolve merge conflicts. Proceed with caution!

New Paths

If you add a handler or a static page for a new path (such as /privacy-policy or /about), then make sure to update the nginx configuration on the server. To do so, open an SSH connection to the server (see the aforementioned Production Server Administration article for instructions) and run the following command:

sudo nano /home/dokku/shuttletracker-new-web/nginx.conf.d/routing.conf

Put the following configuration into the file, replacing [path] with the new path:

location [path] {
		try_files $uri $uri/ /index.html;
		index index.html index.htm;
}

Press Control-X, then Y, and then Return to save and to exit. Then, run the following commands:

dokku nginx:validate-config shuttletracker-new-web-staging
dokku ps:restart shuttletracker-new-web-staging

(Replace shuttletracker-new-web with shuttletracker-new-web-staging for the staging environment.) If you don’t update the nginx configuration in this manner, then users might see a 404 Not Found error page when they visit the new path.

shuttle-tracker-web's People

Contributors

isaac-the-man avatar gerzer avatar lij47 avatar michaelni678 avatar huynchu avatar yzzzc avatar noahcussatti avatar ace3r2 avatar wangj55 avatar qiud1 avatar anugrahaawasthi avatar utopian-coder avatar

Stargazers

Xiaoyao Xu avatar Charlie Liu avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

williamschen23

shuttle-tracker-web's Issues

Move footer up

Move the footer of the page with the "refresh map message" and IOS link right under the map.
image

[New Feature] Implement the "instruction" modal

Add a modal with instructions (like below)
image
Also include something like "green bus indicates accurate location data". The modal should only popup when the user enters the website for the first time (use a Cookie).

`<meta>` tag for App Clip

We need to add the following <meta> tag:

<meta name="apple-itunes-app" content="app-id=1583503452, app-clip-bundle-id=com.gerzer.shuttletracker.appclip, app-clip-display=card">

Make modal prettier

for the bus icon descriptions, show icon images rather than using descriptive text

Full-screen mode

Web UI on large screens (union especially) looks weird. Add a full screen mode support to solve it.

Outdated link to TestFlight

This link redirects you to the testflight link, which is outdated since we have the app in appstore already. Link it to the official appstore link.
image

Old web interface link should be darker/lighter

Is your feature request related to a problem? Please describe.
I noticed the new Shuttle Tracker launched recently. At the bottom of the page, there is a link that says "Old Web Interface," and it lets you use Shuttle Tracker in its original appearance. The problem with this is the text color for this link does not contrast well enough with the background. On light mode, it is a light gray that almost blends in with the white background, and on dark mode, it is completely black and is hard to see on a near-black background.

Describe the solution you'd like
I think it would be best to make the text color on light mode darker and the text color on dark mode much brighter. With these changes, this text will contrast more with the background and be more visible to the user.

Screenshots
Light mode text color:

lightmode

Dark mode text color:

darkmode

[Bug Fix] Mobile Compatibility

Header doesn't resize well and the server status is squeezed.
image

Also tracker is zoomed in too much on mobile devices, should show the entire map of the school area.
image

Modals blocked by announcement banner

Announcement blocking top part of the welcome modal. This is also the case for the color blind modal.
Suggested fix: move the modal a little bit down.
image

Config file and environment variables

Create a .env file to configure global settings such as API_URL, API_VERSION, DEV_TOOLS_ENABLED and more, to get ready for the production release.

[New Feature] Add favicons

Add favicons to the shuttle tracker site. This includes:

  • android icons of different sizes
  • apple icons of different sizes
  • regular favicons of different sizes

Also include a manifest file in the header to manage the icons. Checkout this site for more info. All of these files can be generated with an online tool.

Announcement API

Parse announcements from server and display it in the frontend.

Create Dev Mode

Create a dev mode that adds both high quality and low quality data to the map.

Let the user change light/dark mode

Make it easier for the user to change light and dark mode than changing the system's settings.
Add the switch (similar to the colorblind switch) under settings.

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.