🚗 An example project for a cars marketplace project.
This is a pure ESM project intended to be used with the latest Active LTS release of Node.js.
- Copy
.env.template
as.env
and fill the required variables. - run
yarn build
- run
yarn start
start
- start the server.dev
- start and restart the server on file changes.clean
- remove coverage data, Jest cache and transpiled files.prebuild
- lint source files and tests before building.build
- transpile TypeScript to ES6.build:watch
- interactive watch mode to automatically transpile source files.lint
- lint source files and tests.test
- run tests.test:watch
- interactive watch mode to automatically re-run tests.
The project can be started using docker-compose
docker-compose up
Assuming the server is started with PORT=3000
. The following REST APIs are exposed:
-
POST
http://localhost:3000/api/v1/cars
Create a car.
Accepting body with shape:
{ "brand": string, "model": string, "makeYear": number, "color": string, "price": number }
-
GET
http://localhost:3000/api/v1/cars?offset=0&limit=100
Fetch all cars with pagination support. Where offset and limit are optional query params.
-
GET
http://localhost:3000/api/v1/cars/:carId
Fetch a single car with
cardId
. WherecardId
is a valid mongo id. -
PUT
http://localhost:3000/api/v1/cars/:carId
Partial update a single car with
cardId
. WherecardId
is a valid mongo id and accepting a body with at least one of these properties:{ "brand": string, "model": string, "makeYear": number, "color": string, "price": number }
-
DELETE
http://localhost:3000/api/v1/cars/:carId
Delete a single car with
cardId
. WherecardId
is a valid mongo id.
This project is started from node-typescript-boilerplate template.
Licensed under the APLv2. See the LICENSE file for details.