Taikai

Is an open job board API

This project is built with NodeJs(ES6), Express and a sprinkle of other supporting cases. see technologies section for more details.

Setup

- git clone https://github.com/vic3king/taikai-project.git
- cd taikai-project && npm install
- create a .env file using details provided in the .env.example
- after that run npm run migrate and npm run seed
- npm run start:dev to launch development server and access endpoints e.g [localhost:3000/v1](http://127.0.0.1:3000)

Test

To run tests, run the command npm run test

Hosted api can be found here click to view

API Endpoints

Request End Point Action
POST / Welcome screen
POST /v1/users/create/ Creates a user and subscribes them for notifications
POST /v1/users/toggle-subscription With the right parameters it subscribes and unsubscribes an existing user
POST /v1/jobs Create a new job opening
GET /v1/jobs Get all jobs(can return based on active params)
GET /v1/jobs/search Search by a skill title, location address or job title. e.g ?filter=CSS
PATCH /v1/jobs/:jobId Update properties of a job
DELETE /v1/jobs/:jobId Deletes a job

Entity Relationship diagram

Schema Diagram can be found here click to view

Technologies

Backend

  • NodeJS is a JavaScript runtime built on Chrome's V8 JavaScript engine
  • Express JS A minimalist web framework
  • Postgres The World's Most Advanced Open Source Relational Database.
  • SequelizeOrm Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. It features solid transaction support, relations, eager and lazy loading, read replication and more.
  • Jest Jest is a delightful JavaScript Testing Framework with a focus on simplicity.
  • Supertest SuperAgent driven library for testing HTTP servers
  • BullJs The fastest, most reliable, Redis-based queue for Node. Carefully written for rock solid stability and atomicity.

Linter(s)

  • ESLint provides a pluggable linting utility for JavaScript.
  • Prettier Prettier is an opinionated code formatter with support for Javascript

Style Guide

  • Airbnb - Airbnb maintains a very popular JavaScript Style Guide

Compiler

  • Babel A JavaScript compiler for converting codes written in ES6 or JSX to ES5 that is supported by many browsers

Authors

  • Akaniru Victory - Initial work - Vic3King