Giter Club home page Giter Club logo

express-dynamodb-redis's Introduction

Coding Assignment [Express, DynamoDB, Redis]

Description

Create a Restful API for CRUD application using expressJs framework that has following features.

  • Logged in users can create, delete and update their article.
  • Public user can read the article.

It should show the following implementation:

  • Run in multi thread of CPU.
  • Caching and cache invalidation using Redis.
  • Implement Oauth with JWT.
  • Use local dynamodb.
  • Use ES6 and async await.

Notes:

  • Should share code in github with proper commits history.
  • Should have a readme.md file with instruction to run in other computer.
  • Should share a migration script for dynamodb such that the tables can be created in other hosts.

Development Setup

  1. Setup Node Server
  2. Setup React App

Deployment Setup with Docker (Development)

  1. Clone Repository
  2. Configure .env in app & server.
  3. Build and run application with docker-compose up.

image

image

  1. Change the permissions of docker/dynamodb volume. eg: chmod -R 777 docker/dynamodb.
  2. Manually run the migration with:
docker exec -it <codeassignment:server container id> sh
npm run migrate --dir=src

Deployment Setup with Docker (Production)

  1. Clone Repository
  2. Configure .env in app & server.
  3. Build and run application with docker-compose -f ./docker-compose.prod.yml up.

image

image

  1. Change the permissions of docker/dynamodb volume. eg: chmod -R 777 docker/dynamodb.
  2. Manually run the migration with:
docker exec -it <codeassignment:server container id> sh
npm run migrate --dir=dist

Deployment Setup with Docker (Docker Hub)

https://hub.docker.com/r/kritishdhaubanjar/codeassignment/tags

1.docker-compose -f ./docker-compose.hub.yml up.
2. Change the permissions of docker/dynamodb volume. eg: chmod -R 777 docker/dynamodb.
3. Manually run the migration with:

docker exec -it <codeassignment:server container id> sh
npm run migrate --dir=dist

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.