WayFarer is a public bus transportation booking server, developed the back-end API with NodeJs and ExpressJs
- For developers seeking to use it as a backend infrastructure use this url as your base url https://wayfarerappapi.herokuapp.com/api/v1 and then follow the description in Usage below to get started on how to implement the api endpoints in your app.
Add to Base URL above
-
Use the following Endpoints
POST /auth/signupCreate User AccountPOST /auth/signinLogin A UserPOST /tripsCreate a trip (Needs admin priviledges)GET /tripsGet all tripsPOST /bookingsBook a seat on a tripGET /bookingsSee all of your bookingsDELETE /bookings/:bookingIdDelete A BookingPATCH /trips/:tripIdCancel A Trip (Needs admin priviledges)GET /user/seedSeed users table with users with admin rightsPOST /admin/signupAn admin can add new admin (Needs admin priviledges)PUT /user/:id/adminAn admin can give a registered user admin right (Needs admin priviledges)PUT /bookings/:bookingIdUpdate Booking Seat NumberPOST /busesAdd a bus (Needs admin priviledges)GET /busesGet all buses (Needs admin priviledges)GET /trips/origin?origin="origin"Filter trips by originGET /trips/destination?destination="destination"Filter trips by destination -
A successful response will be
{ status: 'success', data: {} }
or
{ status: 'success', data: [] }
and an unsuccessful response will be
{ status: 'error', error: 'relevant-error-message' }
I would love to hear from anyone that will like to contribute
-
NodeJs and Npm (https://nodejs.org/en/download/)
-
PostgreSQL(https://www.postgresql.org/download/)
-
Create a .env file at the project root
wayfarer/.envseeenv_examplefile to know what to add to.envin your root folder. -
DBeaver: DBeaver is free and open source universal database tool for developers and database administrators. (https://dbeaver.io/download/), this is optional though, you can use any other GUI for postgreSQL.
If you want set up locally you can follow these steps, you can also use postman(https://www.getpostman.com/downloads/) to test. Clone the repository, open terminal in root and do the following on terminal
$ npm installAfter Setting up the database, create database tables running the command below, its advisable to run the command more than once and make sure your database is updated with the tables:
$ npm run create-dev-tablesStart server by running:
$ npm run startSeed Database tables with users(with admin right) by running the command below, its advisable to run it more than once:
$ npm run seed-user-tableor use
GET /user/seed Endpoint
Test endpoints by running:
$ npm run testPOSTMAN : https://documenter.getpostman.com/view/6229713/SVSHrpDW
None for now.