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:201. Ако имаш заглавие на филм, достатъчно е още едно поле (снимка, описание, продължителност...каквото решиш).
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-а.
|
f | 1 | ''' | f | 1 | ''' |
2 | Увод: | 2 | Увод: | ||
3 | Като бивш служител в кино, ми хрумна идеята за проекта, а именно букинг система за филмови прожекции. | 3 | Като бивш служител в кино, ми хрумна идеята за проекта, а именно букинг система за филмови прожекции. | ||
4 | 4 | ||||
5 | [Title/Звание] | 5 | [Title/Звание] | ||
6 | Cinemax // може да претърпи промяна | 6 | Cinemax // може да претърпи промяна | ||
7 | 7 | ||||
8 | [Description/Обрисовка] | 8 | [Description/Обрисовка] | ||
9 | 9 | ||||
10 | Онлайн система за закупуване на билети за филми в кино. В системата ще имат достъп 3 вида потребители - клиенти, продавачи и админ, като всеки от тях ще има различни правомощия. Целта на системата е да улесни работата на служителите в киносалона, както чрез намаляване на опашките, насърчавайки закупуването на билети онлайн, така и улеснявайки ги чрез бърза, лесна и удобна за използване система. | 10 | Онлайн система за закупуване на билети за филми в кино. В системата ще имат достъп 3 вида потребители - клиенти, продавачи и админ, като всеки от тях ще има различни правомощия. Целта на системата е да улесни работата на служителите в киносалона, както чрез намаляване на опашките, насърчавайки закупуването на билети онлайн, така и улеснявайки ги чрез бърза, лесна и удобна за използване система. | ||
11 | 11 | ||||
12 | [Functionalities/Надарености] | 12 | [Functionalities/Надарености] | ||
13 | 13 | ||||
14 | 1. Роли | 14 | 1. Роли | ||
15 | 1.1 Клиент: | 15 | 1.1 Клиент: | ||
16 | - преглед на програма | 16 | - преглед на програма | ||
17 | - избор на филм | 17 | - избор на филм | ||
18 | - преглед на детайли за всеки филм | 18 | - преглед на детайли за всеки филм | ||
19 | - избор на час и място/места в залата | 19 | - избор на час и място/места в залата | ||
20 | - закупуване на билет | 20 | - закупуване на билет | ||
n | 21 | -* опция за прилагане на код за намаление * | n | ||
22 | - получаване на билет | 21 | - получаване на билет | ||
23 | 22 | ||||
24 | 1.2 Служител: | 23 | 1.2 Служител: | ||
25 | - има достъп до букинг ситемата | 24 | - има достъп до букинг ситемата | ||
26 | - меню за избор на конкретна прожекция(подредено спрямо часа на излъчване) | 25 | - меню за избор на конкретна прожекция(подредено спрямо часа на излъчване) | ||
27 | - на 1 ред ще има час,дата, име на филм, зала, цена и бутон "запази" | 26 | - на 1 ред ще има час,дата, име на филм, зала, цена и бутон "запази" | ||
28 | - при натискане на реда се появява кратко описание, за да е удобно в случаите, когато клиент зададе въпрос за филма, служителя да може да отговори. | 27 | - при натискане на реда се появява кратко описание, за да е удобно в случаите, когато клиент зададе въпрос за филма, служителя да може да отговори. | ||
29 | - При натискане на "Запази", се пренасочва към избор на брой и вид билети(детски или стандартен) и след това избор на място/места | 28 | - При натискане на "Запази", се пренасочва към избор на брой и вид билети(детски или стандартен) и след това избор на място/места | ||
n | 30 | - в долния десен ъгъл ще се намира бутон "Плащане", при натискането на който се появява меню за избор на начина за плащане(с карта или в брой) (и *опция за въвеждане на код за отстъпка*). След като клиента плати се избира конкрения метод, генерира се билет и операцията приключва. | n | 29 | - в долния десен ъгъл ще се намира бутон "Плащане", при натискането на който се появява меню за избор на начина за плащане(с карта или в брой). След като клиента плати се избира конкрения метод, генерира се билет и операцията приключва. |
31 | 30 | ||||
32 | 1.3 Админ: | 31 | 1.3 Админ: | ||
33 | - може да блокира места, т.е. при счупване на седалка или някаква друга причина, може да забрани продажбата на конкретно място | 32 | - може да блокира места, т.е. при счупване на седалка или някаква друга причина, може да забрани продажбата на конкретно място | ||
34 | - може да прави, променя и изтрива резервации | 33 | - може да прави, променя и изтрива резервации | ||
35 | - да запази цялата зала | 34 | - да запази цялата зала | ||
36 | - промяна на цените на прожекциите | 35 | - промяна на цените на прожекциите | ||
37 | - вижда статистики за това каква е посещаемостта на различните филми, зали и други | 36 | - вижда статистики за това каква е посещаемостта на различните филми, зали и други | ||
38 | - може да променя залата, в която се излъчва дадена прожекция | 37 | - може да променя залата, в която се излъчва дадена прожекция | ||
39 | - добавя/ премахва прожекции | 38 | - добавя/ премахва прожекции | ||
40 | 39 | ||||
41 | 2. Зали | 40 | 2. Зали | ||
42 | 2.0 | 41 | 2.0 | ||
43 | -Заетите места за конкертна прожекция в съотвентата зала и час се оцветяват в червено, свободните в зелено и маркираните в оранжево | 42 | -Заетите места за конкертна прожекция в съотвентата зала и час се оцветяват в червено, свободните в зелено и маркираните в оранжево | ||
n | n | 43 | - с всеки билет се участва в томбола | ||
44 | 44 | ||||
45 | 2.1 Нормална зала | 45 | 2.1 Нормална зала | ||
46 | - има 50 места (2 реда по 10 места, 5 реда по 6 места) | 46 | - има 50 места (2 реда по 10 места, 5 реда по 6 места) | ||
n | 47 | -* при покупка на поне 2 билета, възможност за участие в томбола * | n | ||
48 | 47 | ||||
49 | 2.1 VIP зала | 48 | 2.1 VIP зала | ||
50 | - има 30 места (2 реда по 7 места, 4 реда по 4 места) | 49 | - има 30 места (2 реда по 7 места, 4 реда по 4 места) | ||
51 | - с всеки билет е включен комплимент от салона(вода + шампанско/кола) | 50 | - с всеки билет е включен комплимент от салона(вода + шампанско/кола) | ||
n | 52 | -* с всеки билет може да се участва в томбола* | n | ||
53 | |||||
54 | 51 | ||||
55 | 2.1 Голяма зала | 52 | 2.1 Голяма зала | ||
56 | - има 100 места (2 реда по 20 места, 6 реда по 10 места) | 53 | - има 100 места (2 реда по 20 места, 6 реда по 10 места) | ||
n | 57 | -* при покупка на поне 2 билета, възможност за участие в томбола* | n | ||
58 | 54 | ||||
59 | 3. Статистики и графики: | 55 | 3. Статистики и графики: | ||
60 | 3.1 Колко хора са посетили дадена прожекция за даден период | 56 | 3.1 Колко хора са посетили дадена прожекция за даден период | ||
61 | 3.2 За обща посещаемост на киносалона | 57 | 3.2 За обща посещаемост на киносалона | ||
62 | 3.3 Приходи от конкретен филм и общо | 58 | 3.3 Приходи от конкретен филм и общо | ||
63 | 59 | ||||
n | 64 | 4.* Томбола * | n | 60 | 4. Томбола |
65 | 4.1 Всеки изпълняващ условията по-горе може да участва в месечна томбола за разлини награди | 61 | 4.1 Всеки клиент, закупил билети, автоматично участва в месечна томбола за разлини награди. | ||
66 | 4.2 Клиенът трябва да попълни форма с неговите данни и номер на билет и периодино ще пускаме рандом генератор за да имаме победители. | 62 | 4.2 Изтегляне на печелившите и изпращане на нотификации за това към тях. | ||
67 | 63 | ||||
68 | 5. Отсъпки и ваучери | ||||
69 | 5.1 Деца и учащи ще се възползват от преференциални цени на билетите | ||||
70 | 5.2 Ще има промоционални дни в които всички филми от даден тип ще са намалени(напр. всички 3Д филми в зала,която не е ВИП ще са на цена 9 лв в сряда) | ||||
71 | 5.3 * Код за отстъпка може да се получи от нашата томбола или някои други специални събития * | ||||
72 | 5.4.* Ваучер на конкретна стойност може да се закупи от сайта и може се използва като се въведе номера му в полето с код за отстъпка * | ||||
73 | 5.5 * При въведен код за отстъпка, себестойността му се приспада от общата сума, следователно сметката намалява * | ||||
74 | |||||
75 | 6. Билети | 64 | 5. Билети | ||
76 | 6.1 Билетите ще съдържат име на филма, час, дата, зала и уникален цифров код и * кюар код *, за да може да се проверява валидността им на входа. | 65 | 6.1 Билетите ще съдържат име на филма, час, дата, зала и уникален QR код, за да може да се проверява валидността им на входа. | ||
77 | 6.2 Засега билетите ще се запазват в личния профил. (Ако ми остане време ще добавя опция за изтегляне на пдф или изпращане по мейл.) | 66 | 6.2 Засега билетите ще се запазват в личния профил. (Ако ми остане време ще добавя опция за изтегляне на пдф или изпращане по мейл.) | ||
78 | 67 | ||||
79 | 68 | ||||
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-end | 81 | 5. Разкрасяване с Front-end | ||
93 | 82 | ||||
94 | [Estimate in man-hours/Времеоценка в човекочасове] | 83 | [Estimate in man-hours/Времеоценка в човекочасове] | ||
95 | 100ч. | 84 | 100ч. | ||
96 | 85 | ||||
97 | [Usage of technologies/Потребление на технологии] | 86 | [Usage of technologies/Потребление на технологии] | ||
98 | 87 | ||||
99 | - Django | 88 | - Django | ||
100 | - SQLite | 89 | - SQLite | ||
101 | - Front-end(html, css, bootstrap, js, jQuery) | 90 | - Front-end(html, css, bootstrap, js, jQuery) | ||
102 | - вградени модули | 91 | - вградени модули | ||
103 | - каквото още преценя, че ще ми бъде полезно | 92 | - каквото още преценя, че ще ми бъде полезно | ||
104 | 93 | ||||
105 | Notes | 94 | Notes | ||
t | 106 | - мисля когато се стигне до плащане просто да допусна, че местата са платени и при натискане на "плащане" направо местата да се запазват и да се генерира билет. | t | 95 | -Когато се стигне до плащане просто да допусна, че местата са платени и при натискане на "плащане" направо местата да се запазват и да се генерира билет. |
107 | - Основната ми идея е букинг системата. Всичко останало(означените със *) като томбола, ваучери и намаления ще са като бонус в зависимост от времето. Ще се постарая да направя повечето,но докъдето стигна. Ако може мнение дали проекта е ок без нещата със звезда и кои неща със звезда би било добре да ги включа, както и ако няма смисъл от някое. | 96 | |||
108 | |||||
109 | ''' | 97 | ''' |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|