1"""
2[Title/Звание]
3SmartCart Core: Оптимизирана Backend система за управление на ресурси и логистика
4
5[Description/Обрисовка]
6SmartCart Core е софтуерна система, проектирана за автоматизация на процесите по следене и набавяне на домакински продукти.
7Проектът реализира дигитален модел на инвентарен контрол, интегриран с модул за логистично планиране. Системата е изградена чрез модулен подход,
8който разделя управлението на базата данни от алгоритмичната част. Основният фокус е върху прецизното съхранение на информация за наличностите
9и използването на графови алгоритми за оптимизация на пазаруването. Системата решава конкретен логистичен проблем: намиране на икономически най-изгодния
10маршрут между търговски обекти, балансирайки между транспортните разходи и цените на продуктите в списъка.
11
12[Functionalities/Надарености]
131. Инвентарен контрол: Всеки продукт е обект с дефинирани критични прагове (минимум/максимум). Backend логиката следи консумацията
14 в реално време и автоматично актуализира статуса на продуктите, подготвяйки заявки за следващо пазаруване при недостиг.
152. Логистичен Route Optimizer: Сървис, имплементиращ алгоритъма на Дийкстра за обхождане на граф. Възлите са магазини, а ребрата са пътищата.
16 Алгоритъмът изчислява оптимален маршрут, отчитайки разстоянието (тежест на реброто) и сумарната стойност на дефицитните стоки във всеки възел.
173. Интелигентен Recipe Resolver: Алгоритъм за разлагане на рецепти до съставни компоненти. Системата сравнява нужните продукти с текущите наличности
18 в базата данни и генерира дефицитен списък, който се предава директно към модула за оптимизация.
194. Бюджетен Контролер: Валидационен механизъм за следене на финансовите лимити по категории. Системата блокира транзакции, които
20 превишават зададения бюджет, и осигурява отчетност на разходите в реално време чрез заявки към транзакционния лог.
215. Транзакционен мениджър и история: Модул, който гарантира целостта на данните при преместване на артикули от "Списък за пазаруване" към "Склад".
22 Поддържа пълна история на покупките за последващи справки и статистически отчети.
23
24[Milestones/Възлови точки]
251. Database Design (Core Schema): Проектиране на релационна SQLite база данни с 5 основни таблици (users, stores, products, inventory, shopping_list)
26 и дефиниране на връзките между тях.
272. Data Access Objects Layer: Разработка на Python класове за CRUD операции, които капсулират SQL логиката и предоставят изчистен интерфейс
28 към бизнес слоевете на приложението.
293. Graph Engine Development: Имплементация на алгоритъма на Дийкстра за оптимизация на маршрута, използващ приоритетна опашка (heapq) за
30 изчисляване на най-краткия път в претеглен граф.
314. Core Logic Integration: Разработка на сървисите за управление на инвентара, бюджетните проверки и резолвъра за рецепти. Настройване на
32 автоматизираната комуникация между модулите.
335. QA & Logic Testing: Изпълнение на Unit тестове за валидация на графовите маршрути.
34
35[Estimate in man-hours/Времеоценка в човекочасове]
3645 часа (фокусирани върху ядрото на системата, стабилността на данните и функционалността на алгоритъма за маршрутизация).
37
38[Usage of technologies/Потребление на технологии]
39- Backend: Python 3.10+
40- База данни: sqlite3
41- Алгоритми: heapq (за приоритетни опашки), math (за изчисляване на тежести в графа).
42- Тестване: unittest или pytest за автоматизирана проверка на логиката.
43"""
----------------------------------------------------------------------
Ran 0 tests in 0.000s
NO TESTS RAN
Виктор Бечев
19.05.2026 19:08На хартия звучи супер. Ако беше задание по АСИ - щеше да е топ.
На мен обаче ми остават много въпроси:
- Имаш бекенд, а визуализация? Как ще ни го покажеш на защитите? Конзолно, графично, уеб?
- Базата "чиста" ли ще я ползваш? Без ORM? Ако ползваш ORM - точки 1 и 2 са ти 2-3 часа работа, максимум. Ако си пишеш само SQL заявките - повече. Ама е SQL, а не [Python](https://www.youtube.com/watch?v=e8eHILrlkoM).
- Дийкстра е няколко десетки реда код. Да го докараш мрежата до формата на граф, подходящ за Дийкстра - още няколко дестки реда. Това не е въпрос.
Като цяло много добре си описал проекта, ако ще го показваш на проджект мениджър или преподавател по такъв тип дисциплина. Има, обаче, реалният шанс реализацията на така описаният проект, да не е достатъчно обемен за максимален брой точки. Има шанс и аз да го подценявам, а всъщност да има висока сложност. Ако не си съгласен с казаното - просто го приеми като индикация и ела на защита с добър проект и добро количество написан [Python](https://www.youtube.com/watch?v=7DqvweTYTI0), и ще си затворя плювалника. :grin:
|