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

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

5 точки общо

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

 1"""
 2[Title/Звание]
 3Bank Management System
 4
 5[Description/Обрисовка]
 6Bank Managment System е приложение което имплементира основни банкови функционалности, основната цел на приложението е да предоставя лесен и бърз начин за управление на банкови услуги на клиенти и служители на различни банки.
 7Приложените ще има три вида потребители:
 8
 9* Клиент на банка(Клиент ще може да отваря повече сметки в повече банки).
10* Служител на банка(Служител изпълнява задача, която банката му наложи и въвежда данните в банковата система).
11* Служител на друга фирма(Отговорен за изпращане на чекове до клиенти от всички съшествуващи банки в системата).
12
13[Functionalities/Надарености]
14Клиентът ще има следния интерфейс:
15
16* Клиентът подава потребителски номер и име на банка, системата му връща стойността на сметката с подадения потребителски номер и в подадената банка, ако банката не съшествува или данните не одговарят извежда се подходящо съобщение.
17* Отвяряне на сметка в дадена банка (подава се име на банката, име ЕГН И възраст, като ограничение за възрастта се взима предвид 18+ и email за изпращане на съобщение).
18* Затваряне на сметка в дадена банка(подава се име на банката и потребителски номер, банката зачиства данните на клиента) отново при невалидни данни се изпраща съобщение на клиента.
19* Осребяване на чек получен от служител на друга фирма (подава се име на банката, потребителски номер и уникален код отговарящ за дадения чек, парите от чека се добавят на сметката на клиента).
20* Преместване на сметка от една банка в друга(подава се име на сегашната банка, на новата банка, както и потребителския номер).
21* Извеждане на всишки сметки на даден клиент сортирани низходящо по сума.
22* При натрупани съобщения клиента ще иска да ги разгледа всички сортирани хронологично.
23* Графично представяне на сумата в интервала от отваряне на сметката до текущия момент или до затваряне на сметката.
24
25Служител на банка приема набор от задачи:
26
27*Банката създава своите служители, и генерира задачите които разпределя на тях.
28
29* Проверява данните на клиента при опит за отваряне на сметка(може да реши да да ли да позволи отваряне на сметка, ако не одобри отваряне трябва да изпрати съобщение).
30* Аналогично на отваряне на сметка, служител може да откаже затваряне на сметка.
31* При опит за смяна на сметката в друга банка, служител трябва да провери да ли такава сметка съществува в сегашната сметка и ако същестува такава семтка потребителя пак може да реши да не одобри смяната.
32
33Във всеки един от случаите клиента получава съобщение за резултата от изпълнената задача от Служител на банка.
34Клиента ще вижда и името на служителя донел решението.
35
36Интерфейс на служител на банка:
37
38* Показват му се задачите които трябва да свърши, като всяка задача ще има име, тип, индекс, служителя първо трябва да свърши задачите с по малък индекс.
39* С подаване на индекс на задачата служителя трябва да може да види вдички подробности около нея.
40* Приключва задачата и одобрява заявката.
41* Приключва задачата и отказва заявката.
42* Слижител от новата банка праща заявка към старата банка за валидация на данните на клиента при опит за преместване на сметката. Служител от старата банка изпра булева стойност True или False в зависимост от валидността на данните на служителя от новата банка.
43
44Служител на външна фирма:
45
46* Създава и изпраща чек на клиент(подава име на банката, ЕГН, уникален код и сума).
47* Чекът трявба да съдържа уникален код и сума за превод, 
48
49Всички потребители на системата имат основните характеристики:
50* Име и фамилия
51* Възраст
52* Егн
53Клиента съдържа и списък от осребрените чекове.
54
55Всеки потребител има следния интерфейс:
56
57* Излизане от системата.
58* Help menu - показва речник от функционалностите които може да изпълнява даден тип потребител.
59* Profile menu - показва информация за потрбителя на системата(Име, Фамилия, Егн, Роля, ...).
60
61Изисквания на системата:
62
63* Вписване на потребител в системата.
64* Регистриране на потребител(Избор на роля една от трите).
65* Създаване на банка - не е нужно да се притежава акаунт в системата.
66
67
68[Milestones/Възлови точки]
69
70* Структура на основните класове и логиката между тях
71* Влизане и излизане в / от системата.
72* Създаване на банка.
73* Четене и записване на данни от / в базата данни на системата.
74
75* Графично представяне на данните.
76
77[Estimate in man-hours/Времеоценка в човекочасове]
78Около 100 - 120 часа долна граница може да се окаже и повече време.
79
80[Usage of technologies/Потребление на технологии]
81
821. matplotlib - графично представяне на данните.
832. tkinter или PuQt - графичен потребителски интерфейс.
843. datetime - за работа с дати при транзакции, отваряне и затвяряне на сметки.
854. SQLite - за базата данни.
865. hashlib - за  хеширане на паролите и сигурност на данните.
876. unittest - за тестване на функционалностите.
88
89С течение на разработването може да се наложи още някои вградени библиотеки да ползвам.
90
91"""


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

NO TESTS RAN

Дискусия
Виктор Бечев
02.12.2024 23:44

Проектът звучи добре. Няколко неща, за които да се замислиш: 1. Не искаш да работиш директно с базата, не си го причинявай. Ползвай някакъв ORM, като най-популярен бих предложил SQLAlchemy. 2. Помисли дали вместо графичен интерфейс не искаш да заложиш на уеб вариант. Не мога да ти гарантирам, че ще е по-лесно, но звучи сякаш имаш немалко менюта, операции и прочие, което ще е досадно за натамъняване на desktop версия. 3. Ако все пак решиш да го правиш desktop - PyQt има по-тегав learning curve, но определено е по-гъвкавото от двете.
История
Това решение има само една версия.