HEARIT.IO                                                

Софтуерна академия за незрящи (експериментално)

22.02.2021

Предложение за обучение

Емил Узунов

имейл: emil@hearit.io 

телефон: +359 885 121 444

бул. “Драган Цанков” 36, офис 325Б

София, 1040

Съдържание

Съдържание        1

Мотивация        1

Обхват на обучението        3

Вид апликации        3

Програмен език        3

Среда за разработване        3

Програма        4

Въведение в програмирането (продължителност три месеца)        4

Сърверно приложение или Backend ( продължителност три месеца)        5

Графично приложение или Frontend (продължителност три месеца)        5

График        6

Цена        6


Мотивация

HEARIT.IO (https://hearit.io) възникна като идея да създаде платформа за управление на умен дом за хора със зрителни увреждания в края на 2018 г.

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

Към функциите беше включено и дистанционно с което чрез гласова навигация да се изпълняват групи от функции като например:  

С това се решават следните основни проблема:

Обхвата не включваше възможността системата да се управява дистанционно през интернет, а по-скоро като помощен инструмент на място който да може да работи и без интернет свързаност.

В процеса на работата по проекта, а и благодарение на ценната информация получена в срещите ни с техническият съвет към Съюза на Слепите, решихме да опитаме да направим и уеб базиран интерфейс който с помощта на екранни четци да го направи използваем за незрящи хора.

Резултата надмина очакванията ни многократно. Получи се модерно приложение по последна дума на технологиите което е напълно съвместимо с четци на персонални компютри и мобилни телефони. При това не сме направили никакъв компромис с функционалността и потребителското преживяване както за незрящи така и за останалите потребители.

Оказа се, че в процеса на работа успяхме да създадем компактна и лесна за работа технологична среда независимо, че използваме последните достижения на софтуерната индустрия. Хубавото не е задължително да е трудно и скъпо.

Очевидно е, че няма невъзможни неща, всичко е въпрос на желание и мотивация. Контактите ни със техническият съвет допълнително наляха масло в огъня на мечтите ни а именно:

Искаме да докажем, че е възможно напълно незрящи хора да бъдат пълноценни фул-стек програмисти (включително и графичен потребителски интерфейс!!!) на най-високо професионално ниво. Като при това не става въпрос за единични случаи, а, че е възможна среда и технологична система която да го позволява.

Обхват на обучението

  1. Вид апликации

По време на обучението курсистите ще се научат да създават прогресив уеб приложения  (Progressive Web Applications) подобни на  https://hearit.io. Този тип приложения навлизат много сериозно и очакванията са, че ще заменят найтив аповете за съответните устройства (Андроид и айФон).

Онсовните предимства на прогерсив веб са:

  1. Програмен език

Ще бъде усвоен програмният език JAVASCRIPT в най-съвременния му вариант. Това е един от технологично най-доминантните езици за програмиране през последните години като ръста на приложение непрекъснато расте.

Основните предимства на  JAVASCRIPT са:

  1. Среда за разработване

Това е една от най-важните предпоставки за постигане на целите на този курс. Изборът и създаването на подходяща средата ще бъдат и началната задача в курса. В процеса на работа ще селектираме най-доброто.

Най-важното е избор на редактор.

Предложението е напълно текстовият редактор с който се работи и без мишка и е VIM (https://www.vim.org/) Има го както и под Уиндоус така и на Линукс. Освен това всички гурута на софтуерната индустрия работят с изцяло текстови редактори.

За сървърната част на  приложенията ще използваме NODEJS  (https://nodejs.org/) който е интерпретаторът на JAVASCRIPT и е приложим както под Уиндоус така и на Линукс. Той включва и базисен Уеб сървър който се използва масово.

Като мотор на нашето PWA приложение за сървър частта ще използваме Fastify (https://www.fastify.io/) уеб апликейшън фрамеворк.

Графичната част ще я разработваме с компонентната библиотека подпомагана от Гугъл Material Design (https://material.io/). Тя е най-добрата библиотека не само като дизайн и визия, но е и разработила всички препоръки на интернет консорциума за достъпност на съдъжанието WIA-ARIA (https://www.w3.org/WAI/standards-guidelines/aria/). Благодарение и на това успяхме да направим HEARIT.IO напълно съвместима с екранните четци.

Ще бъде използвана и системата за коопериране на екипи и работа с софтуерни верси  GITHUB (https://github.com/).

Ще бъде предоставен и реален сървър за работа и тестване на приложеният по време на обучението.

Програма

  1. Въведение в програмирането (продължителност три месеца)

Адаптиране и избор на среда за работа със софтуерните продукти.

Въведение в програмирането в исторически план - видове хардуерни и софтуерни платформи и езици.

JAVASCRIPT за начинаещи - история, принцип на работа, синтаксис, оператори.

Въведение в NODEJS, изработване на програмни задачи свързани с обработка на масиви от данни.

Въведение във Уеб технологиите в исторически план. 

Въведение в HTML и CSS и изработване на статична уеб страница.

Завършване с изработка на индивидуално задание.

  1. Сърверно приложение или Backend ( продължителност три месеца)

Въведение в уеб фреймуърк Fastify.

Асинхронни операции - кооперативен мулти трейдинг.

Архитектура и скалируемост на сървърните приложения.

Бази данни и начини на съхранение. NoSQL база Redis.

HTML стандарт и протокол. Версии 1.1 и 2.0, технически предпоставки за PWA.

WEBSOCKET стандарт и протокол. Примерно чат приложение.

SSE (SERVER SEND EVENT) стандарт и протокол. Актуализиране на данни без презареждане.

REST базирана архитектура.

Завършване с изработване на индивидуална задача.

  1. Графично приложение или Frontend (продължителност три месеца)

Архитектура и библиотеки на Уеб браузъра.

Асинхронна обработка на евенти.

Дизайн на уеб страници, принципа на кутийките - FLEX и GRID.

Библиотека от графични компоненти и тяхното използване - MATERAL DESIGN.

Управление на кеша и работа с сървиз воркър (service worker).

Пуш съобщения и актуализация в реално време.

Многоезично приложение и автоматичен избор на езикови настройки.

Генериране на съдържание и рендеринг на страница - методи и похвати.

Безконечен скролинг.

Вграждане на скрито съдържание в уеб страница и правенето и достъпна според препоръките на WIA-ARIA.

Завършване с дипломна разработка.

Най-добрите ще получат възможност за започване на работа в HEARIT.IO или други софтуерни фирми.      

График

Обучението ще е изцяло дистанционно като се използва платформата ZOOM. Това ще даде възможност за участници от цялата страна.

Заниманията ще се провеждат в извънработно време след 18:00 часа.

Първият етап на обучението ще е два пъти седмично по два часа.  

Първоначална група ще е до 7 човека, като часовете и дните ще бъдат уточнявани с участниците.

В хода на обучението са възможни промени с цел напасване към възможността за възприемане и работа.  

Цена

За модула “Въведение в програмирането” - безплатно, за следващите етапи ще се търси финансиране.