A simple CRUD API for a Product Catalog using an in-memory database underneath. Fastify framework is used in the project.
- Task can be implemented in JavaScript or TypeScript
- Use Fastify as the web framework
- Only fastify, @fastify/_ plugins, nodemon, dotenv, cross-env, typescript, ts-node, ts-node-dev, tsx, zod and zod-related linter and its plugins, bundler and its plugins and loaders, formatter and its plugins, uuid, @types/_ as well as libraries used for testing are allowed
- Use 24.x.x version (24.10.0 or upper) of Node.js
- Prefer asynchronous API whenever possible
-
Clone this repository
git clone https://github.com/zhannach/crud-api.git cd crud-api -
Checkout development branch
git checkout development
-
Install dependencies
npm install
-
Create .env file with variables
-
Run the server
In dev mode:
npm run start:dev
In prod mode:
npm run start:prod
-
Check the implemented API endpoints (e.g. Postman)
- -95% of total task score Any external tools except fastify, @fastify/_ plugins, nodemon, dotenv, cross-env, typescript, ts-node, ts-node-dev, tsx, zod and zod-related linter and its plugins, bundler and its plugins, formatter and its plugins, uuid, @types/_ as well as libraries used for testing
- -30% of total task score Commits after deadline (except commits that affect only Readme.md, .gitignore, etc.)
- -20 Missing PR or its description is incorrect
- -20 No separate development branch
- -20 Less than 3 commits in the development branch, not including commits that make changes only to Readme.md or similar files (tsconfig.json, .gitignore, .prettierrc.json, etc.)
- -5 The .env file is present in the repository (should be .env.example instead)