Заняття 1. Основи Node.js
- Установка Node, NPM, Yarn;
- Налаштування оточення, редактора, інструменти для розробки й налагодження;
- Робота з консоллю (терміналом);
- Організація git-репозиторію;
- Ініціалізація проекту;
- Hello World!
- Огляд методів deployment.
Заняття 2. Пакетні менеджери
- Пакетні менеджери NPM, Yarn;
- Структура пакета NPM json;
- Глобальні модулі;
- Модуль util та успадкування;
- Модуль console;
- NPM скрипти;
- Установка й використання пакетів;
- Node Version Manager.
Заняття 3. Оптимізація ресурсів
- Препроцесінг;
- Основи Sass;
- Змінні;
- Вкладення;
- Фрагментування;
- Імпорт;
- Міксини (домішки);
- Успадкування;
- Математичні оператори;
- Компіляція Sass у CSS;
- Оптимізація всіх ресурсів (CSS, JS, шрифти й зображення).
Заняття 4. Вбудовані модулі
- Організація додатка;
- Вбудовані модулі http, path, fs, events;
- JS-процес;
- Модуль HTTP;
- Запити до зовнішніх API;
- GET-запити;
- POST- запити;
- Події, EventEmitter.
Заняття 5. Сервер на Node.js
- Створення сервера на Node.JS;
- Збереження даних у глобальній змінній;
- Збереження даних у файлі;
- Nodemon;
- Тестування з використанням mocha, supertest.
Заняття 6. Gulp
- Установка Babel і Gulp;
- Організація gulpfile.js;
- Початкова збірка стилів;
- Інкрементальна збірка, watch;
- Автоперезавантаження браузера: browser-sync;
- Gulp для запуску завдань;
- Типи завдань gulp, написання своїх завдань;
- Обробка помилок;
- Запуск сервера, завантаження фікстур і тестування через gulp.
Заняття 7. Перезбірка Bootstrap
- Структура проекту;
- js;
- bootstrap-sass;
- src і dist;
- Fonts Task;
- Sass Task;
- Default Task;
- Watch Task;
- Збірка Bootstrap;
- Власні CSS стилі;
- Перекриття змінних.
Заняття 8. Організація коду й новий синтаксис ES6
- MV*-шаблони проектування;
- Архітектура HMVC;
- Babel, Файл .babelrc;
- Const;
- Let;
- Debugging;
- Rest & Spread Operators;
- Arrow Functions;
- ..of;
- Maps;
- Sets.
Заняття 9. ООП в Javascript
- Інкапсуляція;
- Поліморфізм;
- Успадкування;
- Класи в Javascript;
- Конструктори в Javacript;
- Змінна this;
- Методи класу;
- Класи в ES6.
Заняття 10. Модулі
- Синтаксис модулів ES6;
- Модуль browserify;
- Модуль require.js;
- Загальний код в common.js;
- Модуль harmony;
- ESLint і Mocha;
- Тестування стилів за допомогою ESLint і Mocha.
Заняття 11. Створення Web Server за допомогою Express.js
- Основи Express.js;
- Рендерінг HTML;
- Шаблони Jade;
- Маршрутизація;
- Middleware;
- Веб-сервіси, робота з помилками.
Заняття 12. Потоки в Node.js
- Потоки даних в Node.js, fs.ReadStream;
- Метод pipe;
- Работа з потоками;
- Вбудовані потоки;
- Читання й запис файлів у Node.js;
- Клієнт-серверний RPC.
Заняття 13. AJAX
- Робота з протоколом HTTP (ajax, jsonp, cors);
- Формат даних JSON;
- Javascript AJAX;
- Jquery AJAX;
- Обробка помилок;
- Асинхронний try..catch.
Заняття 14. Асинхронний код
- Асинхронність через callback’и, модуль async;
- Promises;
- Iterators;
- Generators.
Заняття 15. Робота з базою даних
- Робота з базою даних: запити, схеми, валідація, плагіни і middleware;
- База MongoDB;
- Об’єктно-орієнтована робота з MongoDB через Mongoose;
- Сесії, відстеження відвідувачів;
- Аутентифікація;
- Авторизація з Passport.JS;
- Модель користувача, реєстрація;
- Сесії з Node.js;
- CSRF-захист від злому для форм і AJAX.