Giter Club home page Giter Club logo

node-test-task's Introduction

Node.js test task

Quick start with docker

chmod +x start.sh && ./start.sh

This will build server docker images and run containers:

Also it run client cli app. To test command run car in your terminal.

Instead of local mongo we can use mongo atlas. Just set MONGO_URL in .env file.

In order to use system node.js, run backend and client separately in dev mode:

Backend

Installation

npm install

Start dev server

npm run dev

Test connection

GET http://localhost:8000/api/cars

Client

Installation

  • cd client
  • npm install

Run dev mode

npm run dev

In order to use cli command (car) directly from the terminal install it globally

  • npm install -g .

Now you can use the cli command car from the terminal or run manually node ./dist/index.js If you get error with permissions permission denied: car try to run chmod +x ./dist/index.js

Commands

  • car --help - show help
  • car --version - show version
  • car list - list all cars, -s, --sort <field> - sort by field
  • car add - add new car
  • car delete <id> - delete car by id

Task requirements

Разработать клиент-серверное решение с использованием typescript и node.js для хранения и управления базой данных автомобилей различных брендов.

Решение должно состоять из двух приложений: серверного и клиентского. В приложениях должны быть использованы следующие технологии:

Серверное приложение:

  1. Node.JS
  2. TypeScript
  3. Express или любой express-совместимый web-сервер
  4. REST API
  5. Методы, которые позволяют добавлять автомобили, удалять и получать список с сортировкой. Опубликовать эти методы в REST API

6А. Информацию об автомобилях хранить в виде JSON файла на диске. Учесть необходимость защиты от одновременной записи файла при запросах к REST API

6Б. Альтернатива п.6А, при выборе будет дополнительным плюсом кандидату: БД MongoDB для персистентного хранения информации об автомобилях. В качестве сервера MongoDB выбрать любой на своё усмотрение, можно публичный MongoDB Atlas

Клиентское приложение:

  1. Node.JS
  2. TypeScript
  3. Интерпретатор командной строки. В параметрах обязательно должны быть действие и аргументы этого действия в любом формате.
  4. При запуске из командной строки с параметрами нужно выполнять подключение к Серверу и выполнять REST API операции.
  5. Данные, полученные от Сервера выводить в консоль.

Примерная структура "Автомобиль":

  • Бренд
  • Название
  • Год производства
  • Цена
  • любые дополнительные поля, которые нужны для решения задачи

Demo

Demo

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.