Coder Social home page Coder Social logo

lupyana / ride-my-way Goto Github PK

View Code? Open in Web Editor NEW
7.0 5.0 2.0 24.76 MB

Ride-My-Way app is a carpooling application that provides drivers with the ability to create ride offers and passengers to join available ride offers.

Home Page: https://lupyana-ridemyway-api.herokuapp.com/

CSS 8.68% HTML 17.24% JavaScript 74.08%
alcwithforloop javascript reactjs travis-ci continuous-integration tdd swagger swagger-documentation

ride-my-way's Introduction

Build Status Coverage Status Test Coverage

Ride-My-Way

Ride-My-Way app is a carpooling application that provides drivers with the ability to create ride offers and passengers to join available ride offers.

Courtesy of ALC and forloopTz

Functionality of Web App

  • User Authentication ( Signup, Signin & Verification )

  • User can do the following:

    • View all available ride offers.
    • See the details of a ride and respond to it
    • Offer a ride
    • View and accept requests for the ride offer he/she created
  • User profile which, at minimum diplays:

    • The number of rides the user has given
    • The number of rides the user has takes
    • List of rides taken and given

Tools and Languages used

Tools

  • Atom (code Editor)
  • nodeJs
  • Travis CI
  • Jest and Supertest

Languages

  • Html
  • Css
  • Javascript

Getting started

Requirements

Project setup

Install nodejs dependencies:

yarn install

If you are using npm

npm install

Lets run some tests

Call the test command

yarn test

Start Dev server

Start the development server and get cracking

yarn dev

ride-my-way's People

Contributors

benmaruchu avatar lupyana avatar makoscafee avatar simonmawole avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ride-my-way's Issues

Password Reset

  • User should be able to reset there password
  • Required details are email / phonenumber

Test ride offer api

Test case for :

  • Endpoint: api/v1/rides
  • method : get
  • Expected response: array of ride objects

Request to join a ride

Api endpoint to a join a ride:

  • Endpoint: api/rides/:id/requesr
  • method : post
  • data: { userId, rideId}

Project Setup

Todo

  • Create backend folder
  • Install dependences
  • Express
  • Jest
  • Eslint

User login

Details:

  • Endpoint: /auth/login
  • method : post
  • data : user details
{
email: "",
password: ""
}

Expected behaviour:

  • User gets authenticated
  • token is returned

Set up test env

  • Setup test enviroment
  • write first test to test the root route

View all available ride offers

As a user I should be able to view the available offers in summary

Details to be shown

  • Ride time
  • Ride start and destination
  • Ride price
  • Driver
  • Thumbnail Image

React setup

  • Install react and dependencies to the project
  • This is done using create-react-app

Get Ride offers

Api end point to get a list of all ride offers

Details:

  • Endpoint: /auth/login
  • method : post
  • data : user details

Expected behaviour:

  • array of ride objects

User profile

Should show

  • The number of rides the user has given
  • The number of rides the user has taken
  • List of rides taken and given

Create a ride offer

Api endpoint to create ride order:

  • Endpoint: api/rides
  • method : post
  • data : ride object

Expected behaviour:

  • Rides array object should increase size by one

Detailed view of an available offer

As a passengers I should be able see the details of a ride offer and request to join the ride. E.g What time the ride
leaves, where it is headed e.t.c

Main screen

Header with links to

  • Signout
  • Notifications
  • Profile

List ride offers

User Login

As a user I should be able to login into my account

  • Login details required is phone number and password

  • Redirects:

  • Reset Password

  • Signup

User Verification

A user login or registration has to be verified either using email or sms by sending an OTP

  • User will receive OTP
  • User will enter OTP
  • User gains acces to the platform
  • If its a new user send to Setup Screen

Setup CI

Continuous Intergration using Travis CI

  • Install Travic CI
  • Set up in project

I have no Idea what im doing, Its gonna be fun

User Registration

A user should be able to register with ride my way

  • User details required to register are phonenumber / email

User verification

Details:

  • Endpoint: /auth/verify
  • method : post
  • data :
{
tokan: "",
code: ""
}

Expected behaviour:

  • User to get email, or sms with otp

User auth

  • Setup user auth
  • Setup JWT architecture

User Registration

Details:

  • Endpoint: /auth/register
  • method : post
  • data : user details
{
email: "",
fname: "",
lname: "",
password: ""
}

Expected behaviour:

  • User to get email, or sms with otp

Delete ride offer

Details:

  • Endpoint: /rides/:id
  • method : delete
  • data : id

Expected behavior:

  • Ride to be deleted

Module not found

frontend/src/index.js
Module not found: Can't resolve 'react-router-dom'

after running: npm run dev

Integrate coveralls

  • Integrate test coverage reporting
  • Install coveralls to repo
  • Add coveralls badge to repo

Get a specific ride order

Api endpoint to get a specific ride order:

  • Endpoint: api/rides/{id}
  • method : get
  • response: ride object

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.