Марио обнови решението на 20.12.2022 11:11 (преди около 2 години)
Добра идея. Добро описание. На границата си, обаче, да получиш прекалено лесен проект. Използването на API-то е задължително, за да постигнеш достатъчна сложност, а аз бих ти препоръчал да сетнеш някакъв атоматичен task scheduler на back-end, с който да събираш данни постоянно. Така ще имаш нужната сложност.
Малко коментари по описанието:
"Създаване на Github repository - 4 часа" - по-скоро 4 минути. Не виждам как това ще ти отнеме 4 часа.
"Дизайн и връзка към база данни - 12 часа" - Реално ще имаш само 1-2 модела, което значи, че ти трябват два класа. Ще ти отнеме не повече от 2-3 часа, дори да не си го правил никога.
"Пакетиране в docker image - 4 часа" - Това не визуализира познания свързани с курса, така че спокойно можеш да го пропуснеш.
"база данни (още не се знае дали ще бъде SQL или NoSQL)" - Django идва с SQLite, което ти е достатъчно.
"Github actions, които ще се изпълняват при push на код към repository и ще изпълнява тестовете на системата." - Чудесно е да го има, но и това не визуализира познания с Python и просто ще ти дадем една бонус точка за него, така че не си губи времето, ако нямаш достатъчно.
Идеята ми за използването на API-то беше да е като тип търсачка, не от предварително събран списък да си избира, тъй като това няма смисъл. Няма как да събирам постоянно данни за нещо, което не се променя по-често от месец, както примерно новини се актуализират всеки час. Идеята ми е по-скоро потребителя да си въведе заглавието, което търси и с django сървъра да взема всички резултати и да си извлека само важните неща (снимка, заглавие, описание, рейтинг, т.н) и да им придам функционалност да се запишат в базата към личната им библиотека. Като една идея по-сложно мога да въведа и някаква филтрираща система по genre, rating, year of release и подобни.
Оптимизация мога да направя първо да проверява заглавието в базата дали съществува и ако не, тогава да прави API call, за да си го набави и запише в базата. При което съответно мога да направя един task scheduler да ми проверява сериалите в базата в случай, че нещо се е променило по тях - загалвие, рейтинг, брой епизоди и т.н.
За github repository 4 часа са много, но в него включвам и това, че ще се опитам да го направя хубаво и подредено, като спазвам бранч policies и подобни други през цялата разработка на проекта, а не само в началото.
За базата написах 12 часа, защото реално още не знам как ще пазя самите данни за сериалите. Не съм използвал NoSQL бази никога, а не знам дали има начин да запазя изображение в sql база и ще ми трябва време да разуча, но съм склонен да приема,че 12 часа е малко пресилено. 4 часа звучат ли приемливо?
За останалите глезотии като dockerization и github actions знам, че нямат свързано с материала, но смятах да ползвам github actions като едно ниво на защита да не кача код, чийто тестове не минават и/или не тръгва. А за докера понеже най-лесно бих сетнал база с докер, затова го написах.
Бих променил: - github repo - 2 часа - database setup and integration - 4 часа (включващо разследване, дизайн, създаване и свързване със сървъра) - github actions & dockerization - ако остане време след като съм приключил самия проект
Ако все още ви се струва прекалено лесно съм отворен за още предложения.🙂