People Working In Modern Office. Group Of Young Programmers Sitting At Desks Working On Computers In It Office. Team At Work. High Quality Image
Цей момент настав! Редакція Highload оголошує результати конкурсу на найкращий pet-проект.
Спершу ми зібрали 60 заявок, потім половину відібрали для голосування. Далі нам допомогли наші читачі, і так залишилися топ-20 найкращих проектів. Ми публікували історії про конкурсні кейси майже кожен день, щоб ближче познайомити вас із проектами та розробниками. Паралельно журі з розробників та інвесторів проводило оцінку.
Кожен проект, крім технічних фахівців, оцінювали:
Докладніше, хто і як оцінював кейси, можна прочитати тут. Найвища оцінка, яку може отримати кейс, – 20 балів.
Отже, нагадуємо! Найкращі проекти отримають призи від компанії Genesis : той, хто посів перше місце – Apple iPhone 12 64GB, друге місце – навушники Marshall Monitor II ANC Black, третє – набір Arduino.
Чи готові?
Підсумковий бал: 18,6
Автор – Владислав Хамбір
MedKrok: iOS-додаток для підготовки до іспитів
Що: додаток для допомоги студентам-медикам у підготовці до іспитів KРОК.
Стек : Trell, Swift, IDE Xcode. Код написано з використанням реактивної парадигми програмування (RxSwift). Програма має працювати офлайн, була прикручена БД від Realm, що вирішило проблему зі слабким інтернетом.
Монетизація: поки що ні.
Посилання на проєкт: https://apps.apple.com/ua/app/medkrok/id1515141600
Проект оцінювали:
Коментарі журі:
Дмитро Шапран, iOS Developer, Uklon: “Окремий “лайк” за освітній проект”.
Підсумковий бал: 18,5
Автор – Мар’ян Зозуля
Phoqer – маркетплейс для оренди речей
Маркетплейс для оренди речей. Проект, на думку автора, стане в нагоді не лише тим, хто часто переїжджає з місця на місце, а й тим, хто не може собі дозволити купівлю дорогої професійної техніки чи спорядження, яких потребує створення контенту чи спорту. А також тим, хто заздалегідь розуміє, що не довго користуватиметься модним гаджетом або не до кінця впевнений, що йому так уже необхідний новий пилосос.
Стек : Фронтенд на Next.js («швидкий як React, але не шкодить SEO») і TypeScript, бекенд на FastAPI («мікрофреймворк на Python, дуже гнучкий і дуже швидкий завдяки вбудованій асинхронності»), база даних Postgress та CI/CD за допомогою GitHub Actions та Do.
Монетизація: розглядається контекстна реклама, платні оголошення, комісія за контроль за проведенням угоди та здавання техніки в оренду самою платформою.
Переглянути на сторінці: http://phoqer.com/
Проект оцінювали:
Коментарі журі:
Дмитро Грищенко , Full-stack Software Engineer (JavaScript, TypeScript) в Innovecs: «Дуже амбітний проект, який на даний момент недостатньо розвинений. Є спроби проектів у цьому напрямку (найочевидніший — https://www.gup.ua ), але вони далекі від ідеалу і з ними можна змагатися. Потрібно продумати величезну кількість нюансів у бізнес-логіці для забезпечення надійності угод. Правильним рішенням є SSR , простір для SEO-розвитку проекту невичерпний. Сьогодні SEO-оптимізація контенту ще не проведено. Дуже приємний UI та UX, додаток швидкий та інтуїтивно зрозумілий».
Марк Олійник , Frontend Developer у YouScan: «Проект виглядає як готовий продукт, який давно можна їсти інвесторам. Багато деталей продумано, є мотивація, бачення, нормальний інтерфейс, інфраструктура. Бракує лише грошей та команди. Цей проект не можна навіть назвати концептом, тому що він багато в чому досяг того рівня реалізації, який виходить за межі «перевірки ідеї».
З боку товару питання лише в конкурентності і в тому, як хендлити незрозумілі ситуації, коли здана в оренду річ повертається в поганому стані або не повертається зовсім. Якщо з конкурентністю можна боротися маркетингом і хорошим націленням, то друге вирішити не так просто. Я не знаю, як урегулювати конфлікти, які виникають на цьому ґрунті, і чи має продукт цим займатися. Але таке питання у мене постало.
Що стосується архітектури проекту, то вже на цьому етапі потрібно проводити аналіз коду на предмет separation of concerns . У репозиторії все намішано до купи: і адмінка, і бек, і фронт. «Мозки» у цього різні, зони роботи теж. Також навіть якщо окремо взяти кожну частину, то вже багато місць, де лізе дуже складна логіка та перевантаженість. Тобто навіть якщо захотіти все рознести різними репозиторіями, то зробити це відразу не вийде. Занадто багато компонентів системи зав’язані один на одного і дуже багато вузлів, яких можна позбутися. Говорити про щось конкретне складно, бо це відбувається повсюдно. Лише фронтенд живе щодо окремого життя, але й він дуже перевантажений. Не можу судити про якість бека з погляду грамотності використання інструментів, але місцями його важко сприймати.
Говорячи окремо і про фронтенд, можна сказати, що деякі речі складні, бо так історично склалося, хоч цієї складності можна було уникнути. Весь стор якийсь грубий і використовується дуже дивно, саги наповнені речами, які робити не повинні. Компоненти містять логіку, яку, по-хорошому, потрібно виносити та окремо тестувати. Загалом склалося враження, що код писався без чіткої архітектури та підходи застосовувалися на ходу і за місцем, хоча за такого розміру проекту варто було спочатку продумати системний дизайн та бажаний результат.
При всіх описаних вище проблемах – роботи зроблено дуже багато і технічно не кожен може так вкластися у pet-проект. У мене особисто не вистачило б терпіння робити такий великий та амбітний проект поодинці або навіть удвох з іншим розробником, особливо з огляду на якість коду, яку можна спостерігати зараз. Це гідно поваги і тому ставлю високу оцінку за технічний рівень, хоч мені здається, що проблем достатньо».
Підсумковий бал: 16,8
Автор – Микита Скрипченко
ClipClip — додаток із вправами для зору
Що: програми з вправами для зору з повідомленнями та іншими корисними функціями.
Стек : Swift, Python, Django, PostgreSQL.
Монетизація: у додатку немає платного функціоналу, але після кожного блоку вправ користувачеві доведеться переглянути рекламний блок. Перехід на передплату модель був би бажаним, визнає автора, але спочатку хочеться зрозуміти, що необхідно користувачам.
Посилання на проєкт: https://apps.apple.com/app/clipclip-your-eye-doctor/id1577593833
Проект оцінювали:
Коментарі журі:
Дмитро Шапран, iOS Developer, Uklon: Відмінна ідея. Особливо для тих, хто постійно проводить за монітором. У iOS-проекті є повторення екстеншенів».
Підсумковий бал: 16,2
Автор – Денис Козаков
Learn Azure Fundamentals: мобільний додаток для навчання роботі з платформою
Що: програма для навчання Microsoft Azure у форматі тестів, пов’язана з документацією від Microsoft та інших джерел.
Стек : Microsoft Visual Studio, .NET, Xamarin та git, веб-сторінки для програми Денис писав на ASP.NET Core. На базі движка програми Learn Azure Денис розробив і запустив ще дві програми для підготовки до іспитів з Azure: для розробників (AZ-204) і для DevOps (AZ-400).
Монетизація: додаток безкоштовний та без реклами.
Посилання на проект: https://deniskazakov.com/learnazure/
Проект оцінювали:
Підсумковий бал: 15,85
Автор – Максим Іщенко
Додаток «Що подивитися»
Що: Агрегатор інформації про фільми різними мовами. Містить дані про більш ніж 21 тис. фільмів з бази TMDB , а також медіаконтент з IMDb, Rotten Tomatoes, Metacritic, КіноПошуку та Trakt.tv.
Стек : Ідея реалізована на Xamarin Native і MvvmCross («найякісніший підхід для кроссплатформенного програмування»), Java («друг Віталій Леваш зважився допомогти») та Mongo («швидка noSQL database»).
Монетизація: планується через інтеграцію з усіма шаблонами AdMob та платне відключення реклами.
Посилання на проект: https://wtwnow.com/
Проект оцінювали:
Коментарі журі:
Губський Андрій, Microsoft MVP, Ph.D., Software Architect у Video Intelligence AG: «Враховуючи, що йдеться про pet-проекти, які розробляються на некомерційній основі та у вільний час, рівень та перелік вимог до них, на мій погляд, дещо відрізняється від вимог до комерційних розробок. Сама ідея не є оригінальною, але мені сподобався принцип агрегатора, коли в додатку можна отримати інформацію про фільм, а потім перейти до пошуку на різних майданчиках. Це зручно.
Код – чистий, легкочитаний. Назви змінних, методів та класів добре відображають їх суть. Є деякі рекомендації щодо код-рев’я, але в цілому код написаний добре. Проект використовує клієнт-серверну архітектуру, в якій бекенд спілкується з фронтедом (в даному випадку – мобільним додатком) за REST API . Це стандартне рішення, яке добре зарекомендувало, яке широко використовується в багатьох системах. Мобільний додаток реалізований на технології Xamarin , яка дозволяє використовувати єдиний стек технологій для розробки як під iOS, так і під Android, що дозволяє розробнику ефективно працювати над проектом».
Підсумковий бал: 15,85
Автор – Артем Пахомов
Repeatwordbot – бот для заучування англійських слів
Що: бот, який допомагає повторювати англійські слова методом інтервального повторення. Дозволяє вивчити близько 18 тисяч слів англійської мови. Слова розділені за частотою використання мови на розділи по 500 слів. Бот надсилає голосове повідомлення, прослухавши яке можна дізнатися як слово звучить. У роботі доступно 10 голосів завдяки інтеграції з Google Text-to-Speech API.
Стек : не вказано.
Монетизація: ні.
Посилання на проект: https://t.me/repeatwordbot
Проект оцінювали:
Підсумковий бал: 15,65
Автор – Дмитро Брусо
No Grab: програма-сканер небезпечних інгредієнтів у косметиці
Що: додаток зчитує склад косметики та етикети та звіряє його з базою даних зі списком обмежень на інгредієнти, допустимі, часто обмежені, заборонені у косметичній індустрії ЄС. Знайдені небезпечні речовини підсвічуються червоним, жовтим та зеленим кольором.
Стек : програма розроблена на платформі Flutter. Використовуються майже всі послуги Firebase: Fire Store, Fire Auth, FireStorage, FireBase ML Kit.
Монетизація: ні.
Посилання на проект: https://nograb.app
Проект оцінювали:
Підсумковий бал: 14,25
Автор – Андрій Белоножко
AIMagic — Telegram-бот для покращення фотографій
Що: бот для покращення фотографій. Крім перекладу чорно-білих фото в кольорові AIMagic вирішує і проблему покращення якості та роздільної здатності зображень – наприклад, скрінів нечітких топографічних карт.
Стек: Python та асинхронний фреймворк для написання ботів RocketGram (точніше, авторська реалізація цього фреймворку). Робот працює на безкоштовному сервері від Oracle.
Монетизація: ні.
Посилання на проект: https://t.me/aimagicbot
Проект оцінювали:
Підсумковий бал: 13,7
Автор – Владислав Піотровський
Rozklad_bot: бот у Telegram з розкладом занять в університеті
Що : бот, який допомагає студентам дізнатися розклад на день або тиждень і налаштувати ранкову розсилку.
Стек : проект написаний на Python 3.8, для роботи з кодом і БД використовувалися GitHub, VScode, SQLite browser та PgAdmin, для спілкування з Telegram API – бібліотека python-telegram-bot , для панелі адміну – фреймворк Flask, для бази даних – PostgreSQL.
Монетизація : ні.
Посилання на проект: https://rozklad.zavod.dev
Проект оцінювали:
Підсумковий бал: 12,9
Автор – Дмитро Слюнін
My Dog Club — сайт про собак та сервіси для їхніх власників
Що: сайт з інформацією про собак та сервіси для їх власників.
Стек : HTML5, CSS 3, Bootstrap 4, JS, JQuery, PHP 7, Laravel 5.6, SQL, MySQL, Ajax, Blade, NetBeans IDE 8.2.
Монетизація: планується у майбутньому.
Посилання на проект: https://my-dog.club/
Проект оцінювали:
Підсумковий бал: 12,85
Автор – Ігор Філіппов
Train Me – додаток для комунікації з онлайн-тренером
Що: програми для швидкої та легкої комунікації між тренером та його підопічним. Також у ньому можна стежити за прогресом ваги та обсягом тіла для підопічного та його тренера.
Стек : Бекенд побудований на NestJS, клієнт – PWA на Svelte з використанням TypeScript. База даних – PostgreSQL. AWS S3 та CloudFront використовуються для завантаження та роздачі картинок та відео. Heroku використовується як хостинг.
Монетизація: ні.
Посилання на проект: https://train-me.cc/
Проект оцінювали:
Коментарі журі:
Дмитро Грищенко , Full-stack Software Engineer (JavaScript, TypeScript) в Innovecs: «Ідея цікава, проект міг би бути корисним як централізоване місце взаємодії клієнтів з тренером. Але варто враховувати, що на ринку зараз представлена велика кількість додатків по проведенню онлайн-тренувань з величезною кількістю вправ на кожну групу м’язів (і відео з правильною технікою), великим асортиментом заздалегідь складених тренувань і комплексів на кілька місяців вперед, відстеженням прогресу, інтерактивними таймерами, інтерактивними таймерами, які корисні.
Цей додаток повинен включати більшу частину описаного вище функціоналу для того, щоб стати цікавим цільової аудиторії. Реалізовані функції багато в чому могли б бути замінені Google Sheets з тренуваннями наперед та можливістю відзначати прогрес плюс месенджер для комунікації. Але навіть якщо оцінювати за тим функціоналом, який уже реалізований, — продукт надто сирий. Присутні баги в перемикання мови на деяких частинах програми, UX не завжди інтуїтивний і зручний, немає функції відновлення пароля, дизайн вкрай мінімальний і не виглядає сучасним, валідації недостатньо зручні.
З головної переваги проекту можу виділити його швидкість — API та рендер справді відпрацьовують швидко».
Віталій Пономаренко, Lead Software Developer, Uklon: «Автор зміг знайти цікаву проблематику та запропонувати своє бачення. Але поки слабке опрацювання UI/UX, немає досліджень конкурентів і лише один шлях монетизації.
Непогана організація коду, гарна читаність. З мінусів: відсутність тестів та слабка масштабованість, немає порівняльного аналізу, розрахунків на підтримку обраного стека. Але при цьому описаний підхід до вибору технологій є частково обґрунтованим».
Підсумковий бал: 11,45
Автор – Андрій Каплуненко
Sherlock – агрегатор барахолок
Що: агрегатор барахолок із щоденним звітом на пошту. Підтримуються поки що три барахолки, на яких можна відстежувати появу потрібних товарів: OLX, Besplatka, SkyLots. Є можливість встановити ключові слова з поширеними орфографічними помилками, щоб відловити максимум результатів, також є фільтр за ціною.
Стек: агрегатор побудований на Drupal 8, тому що компанія, де автор працював (NXTE), на той час саме планувала перехід з Drupal 7 на нову версію, в якій йому хотілося швидше розібратися. Як система контролю версій використовується Git. Проект планується переробити так, щоб бекенд був чистим API, без фронтенду, який окремо буде написаний на Vue.js
Монетизація: коли проект вдасться спростити, зробивши з нього пошуковик за маркетами, його планується монетизувати через контекстну рекламу.
Посилання на проект: https://sherlock-ua.bid
Проект оцінювали:
Підсумковий бал: 11,25
Автор – Максим Жашкевич
LMS (Learning Management System) – конструктор онлайн-курсів
Що: архітектор онлайн-курсів. Також автор розробляє власні курси та продукти.
З тек : DBDiagram.io, MongoDB, Lucid Chart. З деталями проекту можна ознайомитись тут .
Монетизація: реалізується з допомогою передплати.
Посилання на проєкт: https://creatly.me/
Проект оцінювали:
Коментарі журі:
Дмитро Грищенко , Full-stack Software Engineer (JavaScript, TypeScript) в Innovecs: «Ідея допомагає насичувати IT-ринок корисними навчальними матеріалами і при цьому мати можливість отримувати гідну винагороду за свою працю, уникаючи інтернет-піратства».
Марк Олійник , Frontend Developer у YouScan: «Мені здається, це досить нішевий проект. Не так багато людей хочуть вивчати бек на Go за книгою, особливо якщо її написав людина, яка не є визнаним експертом в області. Але, можливо, книга дуже доступна, її я не бачив. Дуже круто, що Максим горить ідеєю. Я подивився на його канал, і видно, що йому цікаво цим займатися, в чому можу тільки підтримати. Але мені здалося, що вся ідея з книгою, курсами та платформою для них — це більше про особистий бренд, ніж про розвиток індустрії та бажання навчити, бо багато сказано про власні починання, але не сказано про залучення інших людей та розширення платформи для них.
Щодо коду — він простий, яким і має бути. Як людині, яка не знає Go, мені було просто розібратися в тому, що відбувається, і зрозуміти, яким життям живуть дані в цій системі. Є місця, в яких я зробив би по-іншому, але, можливо, вони обумовлені саме вибором Go, як інструменту, і тому так виглядають. Нічого страшного чи неприємного мені не трапилося, а що порефакторити можна знайти завжди. Якщо виділяти якісь моменти, які мені незрозумілі, то, як я й написав, неясна лише мотивація».
Підсумковий бал: 11,05
Автор – Андрей Романюк
Memescraper – додаток для скрейпінгу мемів з Reddit
Що: програми для нескінченного скролінгу свіжих мемів з Reddit так, щоб не треба було відволікатися на рекламу на сайті та інші пости.
Стек : Бекенд реалізований на Django, так як це багатофункціональний фреймворк. Selenium Web Driver використовувався, тому що це універсальний інструмент для web-scraping на Python. Advanced Python Scheduler застосовувався для завдання скрейпінгу. Розгортання проекту відбувалося на Heroku. Фронтенд – базовий UI на bootstrap із виконанням JavaScript для деяких функцій (наприклад, endless scroll).
Монетизація: ні.
Посилання на проект: https://memescraper.herokuapp.com/
Проект оцінювали:
Підсумковий бал: 10,75
Автор – Микола Мозговий
Wordis – головоломка в дусі тетрісу
Що: Tetris зі словником. Сенс гри в тому, щоб складати слова з літер, що падають.
Стек : Двигун Unity, Block Puzzle Game Kit як шаблон/заготівля гри, Tap Nation SDK.
Монетизація: не вказано.
Посилання на проєкт: https://apps.apple.com/ua/app/wordis-puzzle/id1548679723
Проект оцінювали:
Підсумковий бал: 10,7
Автор – Володимир Бондарчук
Rate Them App – сайт для оцінки якості співбесід
Що: сайт для оцінки якості співбесід, який: а) змінить ставлення компаній та інтерв’юерів до процесу проведення інтерв’ю на краще; б) заощадить час та нерви кандидатам, які шукають роботу та активно проходять співбесіди, – вони зможуть заздалегідь подивитися, що говорять про компанію інші кандидати, які вже проходили у ній інтерв’ю.
Стек : React.js, REST API, Spring Boot, MySQL, AWS, GitHub .
Монетизація: ні.
Посилання на проєкт: http://technicalinterviewsinukrainemustbebetterpreparedandmorepleasant.com
Проект оцінювали:
Коментарі журі:
Дмитро Грищенко , Full-stack Software Engineer (JavaScript, TypeScript) в Innovecs: « Ідея актуальна і перспективна, але реалізація має бути дуже суттєво доопрацьована. На даний момент вже є кілька великих порталів, на яких можна знайти велику кількість відгуків про роботу та досвід проходження інтерв’ю. Найочевидніший приклад — https://jobs.dou.ua , де можна в кілька кліків опинитися на сторінці компанії та за відгуками отримати враження про рівень рекрутингу (часто кандидати вказують навіть імена рекрутерів).
Було б цікаво, щоб ресурс, сфокусований виключно на якості рекрутингу, де можна було б знайти рекрутера і ознайомитися з усіма відгуками про фахівця, дати можливість відповідати на відгуки. Фокусування на кожному конкретному рекрутері допомогло б фахівцям відповідальніше ставитися до своїх обов’язків, розуміючи, що це безпосередньо впливає на їхній рейтинг (додатково можна було б реалізувати також графіки за оцінками/датою, щоб побачити прогрес якості роботи фахівця).
На даний момент додаток представляє собою лише таблицю відгуків без можливості пошуку по компанії/рекрутеру, без можливості сортування. Немає можливості редагувати відгук, відповідати на відгук. Не реалізовано жодної системи авторизації. UX – дуже скромний, але явних багів не виявлено ».
Марк Олійник , Frontend Developer у YouScan: «Якщо говорити про ідею — вона дуже цікава і може викликати резонанс, особливо з огляду на стан IT-ринку в Україні. Це правда, що часто у нас особливо не церемоняться з фідбеком. Щодо поінту про грубість чи нетактовність — все залежить від людини, і подібна ідея може сприйматися як певна «стукацтво» на конкретну персону, а це трохи не гуде. З одного боку, людина не повинна вести себе свинською, а з іншого — у неї просто міг бути поганий день, ніхто не знає. Для того, щоб це не було одностороннім насипанням фідбека, я б ще продумав варіант, у якому компанії можуть реагувати на зворотний зв’язок та розповідати про свій бік подій.
Якщо почитати той же LinkedIn, то часто бувають ситуації, коли внутрішні рекрутери компаній запитують поради у колег із приводу грамотної відмови або про те, наскільки нормально давати фідбек через два тижні після співбесіди. Це я до того, що вони такі самі люди і можуть залежати від обставин, які так само тиснуть і на них. Окрім цього моменту – ідея крута та її варто розвивати.
Говорячи про код, потрібно зробити знижку на те, що він писався паралельно з основною роботою та однією людиною. Щодо бекенду, у мене питань практично немає, але їх і не повинно бути з тим обсягом, що зараз є. А ось фронтенд зроблено дуже складно. Є компоненти, які перевантажені станом, редакція використовується неправильно, SoC на низькому рівні, неоднорідний code style. З хорошого можу відзначити невеликий розмір усієї програми, нехай навіть деякі компоненти зроблені неправильно і в самих компонентах відсутня логіка. Порада на майбутнє — якщо логіка колись з’явиться, краще її писати в окремих .ts- (на крайняк —.js-) файлах: таким чином її буде в мільярд разів простіше тестувати і в разі потреби перевикористовувати».
Підсумковий бал: 9,5
Автор – Дмитро Литвинюк
Портативний алкотестер
Що: USB-алкотестер з можливістю підключення до смартфону.
Стек : ARM мікроконтролерів серії STM32F1 із-за наявності USB-інтерфейсу, гарного АЦП та співвідношення ціни до характеристик. Як IDE для створення прошивки було використано STM32CubeIDE. Для створення принципової схеми та плати був обраний EasyEDA. Для реалізації мобільного додатка – Flutter.
Монетизація: Автор поки що не впевнений у бізнес-стратегії для монетизації проекту. Можливий прямий продаж, створення стартапу або вихід на краудфандинговий майданчик.
Посилання на проект: https://www.youtube.com/watch?v=2Xai0xygT2c
Проект оцінювали:
Підсумковий бал: 8,3
Автор – Тарас Концур
Follow-uah – сервіс моніторингу курсу гривні до долара
Сервіс моніторингу курсу гривні до долара. Також демонструє тренди, різке зниження чи зростання курсу. Курси валют беруться із API на developers.minfin.com.ua.
Стек : Node.js та AWS. Сервіси AWS вибиралися за принципом мінімізації коштів. Наразі сервер працює на Amazon Lightsail, і це єдиний платний сервіс AWS, який використовується. Також застосовуються DynamoDB – як основна база даних, S3 та Lambda в межах free tier.
Монетизація: не вказано.
Посилання на проект: https://t.me/follow_uah
Проект оцінювали:
Коментарі журі:
Дмитро Грищенко , Full-stack Software Engineer (JavaScript, TypeScript) в Innovecs: «Проект на даний момент дуже простий, є велика кількість альтернатив з розширеним функціоналом».
Віталій Пономаренко, Lead Software Developer, Uklon: «Оскільки це не UI-проект, то погано, що немає опису базового алгоритму та математичної складової. Опис ідеї містить багато зайвих даних, причому мало інформації про функціонал і про те, яким чином він був реалізований. Слабко і якось безперспективно описаний розділ монетизації. Загалом ідея та мотивація зрозумілі, але це тягне більше на персональну утиліту, ніж на комерційний проект.
Загальна організація коду, читання, стиль та чистота кодової бази – на слабкому рівні. Деякі блоки містять потенційні проблеми, як у логічному, і у архітектурному планах. Схоже, автор закинув проект: issue на додавання ліцензії відкрито з 23 лютого. А репозиторій проекту не оновлювався понад 10 місяців. Стан коду більше схожий на старт проекту, але не MVP.
Цікавим є вибір AWS, але не описані критерії. Бракує порівняльного аналізу, вимог. Я вважаю, що це є необґрунтований вибір технологій».
Підсумковий бал: 7,3
Автор – Тарас Сенив
Haii-me – платформа відеопривітів від зірок
Що: платформа, в якій відомі актори чи музиканти за гроші передають привіти чи вітають із днем народження звичайних людей.
Стек : Node.js, Express.js, AWS S3, AWS Lambda.
Монетизація: Бізнес-модель така сама, як і в інших подібних проектах: комісія в 10–15% із замовленого відеопривітання чи привітання.
Посилання на проект: https://github.com/TarSen99/haii-me
Проект оцінювали:
Коментарі від журі:
Марк Олійник , Frontend Developer у YouScan: «Почнемо з концепту. Такі проекти є і в Америці, і у Росії. Добре, що Тарас цього не приховує і вирішив спробувати зробити таку саму версію для України. Проблема сервісів на кшталт Cameo у тому, що вони дуже локальні, і якщо американські селебріти відомі та цікаві усьому світу, то українські цікаві лише Україні та меншою мірою — країнам Східної Європи. Також порівнюючи капіталізацію американців, росіян та українців, стає зрозуміло, що в Україні такий сервіс матиме набагато менший попит. Це нормально, але це також потрібно враховувати, говорячи, що монетизація складатиметься з 10-15% від відео – так можна швидко програти (для початку було б справедливо 3-5%). Також такий сервіс потребує залучення селебріті, які не факт, що просто прийдуть і почнуть усім знімати сторизи ліворуч та праворуч. Впевнений, що в цьому будуть замішані їхні продюсери, рекламні агенти тощо. Шоу-бізнес – він і в Україні шоу-бізнес. Загалом є нюанси. Вони переборні, але є.
Далі реалізація: архітектура дуже дивна та небезпечна. Будь-коли може піти щось не так. В даному випадку все не так страшно, тому що додаток поки що не дуже великий, але в майбутньому з таким підходом проблеми будуть неминучими. Вся історія з відправкою фоток з фронтенду прямо на S3 – погана витівка. Купа зайвих дій, що ускладнюють дуже просту логіку. Це має робитися з бекенда. Фронт відправляє картинку, бек визначає, чи під неї ресурси, і якщо є, то відправляє далі. Простий лінійний пайплайн. Також дивлячись на код, відразу просять мікросервіси, ну чи хоча б підготовка до розбиття логіки на незалежні модулі. На даний момент окремі шматки, які працюють як сервіси, не створюють тих проблем, які з’являться в майбутньому, але в такій реалізації вони вже не скейляться, а це робити доведеться, якщо проект розвиватиметься.
За кодом: десь добре, а десь уже треба переробити. Наприклад, у директоріях усередині папки controllers можна відрефакторити майже всі файли – зараз це читати складно і логіка у кожному файлі дублюється. Все це можна винести до класів і не робити собі мізки. Але ось, наприклад, helpers зроблено добре. Проста, зрозуміла, логіка, що перевикористовується, ізольована і використовується за призначенням. Крапля в морі, але працює як слід.
Ще круто, що є випробування. Я б їх трохи структурував, але головне, що вони є. Загалом є куди рости і що робити. Концепт перевірений, архітектуру треба переосмислити, код місцями підрефакторити».
Підсумковий бал: 7,15
Автор – Кирило Степкін
Ontour bot – Telegram-бот для пошуку концертів по всьому світу
Що: бот шукає концерти по всьому світу, містам та артистам у задані дати. Дозволяє кілька кліків дізнатися, які музичні шоу заплановані в конкретному місті.
Стек : Node.js і TypeScript, дані беруться з відкритих API (Last.fm, Songkick), хоститься на AWS (використовуються сервіси EC2, DynamoDB і ряд інтеграцій для допоміжних фіч, що розвиваються). Інші технології, які були використані: React, Node.js, Express, AWS, EC2, DynamoDB, Firebase, Mapbox/Leaflet, Last.fm API, Songkick API, Segment, Amplitude.
Монетизація: не вказано.
Посилання на проект: https://t.me/ontour_bot
Проект оцінювали:
Коментарі журі:
Дмитро Грищенко , Full-stack Software Engineer (JavaScript, TypeScript) в Innovecs: «Функціонал корисний, але на ринку присутня чимала кількість подібних додатків, які мають набагато ширші можливості (при цьому не менш зручні). Як приклад можу навести Bandsintown Concerts , який за лічені хвилини визначає музичні уподобання користувача на основі стрімінгового сервісу і здатний запропонувати концерти улюблених виконавців (і схожих музикантів) по будь-якому місту, додавати події в «Цікаве», шукати за жанрами тощо. Telegram-бот коректно відпрацьовував у разі пошуку по місту, але жодного разу не видав мені результатів у разі пошуку по музикантах.
Функціонал дуже обмежений, але при цьому не сказати, що дуже зручний, оскільки щоразу необхідно заново вказувати, за який період часу потрібно переглянути дані. З погляду коду все організовано зрозуміло, частково типизировано. Але немає будь-якого покриття автоматизованими тестами, нерідко зустрічається типізація any, переклади реалізовані незручно».
Марк Олійник , Frontend Developer у YouScan: «Ідея дуже крута. На даний момент через ситуацію у світі розвивати щось таке буде майже неможливо, але в майбутньому, коли все прийде до якогось аналога попередньої норми, це може бути цікаво багатьом людям. Круто, що поточний формат це Telegram-бот. Особисто я запарився б поставити собі окремий додаток і тим більше не зайшов би на сайт, щоб просто отримати рекомендацію, а бот запустив би.
Є й кілька моментів, які б я поміняв. Наприклад, архітектура виглядає таким чином, що центром у системі є “мозки” Telegram-бота. Може, я щось не зрозумів: посилань на різні версії проекту у файлі дуже багато і кожен працює по-своєму, але навіть у тому випадку, коли єдиною версією проекту є бот – я виносив би ядро системи в окремий модуль. Зараз центрова логіка має надто високий coupling з логікою самого бота, хоча насправді у бота просте завдання: отримати інпут і на його підставі дати відповідь. Тобто бот отримує команду, і потім, якщо вона локальна (начебто /start) – відправляє заготовлену відповідь, а якщо не локальна (начебто /artists), то йде спілкуватися з сервісом, отримує від нього відповідь, парсить у повідомлення і віддає користувачеві. Чому це краще: таким чином без будь-яких змін можна буде воскресити веб-програми, які були зроблені раніше, або зробити нове набагато швидше. Якби ідея була тільки в боті, та інші версії не передбачалися б ніколи, то можна було цього і не робити, але зараз виходить так, що доведеться або багато переробляти, або дублювати те саме.
Далі – сам бот. Круто, що є локалізація. Круто, що можна дивитися як по локації, так і груп. Не круто, що коли вбиваєш гурт та його концертів немає, то випадають рекомендації, які містять гурти, які вже 20 років як не існують. Бот порекомендував мені відвідати концерт Nirvana – і я б з радістю, але це неможливо. Таке 100% потрібно фіксувати, тому що користувачі можуть бути абсолютно різними і нічого не знати про гурти, просто тикатись у цьому боті, не розуміючи, чому немає концертів. Якщо говорити про код, то можна сильно заглиблюватись, тому що за його якістю є за що зачепитися. Дуже багато дублювання, логіка спілкування робота не ізольована, функції роблять занадто багато роботи. Загалом стандартні болячки JS-коду, навіть у досвідчених розробників таке трапляється.
Якщо давати детальніше пояснення, то можу розповісти, як би зробив я. По-перше, bot.ts має 14 рядків коду і це простий if-else, як у гайді Telegram. А ось робота з цим ботом усередині ноди може займати величезну купу рядків та distributed-логіки. Тому я б ізолював бота в клас, який за допомогою поліморфізму з використанням підкласів виконував би свої завдання, або мав би фабрику для створення підкласів з відомим контекстом (/location, /artists, etc). Кожен контекст був би наповнений своєю логікою, і таким чином вийшов би дизайн, в якому кожен бранч системи працює 100% часу, коли на нього потрапляєш, не маючи зв’язку з непотрібною логікою на момент виконання завдання. Якось так. Загалом проект мені подобається, але є що доопрацювати».
Олена Мажуга Старший інвестиційний аналітик Genesis Investments. Дмитро Томчук Засновник інвестиційного фонду Fison. Роман Бабицький Основник інвесткомпанії Babitskyi Investment, голова ради з питань іноземних інвестицій та економічного розвитку України. СЕО Pix Inc. Оцінює проекти з IoT. Pix – рюкзак з LED-екраном, зовнішній вигляд якого можна змінювати за допомогою мобільного додатка за бажанням власника. За допомогою мобільного додатка можна виводити на екран різну анімацію і навіть текст. Команда Рімек провела успішні кампанії на Kickstarter та Indiegogo Оцінює проекти з .NET . Понад 10 років займається розробкою (.NET). Юрій має понад 10 років досвіду в розробці (.NET). Брав участь у розробці систем біометрії, відеоконференцій, трейдинг енжинів, крипто-бірж та карток та свого пресингу, а також монолітів на залізних серверах та мікросервісів у хмарах. У Wirex відповідає за архітектурні рішення, безпеку, масштабування та побудову процесів. ‘] Марк Олійник
Дмитро Грищенко Оцінює backend-проекти на Python . Олег має більше 8 років досвіду в IT: від інжинірингових позицій до керівника департаменту, де він займається оптимізацією процесів розробки, будує інженерну культуру, проектує архітектуру додатків і сервісів AmoMedia.’] Mobile Team Lead, Co-Founder iOS Ukraine. Оцінює проекти на iOS. Mobile Team Lead, co-founder iOS Ukraine, засновник першої в Україні онлайн-конференції з iOS-розробки, що веде навчального YouTube-каналу, консультант та аудитор мобільних команд.
Максим Федоров Старший PHP-розробник у Yellow Stone. Оцінює проекти з backend PHP та веб-розробці . Свій шлях у IT Максим розпочинав як розробник програмного забезпечення для ПК у 2008 році. Потім перейшов у веб-розробку, оскільки вважає цю галузь цікавою в технічному плані і дає багато можливостей. Останні 6 років працює над різними проектами як backend-розробник, має досвід управління командами до десяти осіб. Оцінює бекенд-проекти на PHP . Створив CRM-систему для агентств нерухомості, яка успішно працює та конкурує на ринку. Богдан понад 14 років займається програмуванням, останні чотири роки розвивається в архітектурі IT-рішень та DevOps. Працює з трьома мовами програмування: PHP, Go, JavaScript, а також цікавиться Dart, Python і TypeScript.’] Оцінює проекти на Android . У Ростислава 16 років досвіду у сфері розробки додатків, кар’єру він починав із Java Desktop та Java Backend, а з Android працює з 2010 року. За час роботи використовував мови Sinclair Basic, Assembler, VBScript, Jscript, WSHost, Java, Pascal, Visual Basic, C, C++, Perl, .NET C#, J#, SQL, Kotlin та ін. У 2016 році написав кілька програм для Amazon Alexa.’] [люди][фото людей=”https://highload.tech/wp-content/uploads/2021/04/Kirill-Latysh.jpg” name=’Кирилл Латиш’ info=’ЩО КРУТО. Оцінює проекти backend PHP та big data. ‘] Юлія Чала Solution Sales Professional (Data and AI) у Microsoft Ukraine. Оцінює проекти з AI та big data. Євгеній Бобров Solution Architect, YouScan. Оцінює проекти з .NET.
Андрій Губський Віталій Пономаренко Lead Software Developer, Uklon. Інженер-програміст із 16-річним досвідом розробки програмних рішень різного ступеня складності. За плечима — 8 років розробки та розгортання embedded systems, CRM та супутніх модулів. А останні 8 років займається розробкою та впровадженням веб-сервісів. Дмитро Шапран
Павло Дмитрієв
[фото людей=”https://highload.tech/wp-content/uploads/2021/04/OLARESKO.jpg” name=’Дмитро Олареско’ info=’Генеральний директор Beetroot Academy, колишній Drupal-архітектор.]
16 років у розробці. З них понад 10 років присвятив веб-розробці Drupal для таких клієнтів як Johnson&Johnson, Louis Vuitton Moët Hennessy, Valeo. Активний учасник та спікер міжнародної Drupal-спільноти, організатор Drupal-заходів у Харкові. У 2020 році перейшов у сфери IT-освіти та соціального підприємництва.’]
[/люди]
Компанія Apple заявила про надзвичайну ефективність свого захисного механізму Lockdown Mode. Згідно з офіційним звітом,…
Засновник Ethereum Віталік Бутерін представив нову пропозицію, яка здатна кардинально змінити механізм транзакцій ETH. Йдеться…
Компанія Google Cloud за інформаційної підтримки Міністерства цифрової трансформації України відкриває реєстрацію на нову навчальну…
Сучасні великі мовні моделі (LLM) мають серйозну ваду, яку вчені називають «сикофантством». Замість того, щоб…
Технологічний гігант Sony офіційно оголосив про тимчасове припинення замовлень на більшість своїх лінійок карт пам'яті…
Команда Google Research представила новий інструмент. Він дозволяє швидко створювати прототипи програм для Extended Reality…