GithubHelp home page GithubHelp logo

sergey-ubogov / javascript-task-9 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from urfu-2016/javascript-task-9

0.0 1.0 0.0 26 KB

Задача «Просмотрщик задач»

JavaScript 100.00%

javascript-task-9's Introduction

Задача «Просмотрщик задач»

Перед выполнением задания внимательно прочитайте:

Основное задание

Мы очень хотим, чтобы код вы написали сами, а не пользовались внешними библиотеками.

Настоящие разработчики редко пользуются web-интерфейсами и предпочитают командную строку.
Даже погоду и текущую фазу луны смотрят в окне терминала (смотри картинку внизу).

Предлагаем вам последовать за хорошей традицией
и написать небольшой модуль для получения информации о задачах курса.

Для решения задачи вам понадобится Github API.

Для безопасного взаимодействия с ним необходимо получить авторизационный token
и положить его в файл token.txt (исключение в .gitignore мы уже добавили).

Для выполения запросов к API необходимо брать токен из файла,
и ни в коем случае не оставлять его где-либо в коде!

Обязательно оберните чтение токена в try/catch – для тестов он не нужен и может быть пустым.

И так, предлагаем для начала реализовать пару полезных функций.

Функция getList

Принимает на вход категорию задачи: demo, javascript или markup.
А на выходе возвращает список задач этой категории с названием и описанием:

javascript-task-1: Задача «XXL»
javascript-task-2: Задача «Телефонная книга»
javascript-task-3: Задача «0b11 друзей Оушена»
javascript-task-4: Задача «Картофельная вечеринка Билли»
...

Необходимый интерфейс возьмите из следующего раздела документации:

Функция loadOne

Принимает на вход название репозитория. Например, javascript-task-1.
А на выходе возвращает объект с информацией:

{
    name: 'javascript-task-1', // Название репозитория
    description: 'Задача «XXL»', // Описание
    markdown: '# Задача «XXL» ...' // И markdown из README.md
}

Необходимые интерфейсы возьмите из следующих разделов документации:

Условия и ограничения

  • Можно пользоваться только встроенными модулями Node.js
    и своим модулем flow из предыдущей задачи
    (по возможности установите его средствами npm, используя git URL).
  • Можно использовать только рекомендованные в тексте задачи интерфейсы GitHub API.
    Любые другие будут блокироваться в тестах.
  • Выполнение запросов к API обязательно изолируйте в отдельный модуль.
  • А так же обязательно обрабатывайте различные ошибки.
    Например, неудачное сетевое соединение до API.

Примеры с подробными комментариями можно традиционно найти в index.js и в тестах.

Дополнительное задание

Перед выполнением внимательно прочитайте про особенности

Очень круто, если вместе с markdown разметкой текста задачи,
вы будете возвращать и html представление в отдельном поле:

{
    name: 'javascript-task-1',
    description: 'Задача «XXL»',
    markdown: '# Задача «XXL» ...',
    html: '<h1>Задача «XXL»</h1> ...'
}

Интерфейс для этого описан в разделе Render a Markdown document in raw mode

Пример с подробными комментариями можно найти в index.js и в тестах.

javascript-task-9's People

Contributors

gogoleff avatar sergey-ubogov avatar

Watchers

 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.