mastersacademy / js-course-2017 Goto Github PK
View Code? Open in Web Editor NEWРепозиторій з курсу "JavaScript" проекту Masters Academy
Home Page: https://www.facebook.com/cherkasy.masters/
License: MIT License
Репозиторій з курсу "JavaScript" проекту Masters Academy
Home Page: https://www.facebook.com/cherkasy.masters/
License: MIT License
Створити MongoDB базу даних. Створити за допомогою Mongoose модель даних нобелівських лауреатів. Поля з ім'ям мають бути обов'язковими до заповнення. Імпортувати дані про нобелівських лауреатів з домашньої роботи #2. Реалізувати вибірку на фротненд даних з MongoDB бази.
["first", "second", "third", "fourth", "masters academy"]
На вход приходит любой массив строк, который может содержать любой символ. В каждом елементе массива нужно сравнить количество букв "m" и "a". Метод должен вернуть масив чисел 0 и 1 и не должен учитывать регистр букв.
P.S - Старайтесь по максимуму использовать пройденный материал.
*попробуйте решить задачу несколькими способами
описание алгоритма Луна на википедии
Реализовать функцию проверки валидности номера кредитной карточки используя алгорим Луна.
true - номер карточки валидный,
false - номер карточки невалидный,
null - ошибка входных данных
Алгоритм должен валидировать, как номера с четным количеством символов, так и с нечетным.
Номер должен передаваться строкой и может содержать пробелы или другие разделительные символы (.,/'":;-=+), это не должно вызывать ошибку в работе программы.
Однако, если строка содержит символы отличные от разделительных и цифр, должно быть выведено сообщение об ошибке, и функция должна вернуть null.
Генератор номеров
Для проверки валидности номера можно использовать какой-нибудь онлайн сервис например
Полезные ссылки:
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}
}
...
}
Скопировать себе в папку с домашкой 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"
Что бы мы без проблем приняли вашу работу:
Useful links
Сгенерировать новый проект и написать несколько простых сервисов:
(какой-нибудь хелпер/логгер и сервис с запросами к апишке используя HttpClient)
В качестве апишки можно использовать fake api или любую другую на ваше усмотрение.
Сделать секундомер в терминале. После запуска программа сразу начинает считать время работы начиная с нуля и выводить в терминал значение в формате:
14:59.999
ВАЖНО. Программа не должна сильно загружать компьютер и секундомер должен отображать верное значение.
Тот же секундомер, но добавить возможность сохранять тукущее значение по нажатию на кнопку.
Выводить список всех сохранений, если они есть с их порядковым номером:
14:59.999
1. 3:01.239
2. 9:17.358
Все предыдущее, но сделать возможность управлять с клавиатуры секундомером - старт, стоп, пауза, сброс, выход ;).
Онлайн ресурс по написанию regex:
Онлайн курсы:
Онлайн тренировки по коду:
Win/macOS
https://www.sourcetreeapp.com/
https://desktop.github.com/
Linux
http://www.syntevo.com/smartgit/
macOS
https://www.git-tower.com/mac/
https://codepen.io/
https://dsh.re/aecb4
Win/Linux/macOS
https://hyper.is/
Linux
http://guake-project.org/
macOS
https://www.iterm2.com/
https://atom.io/
https://code.visualstudio.com/
https://www.jetbrains.com/webstorm/
https://www.sublimetext.com/
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
http://editorconfig.org/#example-file
AirBnb
https://github.com/airbnb/javascript
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
За допомогою Wikipedia API дістати короткий опис та посилання на статтю на вікіпедії англійською мовою про кожного лауреата Нобелівської премії (використовуючи дані з попереднього завдання).
Рекомендовано виконувати запити один раз відразу після запуску програми, зберігаючи отримані результати в додаткових полях існуючої структури даних.
Для діставання необхідної інформації треба використати параметр action=opensearch
. Також, варто звернути увагу на підтримку редіректів на статтю, оскільки сторінка про лауреата не завжди точно співпадає з його повним ім'ям. Крім цього, для полегшення обробки, визначити формат отримання - json. Для кожного лауреата варто виконувати лише один запит.
На фронтенд збережені поля віддавати додатково разом з іншими з об'єкту лауреата, використавши два поля: info
та url
.
Задание:
Доп материал:
Звуки: download
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.