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

Резултати
0 точки от тестове
8 точки от учител

8 точки общо

0 успешни теста
0 неуспешни теста
Код

 1'''
 2Увод:
 3    Като бивш служител в кино, ми хрумна идеята за проекта, а именно букинг система за филмови прожекции.
 4
 5[Title/Звание]
 6    Cinemax // може да претърпи промяна
 7
 8[Description/Обрисовка]
 9
10Онлайн система за закупуване на билети за филми в кино. В системата ще имат достъп 3 вида потребители - клиенти, продавачи и админ, като всеки от тях ще има различни правомощия. Целта на системата е да улесни работата на служителите в киносалона, както чрез намаляване на опашките, насърчавайки закупуването на билети онлайн, така и улеснявайки ги чрез бърза, лесна и удобна за използване система.
11
12[Functionalities/Надарености]
13
141. Роли
15    1.1 Клиент:
16        - преглед на програма
17        - избор на филм
18        - преглед на детайли за всеки филм
19        - избор на час и място/места в залата
20        - закупуване на билет
21        - получаване на билет
22
23    1.2 Служител:
24        - има достъп до букинг ситемата
25        - меню за избор на конкретна прожекция(подредено спрямо часа на излъчване)
26        - на 1 ред ще има час,дата, име на филм, зала, цена и бутон "запази"
27        - при натискане на реда се появява кратко описание, за да е удобно в случаите, когато клиент зададе въпрос за филма, служителя да може да отговори.
28        - При натискане на "Запази", се пренасочва към избор на брой и вид билети(детски или стандартен) и след това избор на място/места
29        - в долния десен ъгъл ще се намира бутон "Плащане", при натискането на който се появява меню за избор на начина за плащане(с карта или в брой). След като клиента плати се избира конкрения метод, генерира се билет и операцията приключва.
30
31    1.3 Админ:
32        - може да блокира места, т.е. при счупване на седалка или някаква друга причина, може да забрани продажбата на конкретно място
33        - може да прави, променя и изтрива резервации
34        - да запази цялата зала
35        - промяна на цените на прожекциите
36        - вижда статистики за това каква е посещаемостта на различните филми, зали и други
37        - може да променя залата, в която се излъчва дадена прожекция 
38        - добавя/ премахва прожекции
39
402. Зали
41    2.0 
42        -Заетите места за конкертна прожекция в съотвентата зала и час се оцветяват в червено, свободните в зелено и маркираните в оранжево
43        - с всеки билет се участва в томбола
44
45    2.1 Нормална зала
46        - има 50 места (2 реда по 10 места, 5 реда по 6 места)
47
48    2.1 VIP зала
49        - има 30 места (2 реда по 7 места, 4 реда по 4 места)
50        - с всеки билет е включен комплимент от салона(вода + шампанско/кола)
51
52    2.1 Голяма зала
53        - има 100 места (2 реда по 20 места, 6 реда по 10 места)
54
553. Статистики и графики:
56    3.1 Колко хора са посетили дадена прожекция за даден период
57    3.2 За обща посещаемост на киносалона
58    3.3 Приходи от конкретен филм и общо
59
604. Томбола 
61    4.1 Всеки клиент, закупил билети, автоматично участва в месечна томбола за разлини награди.
62    4.2 Изтегляне на печелившите и изпращане на нотификации за това към тях.
63    
645. Билети
65    6.1 Билетите ще съдържат име на филма, час, дата, зала и уникален QR код, за да може да се проверява валидността им на входа.
66    6.2 Засега билетите ще се запазват в личния профил. (Ако ми остане време ще добавя опция за изтегляне на пдф или изпращане по мейл.)
67
68
69[Milestones/Възлови точки]
70    1. Създаване на база данни
71    2. Създаване на съответните класове
72        2.1 Клас "Movie" 
73            - всеки филм ще е от такъв вид
74            - съдържа име на филм, продължителност, кратко описание, участващи aктьори, категория, тип, жанр
75        2.2 клас "Cinema_hall" 
76            - всяка зала ще е от този вид
77            - съдържа номер на залата, вид(стандартна, голяма или ВИП), капацитет
78        2.3 и други
79    3. Създаване на връзка между тях
80    4. Развиване на функционалностите
81    5. Разкрасяване с Front-end
82
83[Estimate in man-hours/Времеоценка в човекочасове]
84    100ч.
85
86[Usage of technologies/Потребление на технологии]
87
88    - Django
89    - SQLite
90    - Front-end(html, css, bootstrap, js, jQuery)
91    - вградени модули 
92    - каквото още преценя, че ще ми бъде полезно
93
94Notes
95    -Когато се стигне до плащане просто да допусна, че местата са платени и при натискане на "плащане" направо местата да се запазват и да се генерира билет.
96
97'''


----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

Дискусия
Нелина Тотева
04.01.2024 14:45

Благодаря за идеята! Ще ми спести доста време да не търся как да стане, а и хубавото е че донякъде ми е познато.
Георги Кунчев
04.01.2024 10:46

За да направиш картата с кликабъл места на фронт-енда, можеш да разгледаш това: https://www.w3schools.com/html/html_images_imagemap.asp За да вземеш координатите на местата от снимката и да ги дадеш на HTML-а, предполагам можеш да използваш същите координати, които си ползвала в Turtle, но ако не, можеш да качиш снимка тук и да си ги нарисуваш, като вземеш координатите наготово: https://www.image-map.net/ Може и с GIMP, ако искаш - имат удобен инструмент за това. Ако искаш да хайлайтваш местата при селекция, можеш да използваш нещо такова: https://www.jqueryscript.net/other/Simple-jQuery-Plugin-For-Highlighting-Image-Map-Maphilight.html ПП: Давам всички тези насоки, защото това няма общо с Пайтън, а съм правил доста подобни мапове и знам с кое става лесно.
Георги Кунчев
04.01.2024 10:20

1. Ако имаш заглавие на филм, достатъчно е още едно поле (снимка, описание, продължителност...каквото решиш). 2. Да, мисля, че отстъпките са излишни. Графикити са ок и да - нещо ала matplotlib. 3. Автоматично ми звучи по-интересно за имплементация. 4. Предполагам, че с Turtle ще стане, да. Въпросът е как да ги направиш кликабъл на фронт-енда. Аз имам едно предложение, което ще оставя в отделен коментар, за да не претрупвам тук. 5. По-добре ще е и за нас, и за теб, ако ги смениш. Така имаш спесификацията пред теб и занеш какво гониш, но принципно не държа да го правиш.
Нелина Тотева
03.01.2024 22:40

Благодаря за обратната връзка! Имам няколко неща за осмисляне: 1. Тоест мога да махна описанието на филмите и като цяло нещата,които са само текст, с който нищо не се прави и да оставя само нещата, с които би имало някакво действие? 2. Точка 5(отстъпки и тн) може би също е безсмислена. Точка 3(графиките) мисля,че е ок да я има и вероятно пак е по-добре да е с някой от питонските модули за графики (c matplotlib например) 3. Как е по-добре да е томболата? Автоматично след плащане да се записват в нея или само при желание като клиента ръчно въвежда данните си за участие? 4. За седалките turtle дали би ми бил полезен? 5. Необходимо ли е да качвам ново описание на проекта, ако горните неща е по-добре да ги променя? Вероятно ще имам много въпроси като започна с проекта,но към момента това ми хрумва.
Георги Кунчев
03.01.2024 12:47

Звучи добре, но с няколко уговорки. - Част от логиката ми звучи ненужна. Да, логична е за реален проект, но ще ти отнеме време, което ние няма наистина да оценим, тъй изисква писане на лесен, но времеемък код. Например, дали в томболата участват само ВИП-овете, а пък другите само ако са взели два билета е излишна логика. Достатъчно е да направиш всички да участват в томболата. Приложи същото и на други места. Не се старай да пълниш проекта с функционланост, а с елементи, които визуализират различни познания. - За томболата бих препоръчал да имаш асинхронен worker, който да тегли печелившите и да им създава някакъв вид ноутификация, която да е видима през интерфейса. - Генерирай QR кодовете с Python. Не е нужно да пишеш кода сама, но се опитай да ги генерираш на back-end и да ги сервираш като картинки на front-end. - Помисли как можеш да визуализираш седалките като използваш Python. Нека не оставяме тази възлова част на някакви статични картинки и/или JS, защото ние се интересуваме от кода написан на Python, а не от JS-а.
История

f1'''f1'''
2Увод:2Увод:
3    Като бивш служител в кино, ми хрумна идеята за проекта, а именно букинг система за филмови прожекции.3    Като бивш служител в кино, ми хрумна идеята за проекта, а именно букинг система за филмови прожекции.
44
5[Title/Звание]5[Title/Звание]
6    Cinemax // може да претърпи промяна6    Cinemax // може да претърпи промяна
77
8[Description/Обрисовка]8[Description/Обрисовка]
99
10Онлайн система за закупуване на билети за филми в кино. В системата ще имат достъп 3 вида потребители - клиенти, продавачи и админ, като всеки от тях ще има различни правомощия. Целта на системата е да улесни работата на служителите в киносалона, както чрез намаляване на опашките, насърчавайки закупуването на билети онлайн, така и улеснявайки ги чрез бърза, лесна и удобна за използване система.10Онлайн система за закупуване на билети за филми в кино. В системата ще имат достъп 3 вида потребители - клиенти, продавачи и админ, като всеки от тях ще има различни правомощия. Целта на системата е да улесни работата на служителите в киносалона, както чрез намаляване на опашките, насърчавайки закупуването на билети онлайн, така и улеснявайки ги чрез бърза, лесна и удобна за използване система.
1111
12[Functionalities/Надарености]12[Functionalities/Надарености]
1313
141. Роли141. Роли
15    1.1 Клиент:15    1.1 Клиент:
16        - преглед на програма16        - преглед на програма
17        - избор на филм17        - избор на филм
18        - преглед на детайли за всеки филм18        - преглед на детайли за всеки филм
19        - избор на час и място/места в залата19        - избор на час и място/места в залата
20        - закупуване на билет20        - закупуване на билет
n21        -* опция за прилагане на код за намаление *n
22        - получаване на билет21        - получаване на билет
2322
24    1.2 Служител:23    1.2 Служител:
25        - има достъп до букинг ситемата24        - има достъп до букинг ситемата
26        - меню за избор на конкретна прожекция(подредено спрямо часа на излъчване)25        - меню за избор на конкретна прожекция(подредено спрямо часа на излъчване)
27        - на 1 ред ще има час,дата, име на филм, зала, цена и бутон "запази"26        - на 1 ред ще има час,дата, име на филм, зала, цена и бутон "запази"
28        - при натискане на реда се появява кратко описание, за да е удобно в случаите, когато клиент зададе въпрос за филма, служителя да може да отговори.27        - при натискане на реда се появява кратко описание, за да е удобно в случаите, когато клиент зададе въпрос за филма, служителя да може да отговори.
29        - При натискане на "Запази", се пренасочва към избор на брой и вид билети(детски или стандартен) и след това избор на място/места28        - При натискане на "Запази", се пренасочва към избор на брой и вид билети(детски или стандартен) и след това избор на място/места
n30        - в долния десен ъгъл ще се намира бутон "Плащане", при натискането на който се появява меню за избор на начина за плащане(с карта или в брой) (и *опция за въвеждане на код за отстъпка*). След като клиента плати се избира конкрения метод, генерира се билет и операцията приключва.n29        - в долния десен ъгъл ще се намира бутон "Плащане", при натискането на който се появява меню за избор на начина за плащане(с карта или в брой). След като клиента плати се избира конкрения метод, генерира се билет и операцията приключва.
3130
32    1.3 Админ:31    1.3 Админ:
33        - може да блокира места, т.е. при счупване на седалка или някаква друга причина, може да забрани продажбата на конкретно място32        - може да блокира места, т.е. при счупване на седалка или някаква друга причина, може да забрани продажбата на конкретно място
34        - може да прави, променя и изтрива резервации33        - може да прави, променя и изтрива резервации
35        - да запази цялата зала34        - да запази цялата зала
36        - промяна на цените на прожекциите35        - промяна на цените на прожекциите
37        - вижда статистики за това каква е посещаемостта на различните филми, зали и други36        - вижда статистики за това каква е посещаемостта на различните филми, зали и други
38        - може да променя залата, в която се излъчва дадена прожекция 37        - може да променя залата, в която се излъчва дадена прожекция 
39        - добавя/ премахва прожекции38        - добавя/ премахва прожекции
4039
412. Зали402. Зали
42    2.0 41    2.0 
43        -Заетите места за конкертна прожекция в съотвентата зала и час се оцветяват в червено, свободните в зелено и маркираните в оранжево42        -Заетите места за конкертна прожекция в съотвентата зала и час се оцветяват в червено, свободните в зелено и маркираните в оранжево
nn43        - с всеки билет се участва в томбола
4444
45    2.1 Нормална зала45    2.1 Нормална зала
46        - има 50 места (2 реда по 10 места, 5 реда по 6 места)46        - има 50 места (2 реда по 10 места, 5 реда по 6 места)
n47        -* при покупка на поне 2 билета, възможност за участие в томбола *n
4847
49    2.1 VIP зала48    2.1 VIP зала
50        - има 30 места (2 реда по 7 места, 4 реда по 4 места)49        - има 30 места (2 реда по 7 места, 4 реда по 4 места)
51        - с всеки билет е включен комплимент от салона(вода + шампанско/кола)50        - с всеки билет е включен комплимент от салона(вода + шампанско/кола)
n52        -* с всеки билет може да се участва в томбола*n
53 
5451
55    2.1 Голяма зала52    2.1 Голяма зала
56        - има 100 места (2 реда по 20 места, 6 реда по 10 места)53        - има 100 места (2 реда по 20 места, 6 реда по 10 места)
n57        -* при покупка на поне 2 билета, възможност за участие в томбола*n
5854
593. Статистики и графики:553. Статистики и графики:
60    3.1 Колко хора са посетили дадена прожекция за даден период56    3.1 Колко хора са посетили дадена прожекция за даден период
61    3.2 За обща посещаемост на киносалона57    3.2 За обща посещаемост на киносалона
62    3.3 Приходи от конкретен филм и общо58    3.3 Приходи от конкретен филм и общо
6359
n644.* Томбола *n604. Томбола 
65    4.1 Всеки изпълняващ условията по-горе може да участва в месечна томбола за разлини награди61    4.1 Всеки клиент, закупил билети, автоматично участва в месечна томбола за разлини награди.
66    4.2 Клиенът трябва да попълни форма с неговите данни и номер на билет и периодино ще пускаме рандом генератор за да имаме победители.62    4.2 Изтегляне на печелившите и изпращане на нотификации за това към тях.
67 63    
685. Отсъпки и ваучери 
69    5.1 Деца и учащи ще се възползват от преференциални цени на билетите 
70    5.2 Ще има промоционални дни в които всички филми от даден тип ще са намалени(напр. всички 3Д филми в зала,която не е ВИП ще са на цена 9 лв в сряда)
71    5.3 * Код за отстъпка може да се получи от нашата томбола или някои други специални събития *
72    5.4.* Ваучер на конкретна стойност може да се закупи от сайта и може се използва като се въведе номера му в полето с код за отстъпка *
73    5.5 * При въведен код за отстъпка, себестойността му се приспада от общата сума, следователно сметката намалява *
74 
756. Билети645. Билети
76    6.1 Билетите ще съдържат име на филма, час, дата, зала и уникален цифров код и * кюар код *, за да може да се проверява валидността им на входа.65    6.1 Билетите ще съдържат име на филма, час, дата, зала и уникален QR код, за да може да се проверява валидността им на входа.
77    6.2 Засега билетите ще се запазват в личния профил. (Ако ми остане време ще добавя опция за изтегляне на пдф или изпращане по мейл.)66    6.2 Засега билетите ще се запазват в личния профил. (Ако ми остане време ще добавя опция за изтегляне на пдф или изпращане по мейл.)
7867
7968
80[Milestones/Възлови точки]69[Milestones/Възлови точки]
81    1. Създаване на база данни70    1. Създаване на база данни
82    2. Създаване на съответните класове71    2. Създаване на съответните класове
83        2.1 Клас "Movie" 72        2.1 Клас "Movie" 
84            - всеки филм ще е от такъв вид73            - всеки филм ще е от такъв вид
85            - съдържа име на филм, продължителност, кратко описание, участващи aктьори, категория, тип, жанр74            - съдържа име на филм, продължителност, кратко описание, участващи aктьори, категория, тип, жанр
86        2.2 клас "Cinema_hall" 75        2.2 клас "Cinema_hall" 
87            - всяка зала ще е от този вид76            - всяка зала ще е от този вид
88            - съдържа номер на залата, вид(стандартна, голяма или ВИП), капацитет77            - съдържа номер на залата, вид(стандартна, голяма или ВИП), капацитет
89        2.3 и други78        2.3 и други
90    3. Създаване на връзка между тях79    3. Създаване на връзка между тях
91    4. Развиване на функционалностите80    4. Развиване на функционалностите
92    5. Разкрасяване с Front-end81    5. Разкрасяване с Front-end
9382
94[Estimate in man-hours/Времеоценка в човекочасове]83[Estimate in man-hours/Времеоценка в човекочасове]
95    100ч.84    100ч.
9685
97[Usage of technologies/Потребление на технологии]86[Usage of technologies/Потребление на технологии]
9887
99    - Django88    - Django
100    - SQLite89    - SQLite
101    - Front-end(html, css, bootstrap, js, jQuery)90    - Front-end(html, css, bootstrap, js, jQuery)
102    - вградени модули 91    - вградени модули 
103    - каквото още преценя, че ще ми бъде полезно92    - каквото още преценя, че ще ми бъде полезно
10493
105Notes94Notes
t106    - мисля когато се стигне до плащане просто да допусна, че местата са платени и при натискане на "плащане" направо местата да се запазват и да се генерира билет.t95    -Когато се стигне до плащане просто да допусна, че местата са платени и при натискане на "плащане" направо местата да се запазват и да се генерира билет.
107    - Основната ми идея е букинг системата. Всичко останало(означените със *) като томбола, ваучери и намаления ще са като бонус в зависимост от времето. Ще се постарая да направя повечето,но докъдето стигна. Ако може мнение дали проекта е ок без нещата със звезда и кои неща със звезда би било добре да ги включа, както и ако няма смисъл от някое.96 
108    
109'''97'''
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op