Giter VIP home page Giter VIP logo

assessment-api's Introduction


Getting started

Installation

Clone the repository

git clone https://github.com/laurence702/cloudfift-assessment-api.git

Switch to the repo folder

cd cloudfift-assessment-api

Install dependencies

npm install
npm install -f (if on Node v 16 and having issues)

Copy config file and set JsonWebToken secret key

- Please type the below in your terminal from project directory
cp src/config.ts.example src/config.ts

Database

The assessment api codebase contains examples of two different database abstractions, namely TypeORM and Prisma dependending on what you prefer


TypeORM

Create a new mysql database with the name assessmentapi
(or the name you specified in the ormconfig.json)

Copy TypeORM config example file for database settings

cp ormconfig.json.example

Set mysql database settings in ormconfig.json

{
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "your-mysql-password",
  "database": "assessmentapi",
  "entities": ["src/**/**.entity{.ts,.js}"],
  "synchronize": true
}

Start local mysql server and create new database 'assessmentapi'

On application start, tables for all entities will be created in our case, assessment, questions, users


Prisma

To run the example with Prisma checkout branch prisma, remove the node_modules and run npm install

Create a new mysql database with the name assessmentapi (or the name you specified in prisma/.env)

Copy prisma config example file for database settings

cp prisma/.env.example prisma/.env

Set mysql database settings in prisma/.env

DATABASE_URL="mysql://USER:PASSWORD@HOST:PORT/DATABASE"

To create all tables in the new database make the database migration from the prisma schema defined in prisma/schema.prisma

npx prisma migrate save --experimental
npx prisma migrate up --experimental

Now generate the prisma client from the migrated database with the following command

npx prisma generate

NPM scripts

  • npm start - Start application
  • npm run start:watch - Start application in watch mode
  • npm run test - run Jest test runner
  • npm run start:prod - Build application

Start application

  • npm start
  • create a user using this json structure
  • Test api with http://localhost:3000/api/assessment using postman, insomnia, or whatever api test tool you like

Authentication

This applications uses JSON Web Token (JWT) to handle authentication. The token is passed with each request using the Authorization header with Token scheme. The JWT authentication middleware handles the validation and authentication of the token. Please check the following sources to learn more about JWT.


Swagger API docs

Visit /docs to see swagger documentation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.