Тема: Потрібна критика підходу (архітектури?) до pet-проекту на Flask
Привіт! Я розробляю власний не комерційний pet-проект для здобуття досвіду необхідного для отримання роботи (Python/web dev). Також вірю, що по завершенню він може знайти своє коло користувачів)
Буду вдячний за конструктивну критику пайтоністів мого підходу до цього проекту та поради як його краще реалізувати.
Вирішив запитати саме зараз, бо вже написав скрипт для отримання потрібних даних і стоїть питання як їх обробляти/зберігати (зараз дані в CSV). Хочу зробити все максимально наближено до ситуації якби це був проект із замовником, компанією-працедавцем і все таке. Поки загалом не впевнений на всі сто що далі в технічному плані...
Концепція:
v1.0.0-alpha - вебсайт-каталог відео українською з одного YT каналу з можливістю перегляду спільної для всіх відео tag cloud. К-сть відео - 200
v1.0.0-beta - додається пошук з автопідстановкою по тегам. К-сть відео - 650+ (кілька каналів)
v1.0.0 - додається сортування за датою випуску/кількістю переглядів. Додається cron для парсингу нових відео з YT за тиждень.
Структура:
"/" - renders every video thumbnail img+title with <a href="youtube.com/watch?v={videoId}" target="_blank"> in tiles
"/tag_cloud" - renders all unique tags with related counters
Техстек:
Python (Flask), YouTube API, MariaDB (?), HTML with some CSS to build tag cloud
v1.0.0-alpha development high level algorithm:
1. GET video details from the channels (Done, currently it saves to individual CSV per channel)
2. Save the details to DB (MariaDB)
3. Fetch all videos details to Flask and render as HTML blocks ("/")
4. Fetch unique tags with counter FROM DB to Flask and render as HTML (will be shown on "/tag_cloud" page)
UI
Я хочу зосередитися на back-end і зробити UI максимально простим. Або й передати UI кому це справді цікаво як pet-проект.
Питання:
1. Чи підхід до створення 1.0.0-alpha є оптимальним до реалізації?
2. Де краще все захостити?
3. Яку СКБД краще використати (просту, але разом з тим, щоб використовувалася на реальних проектах)?
4. Яку технологію пошуку з автопідстановкою краще використовувати?
p.s. писав частково англійською, тільки тому що так було легше.
p.s.s. помітив, що де-факто у цьому розділі обговорюють проекти на Python, тому ризикну запостити цю тему тут :-)