/ds

ReactJS // MUI // NodeJS // ExpessJS // MongoDB // Docker // Docker Compose // Nginx

Primary LanguageJavaScript

Приложение приема платежей

Команды

Развертывание:

npm i
docker-compose build
docker-compose up
# http://localhost:3000/

Прочие команды:

# Билд образов
docker-compose build

# Запуск контейнеров
docker-compose up

# Проверка API
curl -X POST http://localhost:3000/api/payments -H 'Content-Type: application/json' -d '{"CardNumber": "0000000000000000", "ExpDate": "04/2022", "Cvv": "123", "Amount": 100}'

# Проверка коллекции
curl http://localhost:3000/api/payments

Стек

ReactJS // MUI // NodeJS // ExpessJS // MongoDB // Docker // Nginx

СТРУКТУРА DOCKER:
◆ ─ Volume
● ─ Bundle
▲ ─ Container

data-volume ◆ ────  db ▲ ─┐
        api ● ────    api ▲ ──┐
     client ● ──── client ▲ ──┴── nginx ▲

Задачи

  • Приложение должно выводить форму с полями:

    • Card Number
    • Expiration Date
    • CVV
    • Amount
  • Валидация:

    • Card Number - (только цифры, длина значения 16)
    • Expiration Date (формат даты MM/YYYY)
    • CVV (только цифры, длина значения 3)
    • Amount (только цифры)
  • Кнопка "оплатить":

    • должна быть активно если все поля введены корректно
    • при нажатии идет запрос на сервер с данными формы в формате JSON
  • Сервер: (expess/featherjs)

    • должен сохранять данные в mongoDB

    • при успешном сохранении должнен возвращать ответ ID записи и Amount в формате JSON пример запроса

      {
        "CardNumber": "0000000000000000",
        "ExpDate": "04/2022",
        "Cvv": "123",
        "Amount": 100
      }

      пример ответа

      {
        "RequestId": "61b248040041bc64b411a691",
        "Amount": 100
      }

      (edited)

Ссылки