Домашни > Време е да помислите за проектите си!


Време е да помислите за проектите си!
Краен срок: 03.12.2024 18:00
Точки: 6

Ако все още не сте го направили, време е да помислите малко за курсовите си проекти. Ще ви стимулираме да го направите, като ще оценим дефиницията, която сте подготвили. Тук оценяваме качествата на дефиницията, а не самия проект. Целта е вие да подготвите идея, а ние да ви дадем обратна връзка за това доколко тя е удачна като сложност за защитата. Приготвили сме ви темплейт, по който да работите, както и пример с нашата идея за проект. Описанията на проектите си предавайте както нормално домашно - качвате файл с *.py разширение. За да качите без да имате синтактични грешки, закоментирайте всичко с тройни кавички. Реално очакваме файл с един голям коментар. Знаете - колкото по-рано предадете, толкова по-рано ще можем да ви върнем обратна връзка. :) ## Инструкции за [The Final Project/Заветното Начинание] [Title/Звание] Кратко заглавие на проекта, с което майка ви би се гордяла. ``` Де-бил ``` [Description/Обрисовка] Общо описание на проекта, с което да хванете вниманието на всички популярни рекрутъри в LinkedIn. ``` Де-бил - Дебилно мобилно приложение, което при наличието на бил (сметка), позволява на потребителя да се дебилне (да отмени ефекта на сметката върху личните си финанси), чрез автоматично разделяне на разходите между членовете на компанията, в която се намира. ``` [Functionalities/Надарености] По какъв начин потребителят може да взаимодейства с програмата и какви операции извършва програмата в отговор на това. Това включва и задкулисните действия на приложението ви (не подробно алгоритмично описание, а накратко - с по едно изречение). ``` Приложението следи Revolut за изходящи транзакции и при засечено плащане, което подсказва, че има обща сметка, която трябва да се дебилне, сканира околността за други дебилни потребители, които са участвали във вечеринката. Приложението автоматично разпределя сметката между участниците спрямо коефициента им на дебилност по време на срещата. Приложението следи времето, което потребител е прекарал в цъкане на телефона си и прилага по-висок коефициент на дебилност за тези, които са прекарали повече време пред екрана си. Де-бил прави реверанс към дамите, които са в седмицата преди месечния си период на недоволство, като понижава коефициента им на дебилност. Де-бил е съпричастен с футболната привързаност на господата и в случай на футболно дерби, с участието на любимият им отбор, което се състои по време на вечеринката, им позволява да следят резултата, като понижава коефициента им на дебилност. ``` [Milestones/Възлови точки] Разбивка, показваща по-големите логически обособени парчета от проекта. С други думи - описание на отделните модули* на проекта. В някои случаи това могат да са отделните парчета функционалност (модул за комуникация с потребителя, модул за конфигуриране на приложението, модул за persistence, който ви позволява да save-вате играта), в други няма едно към едно взаимоотношение с конкретно взаимодействие на потребителя с програмата (модул за scheduling на задачи, модул за web scraping, модул за AI на ботовете в играта). Кръстили сме ги "Milestones/Възлови точки", защото на практика това ще са стъпките, през които ще трябва да минете, за да имате финалния вид на работещото ви приложение (може би не в същата последователност, както първоначално ще предположите). **Писали сме "модули", но не е задължително да са модули в [Python](https://www.youtube.com/watch?v=kntQNeSge5s) смисълa на думата.* ``` Гръбнак (контролер), който обработва логиката. Графичен интерфейс. Мониторинг система за време, прекарано на мобилното устройство. Сканиращ модул за дебилни потребители в близост до мобилното устройство. Комуникация с Revolut. Комуникация с Google календар. Комуникация с LiveScore. ``` [Estimate in man-hours/Времеоценка в човекочасове] Груба оценка на това колко време ще ви отнеме проектът, във формата, в която очакваме да го видим и оценим ние. С други думи, ако желаете да си разкрасите web проекта със CSS, да си нарисувате красиви sprite-ове за играта и прочие - това няма да оценяваме, съответно не ни е важно колко време ще ви отнеме, ако решите да надградите проекта си извън контекста на "Въведение в програмирането на [Python](https://www.youtube.com/watch?v=kntQNeSge5s)". Ако искате, можете да си направите и разбивка по milestones, но няма да държим на това. ``` 42 часа ``` [Usage of technologies/Потребление на технологии] Разпишете какви frameworks/модули/библиотеки ще използвате за проектите си - Django, Flask, Numpy и Pandas, PyQt или Pygame, etc. ``` Интерфейс - Kivy Комуникация с Google - google-api-python-client, google-auth-httplib2, google-auth-oauthlib Комуникация с Revolut - revolut-python Комуникация с LiveScore - наши хора сме с девовете там и ще ни дадат API, което ще използваме с requests. ``` # Бел. ред. - Плюс е проектите ви да са качени в github. - Напомняне - проектите носят до 60 точки и са **задължителни**. С други думи - няма да пишем оценки на хора, които нямат дори минимален проект. Сори. - Не забравяйте, оценяването на проектите е следното - 33% функционалност, 33% стил, 33% тестове, 1% вариация в настроението на проверяващите! - Проектите се предполага да демонстрират знания и разбиране на [Python](https://www.youtube.com/watch?v=pqwgROwL0wM). Не се впускайте в прекалено много CSS, JavaScript, красив UI за desktop приложенията или игрите и прочие. Не че няма да го оценим, но би следвало да ви е с доста по-нисък приоритет и да инвестирате в това само ако ви остане време. - За тази задача ще получите точки, съобразени с това, колко добре сте разписали проектите си (малко по-субективно от юнит тестове, но ще ви върнем обратна връзка). - Нашият примерен проект по-горе е в стремеж да ви покажем къде какво се предполага да има като съдържание. Не е пример, който ще бъде оценен с пълен брой точки, имайте го предвид. ## P.S. Ето ви и версия за copy-paste: ``` """ [Title/Звание] [Description/Обрисовка] [Functionalities/Надарености] [Milestones/Възлови точки] [Estimate in man-hours/Времеоценка в човекочасове] [Usage of technologies/Потребление на технологии] """ ```
 1import unittest
 2
 3
 4class TestPseudo(unittest.TestCase):
 5
 6    def test_pseudo(self):
 7        pass
 8
 9
10if __name__ == '__main__':
11    unittest.main()
1import unittest
Дискусия