Решение на Време е да помислите за проектите си! от Марио Николов

Обратно към всички решения

Към профила на Марио Николов

Резултати

  • 9 точки от тестове
  • 0 бонус точки
  • 9 точки общо
  • 0 успешни тест(а)
  • 0 неуспешни тест(а)

Код

"""
[Title/Звание]
Гримоарът
[Description/Обрисовка]
Винаги си искал да си подредиш аниме рекомендациите в списъци и да ги имаш достъпни на едно място? Живял си под камък и не знаеш, че
подобни приложения/уеб сайтове вече съществуват? Не се притеснявай, аз съм тук, за да ти предложа моя бездънен гримоар, който ще ти позволи
да си запазиш аниме рекомендациите на едно място без да се стресираш.
[Functionalities/Надарености]
- Системата ще поддържа много потребители.
- Всеки потребител ще има собствена библиотека.
- Всеки потребител ще може да се регистрира и да влезе в профила си.
- Потребителят ще може да добавя конкретни аниме сериали и филми в библиотеката си, като ги разделя в една от категориите:
-> "Гледане по-късно"
-> "Изгледани"
-> "Любими"
- Потребителят ще може да посети страница за топ 100 аниме сериали и ще може да добабя и от тях в библиотеката си.
- Потребителят ще може да прочете кратка информация за аниме сериалите преди да реши да ги добави или подмине.
- Потребителят ще може да премахва аниме сериали от библиотеката си.
[Milestones/Възлови точки]
- Създаване на Github repository - 4 часа
- Вдигане на сървър - 4 часа
- Дизайн и връзка към база данни - 12 часа
- Интегриране на апи за събиране на аниме сериали - 8 часа
- Тестване на системата на първи етап - 8 часа
- Дизайн на клиент частта - 6 часа
- Интегриране на клиент частта - 15 часа
- Интегриране на логин и регистрация - 6 часа
- Интегриране на автентикация - 5 часа
- Тестване на системата на втори етап - 8 часа
- Пакетиране в docker image - 4 часа
[Estimate in man-hours/Времеоценка в човекочасове]
Общо: 80 часа
[Usage of technologies/Потребление на технологии]
- API, с което системата ще взима информация за аниме сериали (още не се знае кое)
- HTTP/requests module за създаване на заявки към API-то.
- Django, за вдигане на сървър
- база данни (още не се знае дали ще бъде SQL или NoSQL)
- frontend framework, а която ще разработим клиент частта на проекта (още не се знае кой)
- Github за code repository
- Docker за база и пакетиране на проекта
- Github actions, които ще се изпълняват при push на код към repository и ще изпълнява тестовете на системата.
"""

История (1 версия и 2 коментара)

Марио обнови решението на 20.12.2022 11:11 (преди над 1 година)

+"""
+[Title/Звание]
+Гримоарът
+
+[Description/Обрисовка]
+Винаги си искал да си подредиш аниме рекомендациите в списъци и да ги имаш достъпни на едно място? Живял си под камък и не знаеш, че
+подобни приложения/уеб сайтове вече съществуват? Не се притеснявай, аз съм тук, за да ти предложа моя бездънен гримоар, който ще ти позволи
+да си запазиш аниме рекомендациите на едно място без да се стресираш.
+
+[Functionalities/Надарености]
+- Системата ще поддържа много потребители.
+- Всеки потребител ще има собствена библиотека.
+- Всеки потребител ще може да се регистрира и да влезе в профила си.
+- Потребителят ще може да добавя конкретни аниме сериали и филми в библиотеката си, като ги разделя в една от категориите:
+ -> "Гледане по-късно"
+ -> "Изгледани"
+ -> "Любими"
+- Потребителят ще може да посети страница за топ 100 аниме сериали и ще може да добабя и от тях в библиотеката си.
+- Потребителят ще може да прочете кратка информация за аниме сериалите преди да реши да ги добави или подмине.
+- Потребителят ще може да премахва аниме сериали от библиотеката си.
+
+[Milestones/Възлови точки]
+- Създаване на Github repository - 4 часа
+- Вдигане на сървър - 4 часа
+- Дизайн и връзка към база данни - 12 часа
+- Интегриране на апи за събиране на аниме сериали - 8 часа
+- Тестване на системата на първи етап - 8 часа
+- Дизайн на клиент частта - 6 часа
+- Интегриране на клиент частта - 15 часа
+- Интегриране на логин и регистрация - 6 часа
+- Интегриране на автентикация - 5 часа
+- Тестване на системата на втори етап - 8 часа
+- Пакетиране в docker image - 4 часа
+
+[Estimate in man-hours/Времеоценка в човекочасове]
+Общо: 80 часа
+
+[Usage of technologies/Потребление на технологии]
+- API, с което системата ще взима информация за аниме сериали (още не се знае кое)
+- HTTP/requests module за създаване на заявки към API-то.
+- Django, за вдигане на сървър
+- база данни (още не се знае дали ще бъде SQL или NoSQL)
+- frontend framework, а която ще разработим клиент частта на проекта (още не се знае кой)
+- Github за code repository
+- Docker за база и пакетиране на проекта
+- Github actions, които ще се изпълняват при push на код към repository и ще изпълнява тестовете на системата.
+"""

Добра идея. Добро описание. На границата си, обаче, да получиш прекалено лесен проект. Използването на 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 - ако остане време след като съм приключил самия проект

Ако все още ви се струва прекалено лесно съм отворен за още предложения.🙂