Coder Social home page Coder Social logo

backend's People

Contributors

aaghevli avatar cmc333333 avatar dlamoureaux avatar dmilet avatar gregsaintjean avatar jkbits1 avatar juice10 avatar misteranderson avatar pamelajohn avatar sdotson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

backend's Issues

Confirming a match redirects to strange text

This is the case for all ride management links in emails. Please change the text to the following:

  • 1

Driver accepts match

We have let [rider name] know that you have accepted their request for a ride. [Rider name] is now waiting for you to get in touch to arrange the details of the ride.

Please contact the rider as soon as possible via [preferred contact method].

We have sent your an email [and SMS, if applicable] notification confirming this information. If you do not receive this, please contact customer support: 804-239-3389

  • 2

Rider cancels specific ride match (NOT entire ride request)

We have let [Drive Name] know that you no longer need a ride from them. Our system will keep trying to find you a match.

Carpool Vote cannot guarantee that there will be another match, or that another driver will provide a ride as agreed. Please keep looking for a ride until you have reached your destination.

If this was an error, please contact user support on 804-239-3389.

  • 3

Rider cancels entire ride request

Your request for a ride has been cancelled. If you had already been matched with a driver, we've let the driver know that you no longer need a ride.

You can reactivate the request through the self-service portal [please include link to specific UUID login] or by calling 804-239-3389. You can also sign up again on CarpoolVote.com.

  • 4

Driver confirms match but it's no longer available

Thank you for offering to help! This rider no longer needs a ride. We'll let you if anything changes.

  • 5

Driver cancels specific ride match (NOT entire ride offer)

We have sent [Rider Name] a notification that you are no longer able to offer them a ride. If their preferred contact method was phone, we ask that you also let them know in this way, as our system does not currently support voice notifications.

Our system will keep trying to find the rider another match.

If you cancelled the ride offer in error, please contact rider to let them know.

Add full ride request details to self-service portal suggested and confirmed matches

Please:

  • Available ride times
  • Add "(preferred)" next to the preferred contact method; remove this from the line containing the accommodation notes
  • Add power chair adapted vehicle needed, where this applies
  • Add number of seats required
  • Specify whether 2-way trip is needed

Also separate SMS and notes into 2 separate lines (currently they appear next to each other, and look squashed/confusing)

Ride request and drive offer SMS has cancel link

I imagine this would result in some unintended actions (I thought we'd removed these?)

Please could we remove the cancellation link from both ride request and drive offer notification text messages?

Driver accepted match SMS notification doesn't include rider contact details

Please add rider contact details to SMS notification that the driver receives after confirming a match. We do not want to risk them forgetting to get in touch with the rider.

Please also do the same the other way around. I.e., send the rider the driver's contact details (in case there's an issue with the driver getting in touch).

Rider/Driver submissions from form fails if some non-required boxes are not checked.

For Example:

rider row insert failed: null value in column "TwoWayTripNeeded" violates not-null constraint.

What should happen:
The backend node app should check for existence / provide default (false/0) values for the data elements which are being inserted.

Those include:
DrivingOnBehalfOfOrganization (default false)
WheelchairCount (default 0)
NonWheelchairCount (default 0)
TwoWayTripNeeded (default false)
DriverEmailValidated (default 0/false?, until validated by confirming/responding to Email.)
DriverPhoneValidated (default 0/false, until validated by confirming/responding to Text.)
ReadyToMatch (default 0)
PleaseStayInTouch (default 0)

Change "Cancel drive offer" link to "Pause notifications" link in driver notifications

This way, the driver won't be disturbed by notifications but can still log into the self-service portal if they like. This also means that existing ride offers won't be canceled (these should be canceled individually).

In the self-service portal, please also remove "Cancel drive offer" link.

In the self-service portal, add a link that allows drivers to reactivate notifications.

Limit out of radius proposed matches

Current algorithm proposed matches up to 100 miles away from the driver zip code, even outside of radius (but with a reduced score).
Based on user feedback, 100 miles seems to far away (indeed....)

The 100 miles tolerance is changes to 20 miles, based on the fact that some drivers have indicated that they are willing to drive a little bit out of their way, and the fact that our distance calculation is based on the geo coordinates of the zip and not the actual address of the driver.

Add a user-friendly message to the cancellation page

I clicked the cancellation button in the email, and was directed to this page: https://api.carpoolvote.com/test/cancel-ride-request?UUID=b409c43a-b581-4a5c-831d-339c1783c8a9&RiderPhone=Westenra

Which just displayed the following text, completely unformatted: {"rider_cancel_ride_request":""}

Can we display something a little more user-friendly? At minimum, an <h1> saying something like "Your cancellation request has been received, thanks! You should receive an email shortly to confirm the cancellation." However ideally if we could display a proper HTML page, that'd go a long way. I can help with the design.

index.js - store driver license number

I see that the driver form now has field for Driver License Number

index.js should now be able to insert it too

Here is the corresponding field in the DB
DriverLicenseNumber | character varying(50) |

And VehicleRegistrationNumber is gone now I think, can be removed from index.js

Simplify drivers and rider UUIDs

These can be difficult to manage for people with cognitive difficulties

Is there something shorter/easier that can be assigned? Perhaps something to do with last name, initials, zip code etc?

Send rider contact details to driver only AFTER a match has been confirmed

Driver currently receives contact details for all proposed riders. Instead, they should only receive these details once they have confirmed the match. The street/apartment number should also be separated from the street name (issue #254 on the front end), so it can be sent along with the rest of the contact details.

This is for data protection and safety reasons. The driver can always cancel a match if it doesn't work for some reason.

In the notification above "If you do not wish to..." add "We will send you the rider's full address and contact details if you accept the match"

Can we version the API (such that we could have two versions potentially in use at the same time?)

Something like:

https://api.carpoolvote.com/v1.0/drivers/
https://api.carpoolvote.com/v1.1/drivers/

https://api.carpoolvote.com/v1.0/riders/
https://api.carpoolvote.com/v1.1/riders/

https://api.carpoolvote.com/v1.0/helpers/
https://api.carpoolvote.com/v1.1/helpers/

https://api.carpoolvote.com/v2.0/zipcodelookup/

I suspect this would be multiple versions of the node app, running concurrently, in different directories, on different ports, and then nginx handling the routing from /v1.0/* to one port, and /v2.0/* to another port?

What do we do against SQL injection?

We have a few text fields, which will be displayed in the self-service page, and email.
Also the same text fields are used in APIs to manage the ride requests/driver offers.

What should we do against SQL injection ?

To Investigate why the counts don't add up

I can't explain why we have 207 matches in state MatchConfirmed, but only 57 riders in that state.
Normally, there is one match per rider at most

Report run on Tue Nov 8 12:00:01 UTC 2016
carpool_v2.0_live
DRIVERS
count | state
-------+----------------
250 | Canceled
935 | Pending
448 | MatchProposed
138 | MatchConfirmed
613 | Expired
33 | Failed
(6 rows)

RIDERS
count | state
-------+----------------
31 | Canceled
6 | Pending
57 | MatchConfirmed
6 | MatchProposed
18 | Expired
16 | Failed
(6 rows)

MATCHES
count | state
-------+----------------
800 | Canceled
946 | MatchProposed
207 | MatchConfirmed
(3 rows)

EMAILS
count | state
-------+--------
4940 | Sent
703 | Failed
(2 rows)

SMS
count | state
-------+--------
3040 | Sent
52 | Failed
(2 rows)

unmatched drivers json has duplicate lat/lon information

[{"count":"1","zip":"20111","state":"VA","latitude":" 38.769697","longitude":" -77.44915","city":"Manassas","full_state":"Virginia","latitude_numeric":38.7697,"longitude_numeric":-77.4492,"latlong":{"x":38.7696952819824,"y":-77.4491500854492}}]

rider request not properly canceled

[carpool_app@carpoolvote1 db]$ ./show_rider_by_uuid.sh 54aa2a0e-ba6c-4711-8266-9757ca30dff4
carpool_live
Rider Details
uuid | RiderLastName | RiderPhone | RiderEmail | status | status_info | created_ts | last_updated_ts | RiderCollectionZIP | RiderDropOffZIP | TotalPartySize | RiderIsVulnerable | NeedWheelchair | convert_datetime_to_local_format
--------------------------------------+---------------+------------+-----------------------+---------+-------------+----------------------------+----------------------------+--------------------+-----------------+----------------+-------------------+----------------+----------------------------------
54aa2a0e-ba6c-4711-8266-9757ca30dff4 | m | 5719691499 | [email protected] | Pending | | 2017-05-07 14:22:24.004371 | 2017-05-07 14:28:03.275264 | 20111 | 20111 | 1 | f | f | May 07 06:00am-10:00pm
(1 row)

Rider Matches
status | uuid_driver | uuid_rider | score | created_ts | last_updated_ts
----------+--------------------------------------+--------------------------------------+-------+----------------------------+----------------------------
Canceled | 8bae194f-0b1d-4fce-a04c-821932ff93d2 | 54aa2a0e-ba6c-4711-8266-9757ca30dff4 | 82 | 2017-05-07 14:22:47.053326 | 2017-05-07 14:27:53.310019
Canceled | 1960d085-b016-4bb1-acb2-fc1605d4bc2a | 54aa2a0e-ba6c-4711-8266-9757ca30dff4 | 0 | 2017-05-07 14:22:47.053326 | 2017-05-07 14:28:03.275264
(2 rows)

Rider emails
status | subject | created_ts | last_updated_ts | recipient | emission_info
--------+-----------------------------------------------------------------------------------+----------------------------+----------------------------+-----------------------+---------------
Sent | Ride Request received! --- [54aa2a0e-ba6c-4711-8266-9757ca30dff4] | 2017-05-07 14:22:24.004371 | 2017-05-07 14:22:47.346314 | [email protected] | 200 - OK
Sent | You have been matched with a driver! --- [54aa2a0e-ba6c-4711-8266-9757ca30dff4] | 2017-05-07 14:24:01.09684 | 2017-05-07 14:24:19.712572 | [email protected] | 200 - OK
Sent | Ride Request Cancellation Notice --- [54aa2a0e-ba6c-4711-8266-9757ca30dff4] | 2017-05-07 14:27:53.310019 | 2017-05-07 14:28:22.506414 | [email protected] | 200 - OK
(3 rows)

Rider sms
status | created_ts | last_updated_ts | recipient | emission_info
--------+----------------------------+----------------------------+------------+---------------
Sent | 2017-05-07 14:22:24.004371 | 2017-05-07 14:26:44.25842 | 5719691499 |
Sent | 2017-05-07 14:24:01.09684 | 2017-05-07 14:26:44.361226 | 5719691499 |
Sent | 2017-05-07 14:27:53.310019 | 2017-05-07 14:28:14.061146 | 5719691499 |
(3 rows)

[carpool_app@carpoolvote1 db]$ ./show_rider_by_uuid.sh 54aa2a0e-ba6c-4711-8266-9757ca30dff4
carpool_live
Rider Details
uuid | RiderLastName | RiderPhone | RiderEmail | status | status_info | created_ts | last_updated_ts | RiderCollectionZIP | RiderDropOffZIP | TotalPartySize | RiderIsVulnerable | NeedWheelchair | convert_datetime_to_local_format
--------------------------------------+---------------+------------+-----------------------+----------+-------------+----------------------------+----------------------------+--------------------+-----------------+----------------+-------------------+----------------+----------------------------------
54aa2a0e-ba6c-4711-8266-9757ca30dff4 | m | 5719691499 | [email protected] | Canceled | | 2017-05-07 14:22:24.004371 | 2017-05-07 14:29:47.914392 | 20111 | 20111 | 1 | f | f | May 07 06:00am-10:00pm
(1 row)

Rider Matches
status | uuid_driver | uuid_rider | score | created_ts | last_updated_ts
----------+--------------------------------------+--------------------------------------+-------+----------------------------+----------------------------
Canceled | 8bae194f-0b1d-4fce-a04c-821932ff93d2 | 54aa2a0e-ba6c-4711-8266-9757ca30dff4 | 82 | 2017-05-07 14:22:47.053326 | 2017-05-07 14:29:47.914392
Canceled | 1960d085-b016-4bb1-acb2-fc1605d4bc2a | 54aa2a0e-ba6c-4711-8266-9757ca30dff4 | 0 | 2017-05-07 14:22:47.053326 | 2017-05-07 14:29:47.914392
(2 rows)

Rider emails
status | subject | created_ts | last_updated_ts | recipient | emission_info
---------+-----------------------------------------------------------------------------------+----------------------------+----------------------------+-----------------------+---------------
Sent | Ride Request received! --- [54aa2a0e-ba6c-4711-8266-9757ca30dff4] | 2017-05-07 14:22:24.004371 | 2017-05-07 14:22:47.346314 | [email protected] | 200 - OK
Sent | You have been matched with a driver! --- [54aa2a0e-ba6c-4711-8266-9757ca30dff4] | 2017-05-07 14:24:01.09684 | 2017-05-07 14:24:19.712572 | [email protected] | 200 - OK
Sent | Ride Request Cancellation Notice --- [54aa2a0e-ba6c-4711-8266-9757ca30dff4] | 2017-05-07 14:27:53.310019 | 2017-05-07 14:28:22.506414 | [email protected] | 200 - OK
Pending | Ride Request Cancellation Notice --- [54aa2a0e-ba6c-4711-8266-9757ca30dff4] | 2017-05-07 14:29:47.914392 | 2017-05-07 14:29:47.914392 | [email protected] |
(4 rows)

Rider sms
status | created_ts | last_updated_ts | recipient | emission_info
---------+----------------------------+----------------------------+------------+---------------
Sent | 2017-05-07 14:22:24.004371 | 2017-05-07 14:26:44.25842 | 5719691499 |
Sent | 2017-05-07 14:24:01.09684 | 2017-05-07 14:26:44.361226 | 5719691499 |
Sent | 2017-05-07 14:27:53.310019 | 2017-05-07 14:28:14.061146 | 5719691499 |
Pending | 2017-05-07 14:29:47.914392 | 2017-05-07 14:29:47.914392 | 5719691499 |
(4 rows)

Add ride details to proposed match SMS

Proposed match SMS notifications going to the driver does not currently contain the details of the ride. We'd like to driver to have an idea of whether the ride could work, before they log in (especially if they've already set up a few rides), so that unnecessary logins don't become a burden.

Please include in the proposed match notifications:

  1. Dates and am/pm
  2. Start and end zip
  3. Power chair needed (only if yes)
  4. Special accommodation notes (only if any)

Allow drivers and riders to amend any of the ride or personal details in the self-service portal

On top-right of the main landing page in the self-service portal, include a button linking to “Modify details” page. On this page, include all of the information as recorded on the signup form. Allow modification of any of these details (except T&Cs).

Require user to click “Submit” button to save changes.
Prompt user to “Submit” or “Cancel” details if they try to leave after making changes without submitting.

This feature should relieve considerable pressure on the customer service team during election time.

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.