Git Product home page Git Product logo

js-course-2017's People

Contributors

ahrrhy avatar andreyvaloven avatar baltazor avatar bodjasg1 avatar everett-young avatar gavukaalexandr avatar holmatro90 avatar ivanbevza avatar kotyulia avatar kurkov1990 avatar lavrenchukvladyslav avatar leybal avatar m-to-codding avatar maksim248 avatar mariiazolotar avatar medvedenko96 avatar mzabolotnev avatar nikulinn avatar olga-tsarenko avatar olgadobrodii avatar phantom1723 avatar powerbot15 avatar qmadmanp avatar rpanteleychuk avatar smithua avatar svmak avatar vadimmir avatar vitaliilynnyk avatar vitaliyrdk avatar vvaravva avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

js-course-2017's Issues

Node.js Homework #4

Створити MongoDB базу даних. Створити за допомогою Mongoose модель даних нобелівських лауреатів. Поля з ім'ям мають бути обов'язковими до заповнення. Імпортувати дані про нобелівських лауреатів з домашньої роботи #2. Реалізувати вибірку на фротненд даних з MongoDB бази.

Lecture 4 Homework

Задача 1 (обязательная)

["first", "second", "third", "fourth", "masters academy"]

На вход приходит любой массив строк, который может содержать любой символ. В каждом елементе массива нужно сравнить количество букв "m" и "a". Метод должен вернуть масив чисел 0 и 1 и не должен учитывать регистр букв.

  • 0 - если не равное кол-во "m" и "a"
  • 1 - если равное кол-во "m" и "a"
  • 1 - если нет "m" и "a"

P.S - Старайтесь по максимуму использовать пройденный материал.

дополнительно:

*попробуйте решить задачу несколькими способами

Задача 2 (не обязательная)

Алгоритм Луна

описание алгоритма Луна на википедии

Задача:

Реализовать функцию проверки валидности номера кредитной карточки используя алгорим Луна.

Требования:

  1. Функция должна возвращать

true - номер карточки валидный,
false - номер карточки невалидный,
null - ошибка входных данных

  1. Алгоритм должен валидировать, как номера с четным количеством символов, так и с нечетным.

  2. Номер должен передаваться строкой и может содержать пробелы или другие разделительные символы (.,/'":;-=+), это не должно вызывать ошибку в работе программы.

  3. Однако, если строка содержит символы отличные от разделительных и цифр, должно быть выведено сообщение об ошибке, и функция должна вернуть null.

В помощь:

Генератор номеров
Для проверки валидности номера можно использовать какой-нибудь онлайн сервис например

Project ideas

  1. Chat app - a standard project that can be done in lots of ways
  2. Imageboard/Forum - Create a forum for you and your buddies to post, administer and share thoughts and ideas.
  3. A simple CMS (or blog) engine
  4. AirBnB project - a place to upload the description of something, with photos, and a map. Also a view to display it.
  5. Tinder project - a "swipe to decide" app
  6. Page Scraper - Create an application which connects to a site and pulls out all links, or images, and saves them to a list. Optional: Organize the indexed content and don’t allow duplicates. Have it put the results into an easily searchable index file. e.g. references from a food blog.
  7. Quiz Maker - Make an application which takes various questions from a file, picked randomly, and puts together a quiz for students. Each quiz can be different and then reads a key to grade the quizzes.
  8. GIF Creator A program that puts together multiple images (PNGs, JPGs, TIFFs) to make a smooth GIF that can be exported. Optional: Make the program convert small video files to GIFs as well.
  9. Calendar app
  10. Contacts manager
  11. File sharing app
  12. Instagram project
  13. Note taking app
  14. Recipes app
  15. Twitter client

FE Lecture 9 Home Work

Полезные ссылки:
https://angular.io/guide/cheatsheet
https://angular.io/guide/component-interaction

уровень нормальный:
Задача сгенирировать angular проект используя angular-cli и реализовать отображение todo-list'а в angular
таски со статусом DECLINED должны быть скрыты.
По клику менять статус по цепочке WAITING -> IN_THE_PROCESS -> COMPLETED

уровень усложненный
компонента представления должна генерировать события типа:
смена статуса, добавление в избранное, отмена (установка статуса DECLINE отдельной кнопкой)
для реализации этого понадобиться декоратор Output пример ниже

Дизайн полностью на ваше усмотрение.

 const tasks = [
    {
      id: 17,
      state: 'COMPLETED',
      description: 'Learn es-6',
      favorite: true,
      dueDate: 1514757600000
    },
    {
      id: 18,
      state: 'IN_THE_PROCESS',
      description: 'Learn typescript',
      favorite: false,
      dueDate: 1514757600000
    },
    {
      id: 19,
      state: 'WAITING',
      description: 'Learn redux',
      favorite: false
    },
    {
      id: 20,
      state: 'DECLINED',
      description: 'Learn Japanese',
      favorite: false
    },
    {
      id: 21,
      state: 'IN_THE_PROCESS',
      description: 'Learn angular',
      favorite: true,
      dueDate: 1519855200000
    }
  ];

Пример использования Output:

export class InternalComponent {
  @Output() action = new EventEmitter();
/// action у нас будет сущностью типа EventEmitter, который в свою очередь наследуется от Subject из rx.js

  constructor() {
    this.action.emit({type: 'STATUS_CHANGED', data: 42});
  }
  
outer-component.html
<internal-component (action)="handleAction($event)"></internal-component>
// мы устанавливаем метод handleAction как обработчик события произошедшего во внутренней компоненте

outer-component.ts
export class OuterComponent {
  ...
  handleAction(event) {
    console.log(event);
    // event === {type: 'STATUS_CHANGED', data: 42}
  }
  ...
}

Node JS Homework 1

Скопировать себе в папку с домашкой https://github.com/MastersAcademy/js-course-2017/tree/master/lectures_node/lecture2_express. запустить там npm install

Сервер запускается node server.js

Задание: реализовать сортировку данных по полям lastName и bornCountry с направлениями поиска (asc, desc) и пагинацией по 50 элементов. Поля с фильтрами в запросе: sort , dir, start, count. Примеры запросов, которые будет приходить (первый запрос приходит без сортировок)

GET /items?start=0&count=50
GET /items?start=0&count=50&sort="lastName"&dir="asc"
GET /items?start=0&count=50&sort="lastName"&dir="desc"
GET /items?start=50&count=50&sort="lastName"&dir="desc"
GET /items?start=100&count=50&sort="lastName"&dir="desc"
GET /items?start=0&count=50&sort="bornCountry"&dir="asc"

Homework 1

  1. Зарегистрироваться в github
  2. Форкнуть репозиторий
  3. Склонировать себе репозиторий
  4. Внутри папки homeworks создать папку по шаблону (name.surname_githubusername)
  5. В этой папке создать папку для первой домашки - homework_1
    5.1 Установить nodejs последней версии от v6.11.4 и выше
    5.2 Проверить версию npm, она должна быть выше 5.0.0
  6. Создать README.md в папке homework_1, в него записать версии с консоли node -v и npm --version
  7. В папке homework_1 выполнить в консоле npm init
  8. Сделать pull request в главный репозиторий Masters Academy
  9. Добавиться в Gitter чат. Там будет вся информация по занятиям и будет проходить все обсуждения по курсу

Что бы мы без проблем приняли вашу работу:

  1. Для установки и найстройки Git у себя на компьютере пройдите весь 1 раздел
  2. Создавайте папки, файлы у себя на компьютере, а не через github веб интерфейс

Useful links

FE Lecture 11 Homework

Сгенерировать новый проект и написать несколько простых сервисов:
(какой-нибудь хелпер/логгер и сервис с запросами к апишке используя HttpClient)

В качестве апишки можно использовать fake api или любую другую на ваше усмотрение.

Lecture 5 Homework

Секундомер

Задача минимальной сложности (обязательная)

Сделать секундомер в терминале. После запуска программа сразу начинает считать время работы начиная с нуля и выводить в терминал значение в формате:

14:59.999

ВАЖНО. Программа не должна сильно загружать компьютер и секундомер должен отображать верное значение.

Задача средней сложности

Тот же секундомер, но добавить возможность сохранять тукущее значение по нажатию на кнопку.
Выводить список всех сохранений, если они есть с их порядковым номером:

14:59.999
1. 3:01.239
2. 9:17.358

Задача максимальной сложности

Все предыдущее, но сделать возможность управлять с клавиатуры секундомером - старт, стоп, пауза, сброс, выход ;).

Lecture 2 - Инструметы для javascript разработки

Git GUI clients:

Win/macOS
https://www.sourcetreeapp.com/
https://desktop.github.com/
Linux
http://www.syntevo.com/smartgit/
macOS
https://www.git-tower.com/mac/

Git cheatsheet:

http://ohshitgit.com/

Crossbrowser testing:

https://codepen.io/
https://dsh.re/aecb4

Terminals:

Win/Linux/macOS
https://hyper.is/
Linux
http://guake-project.org/
macOS
https://www.iterm2.com/

Text editors/IDE:

https://atom.io/
https://code.visualstudio.com/
https://www.jetbrains.com/webstorm/
https://www.sublimetext.com/

Linters:

CSS/SCSS:
https://stylelint.io/
JS
https://eslint.org/

Code Formater
https://github.com/prettier/prettier
Run linters on only staged files
https://github.com/okonet/lint-staged
Git hooks
https://github.com/typicode/husky

Editorconfig:

http://editorconfig.org/#example-file

Example of code guide:

AirBnb
https://github.com/airbnb/javascript

For testing your code on Push to GitHub:

https://travis-ci.org/
https://circleci.com

Example setup CircleCI
https://www.youtube.com/watch?v=ymPOI4gWQFY
https://www.youtube.com/watch?v=7VxBn_ZgOek

И в заключении кому интересно слушать что происходит в мире HTML/CSS/JS, рекомендую слушать подкаст:

https://soundcloud.com/web-standards

Node.js Homework 2

За допомогою Wikipedia API дістати короткий опис та посилання на статтю на вікіпедії англійською мовою про кожного лауреата Нобелівської премії (використовуючи дані з попереднього завдання).
Рекомендовано виконувати запити один раз відразу після запуску програми, зберігаючи отримані результати в додаткових полях існуючої структури даних.
Для діставання необхідної інформації треба використати параметр action=opensearch. Також, варто звернути увагу на підтримку редіректів на статтю, оскільки сторінка про лауреата не завжди точно співпадає з його повним ім'ям. Крім цього, для полегшення обробки, визначити формат отримання - json. Для кожного лауреата варто виконувати лише один запит.
На фронтенд збережені поля віддавати додатково разом з іншими з об'єкту лауреата, використавши два поля: info та url.

Lecture 8 Home Work

Задание:

  • Создать драм машину 3x3 ячейки (можно и больше)
  • Добавить стилей по вкусу (пример https://dsh.re/2c47d)
  • Сделать респонсив для mobile, tablet, desktop
  • Каждой ячейке добавить событие на нажатие кнопки с клавиатуры (если получится то и по клику мышкой на ячейку)
  • По нажатию должен воспроизводится звук и меняться цвет ячейки
  • По удерживанию нажатой кнопки, звук должен продолжать играть
  • Добавить название кнопки, которую нужно нажать (Q,W,E,A...)
  • Добавить имена кнопкам (b1, b2, ... b9) на след строчке

Доп материал:

Звуки: download

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.