Решение на Време е да помислите за проектите си! от Антоан Ивайлов

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

Към профила на Антоан Ивайлов

Резултати

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

Код

'''
[Title/Звание]
Генератор на университетски програми
[Description/Обрисовка]
Идеята на този проект/декстоп приложение е да помогне в за изграждане на седмични програми в учебните заведения. Неговия фокус обаче е върху улесняването на процеса за избираеми дисциплини във ФМИ,
като драстично се намали времето за проучвания на мнения и преразглеждания на обновеното за 15-ти път разписание в рамките на 10 дни. Така студентите по-лесно ще могат да намерят най-адекватната програма, която
отговаря на техните предпочитания, като ще имат възможност да разглеждат от няколко примерно генерирани такива. Предвижда се възможност за нанасяне на ръчни корекции по резултата.
[Functionalities/Надарености]
!!!!!
Редакция: Не ми се иска да трия долните изисквания, затова просто ще преформулирам точките 1 и 2
Тъй като не намерих общодостъпен HTML, а парсване на снимки наистина звучи абсурдно, то бих се спрял да конструирам интерфейс за приложението, който би работил с файлове от друг формат, например CSV.
(Име, преподавател, Предметна група, група на студента, часове, ECTS) или нещо подобно.
За избираеми би било подобен на горния формат с допълнителни полета (..., минимален курс, разрешени специалности(не всеки може да записва всяка дисциплина))
!!!!!
*1. Потребителят има възможност да генерира програма си като зададе своя курс и група. Системата би взела направила заявка до сайта на фми и би изтеглила файла с програмата(https://drive.google.com/file/d/1J9FlEjW_i9pGqtPMlO7ImOWJ4LfN80We/view?usp=share_link).
Чрез някаква магия, това би се парснало до файл, който би ни интересувал като човек от съответната група(още не съм го измислил как би станало) (https://drive.google.com/file/d/1vyx0EQxt4opBGXl5zNt5u-m0NoFIc5Hz/view?usp=share_link).
*2. Потребителят има възможност да избере да добави избираеми дисциплини към своята програма. Това би станало с 1 клик, като ще се изведе списък с валидните такива - системата би подала заявка до ФМИ и би си обработила разписанието(https://drive.google.com/file/d/1p2bZTdjlWsv3vdPWXY9BIv7ui4j3t1lD/view?usp=share_link).
Там той може да задава филтри за преподавател, категория и т.н. Би трябвало програмата да има опция за или без колизии между отделни предмети(например ако на някого са му скучни лекциите по ДИС (значи е измежду петимата на година, които не са си го взели при доц. Бабев),
то той може да иска да си сложи предмет въпреки дублирането на предмет в 1 и същи часови диапазон).
3. Чрез приложението няма да могат да се записват избираеми. То не е бот, следователно все още в битката при СУСИ студента си остава сам войн.
4. След като добави избираемата си дисциплина, то програмата му се актуализира с нея(https://drive.google.com/file/d/1GqTVoPJPiittc3uo67kSKRR9Pytyj-K6/view?usp=share_link). Стъпка 2 може да бъде повтаряна, докато ИД не станат 5 на брой. В такъв случай студента не може да записва повече в СУСИ и следователно и програмата му тук не би трябвало да го позволи.
5. Студент може да премахне избираема дисциплина от вече добавените си за семестъра. Програмата следва да бъде актуализирана.
6. Системата би следяла учебния план на потребителя (https://drive.google.com/file/d/1MlKYupZqyEBeul6drxatr7mKhnWSeZwK/view?usp=share_link), както и за историята му с вече изкараните дисциплини. Така тя ще прави предложение, на коя категория може да наблегне той.
7. Системата ще поддържа потребителски мнения за качество, задоволение и леснота на всяка дисциплина. Така ще може да се образуват достоверни субективни мнения за всеки предмет.
8. (Опционално) Системата ще поддържа персонализиран набор от цветове на всяка програма по вкус на потребителя.
[Milestones/Възлови точки]
Редакция : т.2 и 4, 5 не зависят толкова от мен. На този етап мога единствено да ги hardcode-na.
1. Създаване на профил, който помни име, предпочитания(цветовите в т.8 отгоре), курс и група.
*2. Комуникация между системата и сайта на ФМИ. Жизнено важно е да могат да бъдат обработвани 2-та типа документи и парсването им в един. Алтернатива на това е да се зареждат ръчно документите в приложението.
3. Създаване на логиката за добавяне и махане на дисциплини в програмата
*4. Система за проверка на актуалносттта на файловете. Щом потребителят пусне приложението, би се искало да му се каже дали има промяна в датите и дните на неговите дисциплини и ако има как да се справи с колизиите (да не ходи на редовната дисциплина или да отпише избираемата).
*5. Начин за прочитане на учебния план.
6. Система за поддържане на отделни мнения по предмета. Най-вероятно чрез log файлове.
7. Фунцкия за генериране на експортитуемо изображение/PDF, което би служило за програма през семестъра.
8. Потребителски интерфейс на приложението.
9. Поддръжка на Windows и Linux
[Estimate in man-hours/Времеоценка в човекочасове]
20 за изучаване Tkinter за декстоп интефейс + основната логика и правилна разработка на дизайна. Честно казано това е най-трудната част, тъй като не разбирам от Front-End, JavaScript, също и от WEB. Затова си оставям голям буфер.
20 за останалите работи, но може би могат и да се увеличат.
Грубо казано 45-50 часа, като много от тях ще са свързани с изучаване на нужните инструменти за проекта.
[Usage of technologies/Потребление на технологии]
Честно казано не знам напълно, но ето моите предположения:
//*- HTTP/requests module(нямам достъп до сайта на ФМИ, това отпада).
- Tkinter за GUI
- Pillow за генериране на екпортируеми изображения
- и още за които ще се сетя в процес на работа
'''

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

Антоан обнови решението на 15.12.2022 18:54 (преди над 1 година)

+'''
+[Title/Звание]
+
+Генератор на университетски програми
+
+[Description/Обрисовка]
+
+Идеята на този проект/декстоп приложение е да помогне в за изграждане на седмични програми в учебните заведения. Неговия фокус обаче е върху улесняването на процеса за избираеми дисциплини във ФМИ, като драстично се намали времето за проучвания на мнения и преразглеждания на обновеното за 15-ти път разписание в рамките на 10 дни. Така студентите по-лесно ще могат да намерят най-адекватната програма, която отговаря на техните предпочитания, като ще имат възможност да разглеждат от няколко примерно генерирани такива. Предвижда се възможност за нанасяне на ръчни корекции по резултата.
+
+[Functionalities/Надарености]
+
+1. Потребителят има възможност да генерира програма си като зададе своя курс и група. Системата би взела направила заявка до сайта на фми и би изтеглила файла с програмата(https://drive.google.com/file/d/1J9FlEjW_i9pGqtPMlO7ImOWJ4LfN80We/view?usp=share_link). Чрез някаква магия, това би се парснало до файл,
+който би ни интересувал като човек от съответната група(още не съм го измислил как би станало)
+(https://drive.google.com/file/d/1vyx0EQxt4opBGXl5zNt5u-m0NoFIc5Hz/view?usp=share_link).
+
+2. Потребителят има възможност да избере да добави избираеми дисциплини към своята програма. Това би станало с 1 клик, като ще се изведе списък с валидните такива - системата би подала заявка до ФМИ и би си обработила разписанието(https://drive.google.com/file/d/1p2bZTdjlWsv3vdPWXY9BIv7ui4j3t1lD/view?usp=share_link).
+Там той може да задава филтри за преподавател, категория и т.н. Би трябвало програмата да има опция за или без колизии между отделни предмети(например ако на някого са му скучни лекциите по ДИС (значи е измежду петимата на година, които не са си го взели при доц. Бабев), то той може да иска да си сложи предмет въпреки дублирането на предмет в 1 и същи часови диапазон).
+
+3. Чрез приложението няма да могат да се записват избираеми. То не е бот, следователно все още в битката при СУСИ студента си остава сам войн.
+
+4. След като добави избираемата си дисциплина, то програмата му се актуализира с нея(https://drive.google.com/file/d/1GqTVoPJPiittc3uo67kSKRR9Pytyj-K6/view?usp=share_link). Стъпка 2 може да бъде повтаряна, докато ИД не станат 5 на брой. В такъв случай студента не може да записва повече в СУСИ и следователно и програмата му тук не би трябвало да го позволи.
+
+5. Студент може да премахне избираема дисциплина от вече добавените си за семестъра. Програмата следва да бъде актуализирана.
+
+6. Системата би следяла учебния план на потребителя (https://drive.google.com/file/d/1MlKYupZqyEBeul6drxatr7mKhnWSeZwK/view?usp=share_link), както и за историята му с вече изкараните дисциплини. Така тя ще прави предложение, на коя категория може да наблегне той.
+
+7. Системата ще поддържа потребителски мнения за качество, задоволение и леснота на всяка дисциплина. Така ще може да се образуват достоверни субективни мнения за всеки предмет.
+
+8. (Опционално) Системата ще поддържа персонализиран набор от цветове на всяка програма по вкус на потребителя.
+
+[Milestones/Възлови точки]
+
+1. Създаване на профил, който помни име, предпочитания(цветовите в т.8 отгоре), курс и група.
+2. Комуникация между системата и сайта на ФМИ. Жизнено важно е да могат да бъдат обработвани 2-та типа документи и парсването им в един. Алтернатива на това е да се зареждат ръчно документите в приложението.
+3. Създаване на логиката за добавяне и махане на дисциплини в програмата.
+4. Система за проверка на актуалносттта на файловете. Щом потребителят пусне приложението, би се искало да му се каже дали има промяна в датите и дните на неговите дисциплини и ако има как да се справи с колизиите (да не ходи на редовната дисциплина или да отпише избираемата).
+5. Начин за прочитане на учебния план.
+6. Система за поддържане на отделни мнения по предмета. Най-вероятно чрез log файлове.
+7. Фунцкия за генериране на експортитуемо изображение/PDF, което би служило за програма през семестъра.
+8. Потребителски интерфейс на приложението.
+9. Поддръжка на Windows и Linux (тъй като в изискванията пише, че трябва да е повече от 1 ОС)
+
+[Estimate in man-hours/Времеоценка в човекочасове]
+
+20 за изучаване (на Django евентуално, ако ще поддържа интернет работа) + Tkinter за декстоп интефейс. Честно казано това е най-трудната част, тъй като не разбирам от Front-End, JavaScript, също и от WEB. Затова си оставям голям буфер.
+20 за останалите работи, но може би могат и да се увеличат.
+Грубо казано 45-50 часа, като много от тях ще са свързани с изучаване на нужните инструменти за проекта.
+
+[Usage of technologies/Потребление на технологии]
+
+Честно казано не знам напълно, но ето моите предположения:
+- HTTP/requests module
+- Tkinter за GUI
+- и още за които ще се сетя в процес на работа
+
+'''

Идеята много ми харесва, а ако се постараеш достатъчно, можеш да я пуснеш в production догодина :)
Няколко коментара:

  • Силно те съветвам да видиш какви алтернативи има за докопване до програмата. Ако всичко, на което разчиташ, са снимки, може да удариш на камък с парсването им. Предполагам, че има страници, които съдържат програмата в HTML вариант, който по-лесно ще парснеш. Дори да не намериш такива страници и да не можеш да парснеш снимките, предлагам ти да симулираш интерфейс, който би ти дал програмата. След защитата, ако си направил готин продукт, можеш да питаш маняците, които поддържат сайтовете на ФМИ да ти направят един интерфейс, който да ти дава информация, което разбира се няма нищо общо с курса и защитата - а просто ще направи проектът ти реално приложим.

  • "тъй като в изискванията пише, че трябва да е повече от 1 ОС" - Не приемай това за възлово изискване. В темата на форума пише, че е препоръчително да поддържате различни операционни системи, но в повечето случаи това не е нещо, за което трябва да се притесняваш. Ако работиш с файловата система, трябва да си една идея по-внимателен, но иначе - едва ли ще срещнеш трудности да го подкараш навсякъде. Не мисля, че ще използваш нещо OS-specific.

  • На твое място бих развил малко списъка с технологии. Като че ли си го претупал. В описаниято казваш Django, пък после пишеш Tk. Пишеш, че ще генерираш снимки, за което нямаш кой знае колко варианти, пък не си написал нищо. Това е само препоръка и не държа на него. Смятам, че дефиницията ти е достатъчна за да започнеш работа.

  • Алгоритмите за сглабяне на програма няма да са леки, така че остави GUI-то на заден план. Направи си основната функционалност, пък после му мисли как ще комуникираш с потребителите.

ПС: + 1 точка за хумора в дефиницията.

Успех!

Антоан обнови решението на 20.12.2022 13:55 (преди над 1 година)

'''
[Title/Звание]
Генератор на университетски програми
[Description/Обрисовка]
-Идеята на този проект/декстоп приложение е да помогне в за изграждане на седмични програми в учебните заведения. Неговия фокус обаче е върху улесняването на процеса за избираеми дисциплини във ФМИ, като драстично се намали времето за проучвания на мнения и преразглеждания на обновеното за 15-ти път разписание в рамките на 10 дни. Така студентите по-лесно ще могат да намерят най-адекватната програма, която отговаря на техните предпочитания, като ще имат възможност да разглеждат от няколко примерно генерирани такива. Предвижда се възможност за нанасяне на ръчни корекции по резултата.
+Идеята на този проект/декстоп приложение е да помогне в за изграждане на седмични програми в учебните заведения. Неговия фокус обаче е върху улесняването на процеса за избираеми дисциплини във ФМИ,
+като драстично се намали времето за проучвания на мнения и преразглеждания на обновеното за 15-ти път разписание в рамките на 10 дни. Така студентите по-лесно ще могат да намерят най-адекватната програма, която
+отговаря на техните предпочитания, като ще имат възможност да разглеждат от няколко примерно генерирани такива. Предвижда се възможност за нанасяне на ръчни корекции по резултата.
[Functionalities/Надарености]
-1. Потребителят има възможност да генерира програма си като зададе своя курс и група. Системата би взела направила заявка до сайта на фми и би изтеглила файла с програмата(https://drive.google.com/file/d/1J9FlEjW_i9pGqtPMlO7ImOWJ4LfN80We/view?usp=share_link). Чрез някаква магия, това би се парснало до файл,
-който би ни интересувал като човек от съответната група(още не съм го измислил как би станало)
-(https://drive.google.com/file/d/1vyx0EQxt4opBGXl5zNt5u-m0NoFIc5Hz/view?usp=share_link).
+!!!!!
+Редакция: Не ми се иска да трия долните изисквания, затова просто ще преформулирам точките 1 и 2
+Тъй като не намерих общодостъпен HTML, а парсване на снимки наистина звучи абсурдно, то бих се спрял да конструирам интерфейс за приложението, който би работил с файлове от друг формат, например CSV.
+(Име, преподавател, Предметна група, група на студента, часове, ECTS) или нещо подобно.
+За избираеми би било подобен на горния формат с допълнителни полета (..., минимален курс, разрешени специалности(не всеки може да записва всяка дисциплина))
+!!!!!
-2. Потребителят има възможност да избере да добави избираеми дисциплини към своята програма. Това би станало с 1 клик, като ще се изведе списък с валидните такива - системата би подала заявка до ФМИ и би си обработила разписанието(https://drive.google.com/file/d/1p2bZTdjlWsv3vdPWXY9BIv7ui4j3t1lD/view?usp=share_link).
-Там той може да задава филтри за преподавател, категория и т.н. Би трябвало програмата да има опция за или без колизии между отделни предмети(например ако на някого са му скучни лекциите по ДИС (значи е измежду петимата на година, които не са си го взели при доц. Бабев), то той може да иска да си сложи предмет въпреки дублирането на предмет в 1 и същи часови диапазон).
-
+*1. Потребителят има възможност да генерира програма си като зададе своя курс и група. Системата би взела направила заявка до сайта на фми и би изтеглила файла с програмата(https://drive.google.com/file/d/1J9FlEjW_i9pGqtPMlO7ImOWJ4LfN80We/view?usp=share_link).
+Чрез някаква магия, това би се парснало до файл, който би ни интересувал като човек от съответната група(още не съм го измислил как би станало) (https://drive.google.com/file/d/1vyx0EQxt4opBGXl5zNt5u-m0NoFIc5Hz/view?usp=share_link).
+*2. Потребителят има възможност да избере да добави избираеми дисциплини към своята програма. Това би станало с 1 клик, като ще се изведе списък с валидните такива - системата би подала заявка до ФМИ и би си обработила разписанието(https://drive.google.com/file/d/1p2bZTdjlWsv3vdPWXY9BIv7ui4j3t1lD/view?usp=share_link).
+Там той може да задава филтри за преподавател, категория и т.н. Би трябвало програмата да има опция за или без колизии между отделни предмети(например ако на някого са му скучни лекциите по ДИС (значи е измежду петимата на година, които не са си го взели при доц. Бабев),
+то той може да иска да си сложи предмет въпреки дублирането на предмет в 1 и същи часови диапазон).
3. Чрез приложението няма да могат да се записват избираеми. То не е бот, следователно все още в битката при СУСИ студента си остава сам войн.
-
4. След като добави избираемата си дисциплина, то програмата му се актуализира с нея(https://drive.google.com/file/d/1GqTVoPJPiittc3uo67kSKRR9Pytyj-K6/view?usp=share_link). Стъпка 2 може да бъде повтаряна, докато ИД не станат 5 на брой. В такъв случай студента не може да записва повече в СУСИ и следователно и програмата му тук не би трябвало да го позволи.
-
5. Студент може да премахне избираема дисциплина от вече добавените си за семестъра. Програмата следва да бъде актуализирана.
-
6. Системата би следяла учебния план на потребителя (https://drive.google.com/file/d/1MlKYupZqyEBeul6drxatr7mKhnWSeZwK/view?usp=share_link), както и за историята му с вече изкараните дисциплини. Така тя ще прави предложение, на коя категория може да наблегне той.
-
7. Системата ще поддържа потребителски мнения за качество, задоволение и леснота на всяка дисциплина. Така ще може да се образуват достоверни субективни мнения за всеки предмет.
-
8. (Опционално) Системата ще поддържа персонализиран набор от цветове на всяка програма по вкус на потребителя.
[Milestones/Възлови точки]
+Редакция : т.2 и 4, 5 не зависят толкова от мен. На този етап мога единствено да ги hardcode-na.
1. Създаване на профил, който помни име, предпочитания(цветовите в т.8 отгоре), курс и група.
-2. Комуникация между системата и сайта на ФМИ. Жизнено важно е да могат да бъдат обработвани 2-та типа документи и парсването им в един. Алтернатива на това е да се зареждат ръчно документите в приложението.
-3. Създаване на логиката за добавяне и махане на дисциплини в програмата.
-4. Система за проверка на актуалносттта на файловете. Щом потребителят пусне приложението, би се искало да му се каже дали има промяна в датите и дните на неговите дисциплини и ако има как да се справи с колизиите (да не ходи на редовната дисциплина или да отпише избираемата).
-5. Начин за прочитане на учебния план.
+*2. Комуникация между системата и сайта на ФМИ. Жизнено важно е да могат да бъдат обработвани 2-та типа документи и парсването им в един. Алтернатива на това е да се зареждат ръчно документите в приложението.
+3. Създаване на логиката за добавяне и махане на дисциплини в програмата
+*4. Система за проверка на актуалносттта на файловете. Щом потребителят пусне приложението, би се искало да му се каже дали има промяна в датите и дните на неговите дисциплини и ако има как да се справи с колизиите (да не ходи на редовната дисциплина или да отпише избираемата).
+*5. Начин за прочитане на учебния план.
6. Система за поддържане на отделни мнения по предмета. Най-вероятно чрез log файлове.
7. Фунцкия за генериране на експортитуемо изображение/PDF, което би служило за програма през семестъра.
8. Потребителски интерфейс на приложението.
-9. Поддръжка на Windows и Linux (тъй като в изискванията пише, че трябва да е повече от 1 ОС)
+9. Поддръжка на Windows и Linux
[Estimate in man-hours/Времеоценка в човекочасове]
-20 за изучаване (на Django евентуално, ако ще поддържа интернет работа) + Tkinter за декстоп интефейс. Честно казано това е най-трудната част, тъй като не разбирам от Front-End, JavaScript, също и от WEB. Затова си оставям голям буфер.
+20 за изучаване Tkinter за декстоп интефейс + основната логика и правилна разработка на дизайна. Честно казано това е най-трудната част, тъй като не разбирам от Front-End, JavaScript, също и от WEB. Затова си оставям голям буфер.
20 за останалите работи, но може би могат и да се увеличат.
Грубо казано 45-50 часа, като много от тях ще са свързани с изучаване на нужните инструменти за проекта.
[Usage of technologies/Потребление на технологии]
Честно казано не знам напълно, но ето моите предположения:
-- HTTP/requests module
+//*- HTTP/requests module(нямам достъп до сайта на ФМИ, това отпада).
- Tkinter за GUI
+- Pillow за генериране на екпортируеми изображения
- и още за които ще се сетя в процес на работа
-
'''