Git Product home page Git Product logo

better-intersections's People

Contributors

17ayaan28 avatar jakecoppinger avatar uzaif-sheikh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

better-intersections's Issues

Add query parameter or additional path to `/contribute-measurement` with node ID

This would enable a "Contribute measurement for this exact crossing" link on the intersection stats page (or popup).

The node id would be prefilled in the OSM Node ID textfield and the map select step would be hidden or skipped.

Example url would be /contribute-measurement/12345 where 12345 is an example OSM node ID.

Reinstate optional frontend field for RMS traffic signal ID on submission

This field is in the DB and types but currently doesn't exist as a form field. It was previously included in the Google Form but with the move to the custom form I excluded it to minimise the number of required fields.

I think it makes sense to add it back in but as an optional field.

Copy text on the Google form was

Optional: What code is on the traffic light control box?
Usually a number on yellow background, on a metal box near the intersection.

Large (~10mb) JS bundle size

Cloudflare reports around an 8mb bundle size. I haven't looked into the cause of this - we might be able to achieve some easy wins by adjusting some build config settings or library imports.

If it's not a simple fix I don't think we should stress too much - time to map pin load is more dependant on the OSM node requests.

Group measurements of intersections not at two stage crossings

See discussion in #6

Possible algorithm would be when nodes are connected by a way in between a dual carriageway (where both one-way roads have the same name), AND either node has at least one measurement with two_stage_crossing=false (or whatever the field ends up being called), AND neither node has any measurements with two_stage_crossing=true, then group them on the map and on the intersection stats page. This ensures intersections measured before #6 is added aren't automatically grouped (though they may be two stage crossings).

This is fairly high hanging fruit and so isn't high priority!

No intersection Pins showing

No intersection Pins are showing. Checked by looking in Sydney CBD. Additionally checked across two seperate Android devices.

'Cycle Length' should be rounded

'Cycle Length' is not rounded when I click on an intersection pin from the map.

It shows e.g. "143.42700000000002 sec.".

This could be rounded maybe to 2 decimal places?

Improve handling of multiple signals across dual carriageway streets

Currently this tool only takes measurements for nodes, that is a single traffic light.

Ideally it would be able to identify two traffic lights on the same OpenStreetMap pedestrian way which would indicate a dual carriageway crossing. Additional metadata could be collected to record whether the pedestrian can cross in one green phase, or is required to wait an entire cycle and use 2 green phases.

For example: https://www.youtube.com/watch?v=JBZkpmW91PY

It takes about twenty seconds to walk across Antill Street.
At this intersection, it takes five minutes to legally walk from the north side of Antill Street to the west side of Cowper Street.
The first green pedestrian signal phase allows only enough time to cross to the median on Antill Street.
The green pedestrian signal phase, in the next cycle of the traffic lights, allows people to complete crossing to the east side of Cowper Street. They must then wait until a green signal allows them to commence crossing Cowper Street.
The that green pedestrian signal phase allows them only enough time to cross to the median on Cowper Street. They must then wait on the median until the green pedestrian signal phase, in the next cycle of the traffic lights, allows them to complete their crossing to the west side of Cowper Street.

Passwordless email sign in to replace Google auth

Ideally users wouldn't be required to sign into their Google Account to them submit form timings.

A better UX for the form requires a custom form. I'm hesitant to implement a form without some sort of gating via email (or phone number) to prevent spam from a single individual.

Passwordless sign in would accomplish this, but would likely involve architecture this into a full stack app (rather than static). Any alternative ideas are welcome too!

Format timestamps in local time rather than UTC

Timestamps are stored as UTC ISO8601 timestamps, and are currently displayed as such.

With a couple of lines we should be able to import a date formatting library and display as a more "friendly" time in the popup on the frontend.

Ideally this would use the location coordinates to find the local timezone, otherwise displaying in Sydney time should be fine.

Ideally it would look up the Sydney timezone (AEST vs ADST) at the time of capture, but displaying in the current Sydney time would be better than UTC. As long as we include UTC+11 (or whatever the offset is) the user is able to convert if it's incorrect.

Cache majority of OSM API requests

To improve first load speed and reduce load on the OSM API, we could download the node locations at build time.

I like the idea of building almost as a "static cache", and if there's a cache miss we still hit the API (so new measurements still load between builds and deployments)

Store traffic light coordinates as well as node IDs

I'm seeing OSM node disappear more often than I expected would happen. This issue is to track a fix for storing coordinate locations as well as OSM nodes to be able to find node replacements manually if necessary.

To be crystal clear; this is to store the coordinates of the traffic signal node (from OSM) at submission time, not to store the user's location.

Improve colour scheme of timing pins

Colour scheme for timings leaves a lot to be desired. Perhaps green should be best practice and shades of orange/red/purple/back up to a constant of the worst timing measured.

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.