Auto Mart is an online marketplace for automobiles of diverse makes, model or body type. With Auto Mart, users can sell their cars or buy from trusted dealerships or private sellers.
Pivotal Tracker: https://www.pivotaltracker.com/n/projects/2346137
UI: https://marusoft.github.io/Auto-Mart/UI/index.html
Heroku: https://automart-marusoft.herokuapp.com/api/v1
API documentation: https://automart15.docs.apiary.io/#
Features
Technology
Installation
Testing
API End Points
Below are the features Auto-Mart app
- User can Sign up
- User can Sign in
- User (seller) can post a car sale advertisement.
- User (buyer) can make a purchase order.
- User (buyer) can update the price of his/her purchase order.
- User (seller) can update the price of his/her posted AD.
- User (seller) can mark his/her posted AD as sold.
- User can view a specific car.
- User can view all unsold cars.
- User can view all unsold cars within a price range.
- Admin can delete a posted AD record.
- Admin can view all posted ads whether sold or unsold.
- User can reset password.
- User can add multiple pictures to a posted ad.
- User can view all cars of a specific body type.
- User can view all used unsold cars.
- User can view all new unsold cars.
- User can flag/report a posted AD as fraudulent.
- User can view all unsold cards of a specific make (manufacturer).
Modern JavaScript technologies were adopted in this project
ES2015: Also known as ES6 or ECMASCRIPT 6, is a new and widely used version of Javascript that makes it compete healthily with other languages. See here for more infromation.
NodeJS: Node.js is an open-source, cross-platform JavaScript run-time environment which allows you enjoy the features of Javascript off the web browsers and implement server-side web development. Visit here for more information.
ExressJS: This is the web application framework for Node.js Visit here for more information
Postgres Database: PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.
Codes are written in accordance with Airbnb JavaScript style guide, see here for details.
- Clone this repository into your local machine:
https://github.com/marusoft/Auto-Mart
- Navigate into the cloned repository in your machine:
cd Auto-Mart
- Install dependencies by running.
npm install
- Start the application by running
npm run start:dev
- Install postman to test all endpoints
- run test using
npm run test
HTTP VERB | ENDPOINT | FUNCTIONALITY |
---|---|---|
POST | api/v1/auth/signup | Create a user |
POST | api/v1/auth/signin | Login a user |
POST | api/v1/car | Create a car sale AD. |
GET | api/v1/car/:id | View a specific car |
DELETE | api/v1/car/:id | Admin Delete a specific car AD. |
GET | api/v1/car | Admin can view all posted ads whether sold or unsold. |
PATCH | api/v1/car/:id/status | Mark a posted car Ad as sold. |
PATCH | api/v1/car/:id/price | Update the price of a car. |
GET | api/v1/car | View all unsold cars of specific make,state * status,manufacturer, body type and price range. |
GET | api/v1/car?status=available&manufacturer=toyota | View all unsold cars of a specific make (manufacturer). |
GET | api/v1/car?status=available&state=used | View all unsold cars of a specific state(used). |
GET | api/v1/car?status=available&state=new | View all unsold cars of a specific state (new). |
GET | api/v1/car?bodyType=van | View all cars of a specific body type. |
GET | api/v1/car?status=available&minPrice=30000&maxPrice=378000000 | User can view all unsold cars within a price range. |
POST | api/v1/order | Create a purchase order |
PATCH | api/v1/order/:orderId/price | Update the price of a purchase order. |
POST | api/v1/flag | flag/report a posted AD as fraudulent. |
- Kehinde Morufudeen Alimi