Barefoot Nomad
Making company travel and accommodation easy and convinient.
Make company global travel and accommodation easy and convenient for the strong workforce of savvy members of staff, by leveraging the modern web.
Install Node.js if you dont have it installed.
Install Postgresql to your system
Install Redis database
git clone this repository && cd to the project directory
with postgres create a 2 databases : one for test and another for development
run npm install
to install dependencies
create a .env
file in the root project directory
copy the .env.example
to the .env
file and update it accordingly
run npm run migrate
&& npm run seed
to create the schemas and seed
run npm run test
to test the application unit tests
Testing specific endpoints:
or view full documentation of the API can be found here
Run the application with npm run dev
and open an API testing tool. We will use Postman for this case.
http://localhost:3000/api/v1/<endpoint>
Method
EndPoint
Enable a user:
POST
/auth/signup
Register to the barefoot
POST
/auth/login
Login to barefoot after email confirmation
POST
/auth/logout
Logout from barefoot
Method
EndPoint
Enable a user:
POST
/auth/reset
Request for password reset
PATCH
/users/editprofile
Edit user profile
Method
EndPoint
Enable a user:
POST
/host
Add a verified host (Super admin)
{
accommodation_name: "myAccommodation",
description: "This is my accommodation" ,
location: "Kigali",
images: "image upload",
}
Method
EndPoint
Enable a user:
POST
/accommodations
Add an accommodation (Travel Admins / Verified Host)
GET
/accommodations
Get a list of all the accommodations
GET
/accommodations/:id
Get a specific accommodation
POST
/accommodations/:id/rooms
Add a room to a given accommodation (Travel admins/ Hosts)
GET
/accommodations/:id/rooms
get a list of all rooms in the specific accommodation
GET
/accommodations/:id/rooms/:id
get a specific room
POST
/accommodations/:id/like
Like a specific accommodation
PUT
/accommodations/:id/unlike
Unlike a specific accommodation
POST
/accommodations/:id/feedback
Provide feedback to a specific accommodation
{
request_type: "ReturnTrip",
location_id: 1,
departure_date: "2020-09-25",
destinations: [
{ "destination_id" : 2 , "accomodation_id" : 1 , "room_id" : 1 , "check_in" : " 2020-09-25" , "check_out" : " 2020-09-26" },
{ "destination_id" : 3 , "accomodation_id" : 2 , "room_id" : 2 , "check_in" : " 2020-09-27" , "check_out" : " 2020-09-28" }
],
reason: "Reason for the request",
return_date: "2020-10-25"
}
Method
EndPoint
Enable a user:
POST
/requests
Make a trip request
PATCH
/request/:id
Edit a trip request
POST
/request/:id/comment
Comment on a request
GET
/requests/:id/approve
Approve a trip request (Manager)
GET
/requests/:id/reject
Reject a trip request (Manager)
GET
/requests?{query params}
Reject a trip request (Manager)
This software is published by The Technites Dev Team
under the MIT licence .
Paul Otieno -TTL || Fred Mucyo || Didas Mbalanya || Jordy Bastien || Amily Kassim || Titus Thumbi