Choose Rate, not Rage

Why RoadRate?

Have you ever been perplexed by a neighbor that continuously parks in a way that blocks you from using an otherwise perfectly viable space?

With RoadRate, you can find their license plate, rate it, and leave an anonymous review.

What about that time you relied on the help of a stranger for a jump?

You can use RoadRate to publically acknowledge how impactful the kindness of strangers can be.

Our team developed RoadRate so that drivers can communicate with each other about the road. With a simple click of a button you can get your points across anonymously.

What is RoadRate?

RoadRate is a social platform for reviewing your fellow drivers and seeing how well your own plate's *RoadRate. Register license plates, browse/search/post reviews, and build up your karma score to let other's know you're a great driver. RoadRate was founded to safely and anonymously encourage quality road etiquette for the over 220 million drivers currently licensed in America.

*RoadRate encourages positive reviews for enviable driving skills and random acts of kindness, and as such, honest negative reviews where there is room for improvement and need are also encouraged.

For version 2, we want to incorporate a tipping feature to encourage rewards for good driving.

Demo User

  • username: simba
  • password: Simba123

Quick Links

ScreenShot

RoadRate Screenshot

V1 Features

All Users:

  • User Registration/Auth/Login using jwt authToken
  • User on-boarding on the landing page via an About modal
  • Users can view reviews about a plate without registering an account
  • Users can search for a License plate number and view the reviews written about it
  • Public reviews are accessible by anyone

Registered Users:

  • Registered users can leave public reviews anonymously about a plate
  • Registered users can claim and unclaim a license plate
  • Once a registered user claims a plate, they can see the associated reviews about all of their claimed plates in the "My Plates" tab
  • Registered users can also view all of the reviews or feedback they have written about other license plates in a tab called “My Reviews”

V2 Features

  • Registered users can send and receive anonymous tips
  • License plate claiming validation
  • Karma Score Gamification
  • Community forums
  • Topic tags on the comment (is the review good because of parking, repair, etc?)
  • Pagination
  • Geolocation
  • Uploading photos
  • Fix the owned by a user icon on review cards. The icon should render dynamically if the plate is actually claimed

Tech Stack

Front End:

Back End:

Testing:

Workflow

Team

  • Jordan Haddadi - Design Lead github icon
  • Randy Sartor - Product Manager github icon
  • RP Boyle - QA Lead github icon
  • Trisha Aguinaldo - Project Manager github icon

Instructions for Developers

In development, your local machine should have Node.JS and Mongo set up

  1. Clone both the server and client side of this app:
  • Server or git clone https://github.com/thinkful-ei26/roadrate-server.git
  • Client or git clone https://github.com/thinkful-ei26/roadrate-client.git
  1. npm install the requirements on each of the repos
  2. Run mongod in a separate terminal shell.
  3. Open a new terminal shell and then cd into the server side and run node server.js
  4. Finally, cd into the client side and run npm start in a new terminal shell. A new browser window should open containing the app.

When deploying

  • On the client > scr >config.js use line 7 as the API_BASE_URL instead of line 9
  • Use line 18 on client > src > components > public-plate.js instead of line 20

API

/api
.
├── /auth
│   └── POST
│       ├── /login
│       └── /refresh
├── /users
│   └── POST
│       └── /
├── /plates
│   └── GET
│       ├── /
│       ├── /:id
│       ├── /all/:id
│       ├── /:plateState/:plateNumber
│   └── POST
│       └── /
│   └── PUT
│       ├── /:userId
│       ├── /unclaim/:userId
├── /reviews
│   └── GET
│       └── /
│       ├── /my-plates/:plateId
│       ├── /plate/:plateId
│       ├── /:plateState/:plateNumber
│       ├── /:userId     <-- GET all reviews by userId
│       ├── /:id         <-- GET one review by reviewId
│   └── POST
│       └── /
│   └── PUT
│       └── /:id

Twitter/ProductHunt

Wireframes

RoadRate Wireframes