Giter Site home page Giter Site logo

bjs-diplom's Introduction

Дипломное задание к курсу «Основы JavaScript»

Задание

Вы помогаете крипто-стартапу сделать сайт-биржу, на котором можно обменивать валюту на токены этой компании (они называются "Неткоины") и передавать токены между пользователям. Ваша задача состоит в том, чтобы написать основную логику сайта.

Программа, которую требуется реализовать, состоит из двух частей:

Часть 1

Класс "Пользователь". Он должен уметь выполнять все основные функции:

  • Добавление нового пользователя

  • Авторизация

  • Добавление денег в личный кошелек

  • Конвертация валют

  • Перевод токенов другому пользователю

    Также, требуется написать функцию, которая возвращает текущий курс между валютами и "Неткоин".

    Курс меняется каждую секунду

Часть 2

Программа, которая выполняет следующий пользовательский сценарий:

  • Добавление 2-х пользователей
  • Зачисление одному из них на счет 500000 евро
  • Перевод этих денег в токены "Неткоин".
  • Передача этих токенов другому пользователю

Выполнение задания

1. Начало работы

  1. Установите NodeJS для своей операционной системы
  2. Склонируйте данный репозиторий
  3. Откройте терминал и перейдите в папку со склонированным репозиторием
  4. Выполните команду npm install
  5. Выполните команду npm i -g nodemon

Запуск сервера

  1. Чтобы запустить сервер для биржи, выполните команду npm start из терминала в папке с репозиторием. Убедитесь, что в консоли в увидели надпись App is listening on port 1337.
  2. Перейдите по ссылке и убедитесь, что видите надпись Биржа "Неткоин"
  3. В папке с проектом лежит файл ./static/main.js. Задание следует выполнять в нем.

Чтобы остановить работу сервера, нажмите комбинацию Ctrl+C в терминале. После этого все данные будут утеряны

2. Решение первой части задания

  1. В файле main.js объявите класс Profile
  2. Реализуйте методы, которые требуются в 1 части задания

Пример правильного метода:

addMoney({ currency, amount }, callback) {
        return ApiConnector.addMoney({ currency, amount }, (err, data) => {
            console.log(`Adding ${amount} of ${currency} to ${this.username}`);
            callback(err, data);
        });
    }

3. Решение второй части задания

  1. В том же файле main.js начните реализацию главной функции, которая будет выполнять пользовательский сценарий
  2. Не забудьте, что перед выполнением любых действий, кроме создания пользователя, ему необходимо авторизоваться

Пример:

function main(){
    const Ivan = new Profile({
                    username: 'ivan',
                    name: { firstName: 'Ivan', lastName: 'Chernyshev' },
                    password: 'ivanspass',
                });
    // сначала создаем и авторизуем пользователя

    // после того, как мы авторизовали пользователя, добавляем ему денег в кошелек
    Ivan.addMoney({ currency: 'RUB', amount: 100 }, (err, data) => {
        if (err) {
            console.error('Error during adding money to Ivan');
            } else {
                console.log(`Added 500000 euros to Ivan`);
        });
}

main();

Пример выводов в консоль успешно решенного задания

Пример вывода

Для облегчения задачи, можно воспользоваться классом ApiConnector, который умеет делать все необходимые запросы к API биржи. Код класса находится в файле api-connector.js

  1. Чтобы выключить приложение, остановите процесс, запущенный при помощи команды npm start нажатием комбинации клавиш Ctrl + C
  2. Перейдите по ссылке и убедитесь, что не видите надпись Биржа "Неткоин"

Исходный код дипломной работы нужно разместить на GitHub.

Как правильно задавать вопросы дипломному руководителю?

Что следует делать, чтобы все получилось:

  • Попробовать найти ответ сначала самому в интернете. Ведь, именно это скилл поиска ответов пригодится тебе на первой работе. И только после этого спрашивать дипломного руководителя
  • В одном вопросе должна быть заложена одна проблема
  • По возможности, прикреплять к вопросу скриншоты и стрелочкой показывать где не получается. Программу для этого можно скачать здесь https://app.prntscr.com/ru/
  • По возможности, задавать вопросы в комментариях к коду.
  • Начинать работу над дипломом как можно раньше! Чтобы было больше времени на правки.
  • Делать диплом по-частям, а не все сразу. Иначе, есть шанс, что нужно будет все переделывать :)

Что следует делать, чтобы ничего не получилось:

  • Писать вопросы вида “Ничего не работает. Не запускается. Всё сломалось.”
  • Откладывать диплом на потом.
  • Ждать ответ на свой вопрос моментально. Дипломные руководители - работающие разработчики, которые занимаются, кроме преподавания, своими проектами. Их время ограничено, поэтому постарайтесь задавать правильные вопросы, чтобы получать быстрые ответы!

bjs-diplom's People

Contributors

maxzarn avatar igorkamyshev avatar

Watchers

James Cloos avatar

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.