/__online_quiz_api

Online Quiz Api - NestJs backend starter package

Primary LanguageTypeScriptMIT LicenseMIT

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Description

Online Quiz-API - backend starter package

  • July 25, 2021

Used Tech's

  • Nest JS
  • MongoDb
  • JWT
  • Bcrypt
  • Class Validators
  • Swagger Api Docs
  • Faker
  • EsLint
  • Prettier etc

Installation

Linux:
$ sudo apt install redis-server

Windows:
$ https://github.com/microsoftarchive/redis/releases

Package:
$ yarn install
or
$ npm i

Before Running the app #1

# run seeder
$ yarn seeder:dev
or
$ npm run seeder:dev

# production mode
$ yarn seeder:prod
or
$ npm run seeder:prod

Before Running the app #2 (To Generate Fake Data)

# run faker
$ yarn faker:dev
or
$ npm run faker:dev

# production mode
$ yarn faker:prod
or
$ npm run faker:prod

Running the app

# development mode
$ yarn start:dev
or
$ npm run start:dev

# production mode
$ yarn start:prod
or
$ npm run start:prod

Users

# test setter
user: mma.rifat66@gmail.com
password: 123456
isRemembered: 1 or 0

# test taker
user: alamin@gmail.com
password: 123456
isRemembered: 1 or 0

API Features

=> Auth

  • Authentication using JWT
  • Registration of for only test takers

=> User Module (Test Setter Guard)

  • Paginated User List
  • New User Create (Both setter and taker)
  • User Update
  • User Delete (soft)
  • Get User By ID

=> Role Module

  • Get All Roles
  • Get Role By ID

=> Category Module (Test Setter Guard)

  • Get All Catgories
  • New Category Create
  • Update Category
  • Delete Category (soft)
  • Get Category By ID

=> Question Module (Test Setter Guard)

  • Get Random Question By Limit
  • Get Random Question By Limit By Category ID
  • New Question Create
  • Update Question
  • Delete Question (soft)
  • Get Question By ID

=> Quiz Test Module (Test Setter Guard)

  • Get Paginated Tests List
  • New Quiz-Test Create
  • Update Quiz-Test
  • Delete Quiz-Test (soft)
  • Get Quiz-Test By ID

=> User Quiz Test Module (Both Test Taker and Setter Guard)

  • Attend Quiz-Test one time for each test by user ID
  • Get Test Result by Test ID and User ID

API Documentations

Please Refer to the any of the following url after running the app using previous instruction.

  • Docs in localhost
    or
  • Docs in 127.0.0.1

Test (Not Implemented)

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.

Stay in touch

License

Nest is MIT licensed.