1"""
2Ново хайку, защото Виктор е сърдит:
3
4...- .-.. --.- --.. --- .... / ...- / --.. .- .-.. .- /
5-. .- / .--. .-. --- .--- . -.- - --- .-. / ... .--. .- -- / ... .--. .- -- / ... .--. .- -- /
6- .-. ..- --. -. .- .... / ... .. / --- - - .- --
7
8**[Title/Звание]**
9Shredded Monty Python
10
11**[Description/Обрисовка]**
12Никой не иска да е слаб колкото “Виктор Бечев” - име свързано с криминални престъпления по целия свят и обявен за международно
13издирване или да дава гадни домашни с още по-невъзможни тестове, в които слага снимки, на които иронично бърка цимент, за
14да ни се подиграва на пътя, който ще изберем след тази избираема дисциплина - “Георги Кунчев”. Чу ли, Жорка, r"^gadni\b" домашни.
15
16Всички тези житейски проблеми, обгърнали битието на студентите, следващи във ФМИ, са решени благодарение на
17Shredded Monty Python (не знам как ги решава). Това е уеб приложение, идеята зад което е да помогне на хората
18да постигнат своите фитнес цели, като предостави удобен и ефективен начин за проследяване на тренировките и
19физическия прогрес. Чрез лесен за използване интерфейс потребителите могат да записват своите тренировки,
20да следят промените в теглото и телесните си измервания и да следят своето развитие. Всеки потребител ще може
21да сподели прогреса си с останалите потребители, което подсказва една от основните цели на платформата -
22да създаде целеустремена, взаимноподкрепяща се общност.
23
24**[Functionalities/Надарености]**
251. **Потребителски профил**:
26
27 Регистрация - потребителят трябва да се регистрира преди използването на функционалностите на платформата.
28 Форма за регистрация:
29 - Потребителите трябва да попълнят форма с основна информация минимални изисквания за сигурност като:
30 - име и фамилия
31 - имейл адрес - трябва да се валидира дали имейлът вече е използван
32 - парола
33
34 Вход - потребителят трябва да влезе в профила си, ако вече се е регистрирал.
35 Форма за вход:
36 - имейл адрес
37 - парола
38
39 Личен профил с информация за тренировки и тегло:
40 - Приложението дава възможност на потребителите да създадат собствени рутинни програми, които са изградени според
41 различни фитнес цели – загуба на тегло, изграждане на мускулна маса, подобряване на издръжливостта и други.
42
432. **Администраторски профил**:
44 - Администраторът трябва да има достъп до всички функционалности, до които обикновения потребител има достъп.
45 - Администраторът трябва да може да сменя пароли на обикновените потребители, техните имейли и дори да ги изтрива
46 напълно.
47 - Администраторът трябва да може да трие постове, с цел да се запази адекватно ниво на цензура.
48 - Администраторът трябва да може да изпраща имейл лично (негенериран) до даден потребител, ако това е необходимо.
49 - Администраторът трябва да може да добавя нови упражнения в pool-a и да редактира предишните
50 - Администраторът е готин.
51
523. **Тренировки**:
53 - Възможност за добавяне на нова тренировка с полета:
54
55 - Логнатият потребител трябва да може да създаде своя тренировка, като попълни необходимата форма за
56 създаване на такава.
57
58 Формата ще съдържа:
59 - Вид на тренировката (например кардио, силова тренировка, йога).
60 - Продължителност в минути.
61 - Дата на провеждане.
62
63 - Преглед на всички записани тренировки в табличен формат:
64 - Логнатият потребител трябва да може да види всички свои записани тренировки в табличен формат.
65 - Редактиране и изтриване на записани тренировки:
66 - Логнатият потребител трябва да може да редактира и изтрива своите записани тренировки.
67
684. **Проследяване на тегло**:
69 - Добавяне на запис за тегло с дата на измерване:
70 - Логнатият потребител трябва да може да добавя запис за теглото си в даден ден, като може да го запише в
71 килограми или паундове.
72 - Преглед на всички записи в таблица:
73 - Логнатият потребител трябва да може да види всички свои записани измервания в табличен формат.
74 - Генериране на графика за промяната на теглото с времето:
75 - Логнатият потребител трябва да може да види графика, илюстрираща теглото му във времето.
76
775. **Графики и визуализации**:
78 - Графика за напредъка на теглото (тегло спрямо време).
79 - Визуализация на напредъка на потребителя спрямо сила.
80
816. **Известия**:
82 - Известия за успешно добавяне, редактиране или изтриване на данни чрез Django messages.
83 - Приложението предлага статистики по имейл (текущ месец/предходен месец), които дават визуална представа за
84 постигнатия напредък.
85 - Push Notifications - с цитати на готини хора, напр.: “Аз няма да пия” ~Костадин Русалов.
86
877. **For You**
88
89 - интерактивно пространство в приложението, където потребителите могат да се свързват, да споделят своя опит и да
90 участват в активни дискусии, свързани с техните фитнес цели и постижения.
91
92 Какво предоставя For You:
93 - Публикуване на постове:
94 - Потребителите могат да създават свои постове, в които да споделят мотивационни истории, съвети за тренировки,
95 въпроси или просто вдъхновяващи моменти от личното си фитнес пътуване (текст, снимки, клипове).
96 - Харесване и коментиране:
97 - Всяка публикация може да бъде харесвана от други потребители, като по този начин се създава чувство на подкрепа
98 и мотивация в общността.
99 - Водене на дискусии:
100 - For You е място за открити и вдъхновяващи дискусии.
101
1028. **Разновидност от калкулатори**
103
104 - страница от платформата, в която потребителят ще може да се възползва от набор от калкулатори,
105 с помощта на които може да получи нужна за него информация
106
107 - 1. One-Rep Max (1RM) Калкулатор - позволява на потребителите да изчислят максималната тежест, която могат да повдигнат
108 за едно повторение, базирано на текущата им тежест и брой повторения.
109 - 2. BMI (Body Mass Index) Калкулатор - калкулатор за телесна маса, който определя дали потребителят е поднормено тегло, нормално тегло,
110 наднормено тегло или със затлъстяване
111 - 3. Калориен Калкулатор - позволява да се определят колко калории са необходими за поддържане на текущото тегло, базирано на активността.
112 - 4. Калкулатор за мазнини в тялото (Body Fat Percentage) - изчислява процента телесни мазнини, базирано на обиколки на тялото.
113
1149. **Страница с упражнения**
115
116 - Shredded Monty Python ще включва страница с различни упражнения, която позволява на потребителите да разглеждат и организира
117 тренировките си по удобен и интуитивен начин.
118
119 Функционалности на страницата с упражнения:
120 1. Тагове за упражнения:
121 - видове тагове:
122 > мускулни групи: "back", "chest", "legs", "arms", "core".
123 > ниво на трудност: "beginner", "intermediate", "advanced".
124 > оборудване: "barbell", "dumbbells", "bodyweight", "resistance bands".
125 > тип на упражнението: "strength", "crossfit" (тагът ще бъде баннат предварително), "cardio", "functional training".
126
127 - всяко упражнение ще бъде категоризирано с един или повече тагове:
128 - тагове ще позволяват лесно търсене и филтриране.
129
130 2. Сортиране:
131 - азбучен ред (A-Z или Z-A).
132 - ниво на трудност: "beginner", "intermediate", "advanced".
133
134 3. Филтриране
135 - потребителите ще могат да филтрират упражненията чрез таговете, което ще улесни намирането на подходящи упражнения за техните нужди.
136
137 4. Формите на упражненията освен тагове и име на упражнението, ще включват и YouTube линкове към съответното упражнение, за да може да се визуализира
138 лесно начина му на изпълнение на потребителя
139
14010. (ако все още имам проблеми с визуализация > логика)
141
142 Карта с фитнеси в близост до потребителя:
143 - платформата ще поддържа карта, която използва текущото местоположение на потребителя и поддържа.
144 > автоматично намиране на фитнеси в радиус от 5км
145 > маркери за всеки фитнес с информация като име, адрес и рейтинг.
146
147 Преглед на рецензии:
148 - всяко място ще има секция за рецензии, където потребителите могат:
149 > да виждат съществуващи рецензии (ако се използва Google Places, рецензиите ще бъдат интегрирани директно).
150 > да добавят свои рецензии за съответния фитнес.
151
152 Добавяне на рецензии:
153 - регистрираните (логнатите) потребители могат да добавят своя оценка (от 1 до 5 звезди) и кратка похвала/критика.
154
155 Система за рейтинг:
156 - автоматично изчисляване на средния рейтинг за всеки фитнес въз основа на рецензиите от потребителите.
157 - сравнение на рейтингите на различните фитнеси.
158
159 Филтри и търсене:
160 - потребителите могат да търсят фитнеси на картата по критерии като:
161 > рейтинг.
162 > разстояние от текущото местоположение.
163
164**[Milestones/Възлови точки]**
165 - Инициализация на проекта:
166 - Създаване на нов Django проект и приложение.
167 - Конфигуриране на PostgreSQL база данни чрез psycopg2.
168 - Настройка на Django Admin за управление на данните.
169 - Създаване на модели:
170 - Модел за потребители: Използване на вградения User модел в Django.
171 - Модел за тренировки: Полета: вид тренировка, продължителност, дата, потребител.
172 - Модел за тегло: Полета: дата на измерване, тегло, потребител.
173 - Модел за упражнения: Полета: име, тагове (мускулни групи, ниво на трудност, оборудване, тип), YouTube линк.
174 - Модел за публикации и коментари в For You.
175 - CRUD функционалности за тренировки и тегло:
176 - Създаване на изгледи за добавяне, редактиране и изтриване на записи.
177 - Форми за валидиране на входните данни.
178 - Списък с всички записи за тренировки и тегло.
179 - Автентикация и ограничение на достъпа:
180 - Регистрация, вход и изход за потребители с валидиране на данни.
181 - Ограничаване на достъпа до функционалностите за логнати потребители.
182 - Frontend и визуализация:
183 - Създаване на шаблони с Django templates.
184 - Интеграция на Bootstrap за създаване на удобен интерфейс.
185 - Добавяне на графики за прогреса на теглото с Chart.js или Matplotlib.
186 - For You функционалности:
187 - Реализиране на функционалности за публикуване на постове, коментиране и харесване.
188 - Визуализация на списък с постове.
189 - Поддръжка на качване на медийни файлове.
190 - Известия и push нотификации:
191 - Реализация на push известия и известия чрез имейл, включително използване на Django messages.
192 - Разновидност от калкулатори:
193 - изграждане на калкулатори:
194 > One-Rep Max (1RM) Калкулатор.
195 > BMI (Body Mass Index) Калкулатор.
196 > Калориен Калкулатор.
197 > Калкулатор за мазнини в тялото (Body Fat Percentage).
198 - Страница с упражнения:
199 > Разработка на страница за разглеждане и организиране на упражнения.
200 > Добавяне на тагове за упражнения: мускулни групи, ниво на трудност, тип оборудване, видове упражнения.
201 > Реализиране на функционалност за търсене, сортиране (A-Z или Z-A) и филтриране чрез тагове.
202 - Карта
203 > Маркиране на фитнеси в радиус
204 > Рецензии
205 > Рейтинг система
206
207**[Estimate in man-hours/Времеоценка в човекочасове]**
208 - Инициализация на проекта (10 - 15 човекочаса).
209 - Създаване на модели (10 - 15 човекочаса).
210 - CRUD функционалности за тренировки и тегло (15- 20 човекочаса).
211 - Автентикация и ограничение на достъпа (10 - 15 човекочаса).
212 - Frontend и визуализация (15 - 20 човекочаса).
213 - For You функционалности (20 - 25 човекочаса).
214 - Известия и push нотификации (10 - 15 човекочаса).
215 - Разновидност от калкулатори (5 - 10 човекочаса).
216 - Страница с упражнения (15 - 20 човекочаса).
217 - Карта (25 - 30 човекочаса) (или 500 години).
218 - Тестване и завършване (15 - 20 човекочаса).
219
220Общо време 125(150) - 175(205) човекочаса
221
222**[Usage of technologies/Потребление на технологии]**
223 - **Backend**: Django (създаване на RESTful API за функционалностите).
224 - **База данни**: PostgreSQL.
225 - **Frontend**:
226 - Django templates (генериране на HTML съдържание).
227 - Bootstrap (стилизация на интерфейса).
228 - Chart.js или Matplotlib (визуализация на данни).
229 - **Библиотеки**:
230 - `psycopg2` (връзка между Django и PostgreSQL).
231 - Django messages (съобщения за успех/грешка).
232 - **Карта**:
233 - Google Maps API
234 - Google Places API
235"""
----------------------------------------------------------------------
Ran 0 tests in 0.000s
NO TESTS RAN
![]()
Илиан Запрянов
11.02.2025 03:38[Update]
Точка 7 стана прекалено бързо и чак се изненадах
Social (For You)
- замяза на форум от 2008 година, но толкова от мен (https://prnt.sc/TUKpy25KnfJy)
- формичката за post (https://prnt.sc/QzrpQPeoE9QT)
- верижката с коментари на даден пост (https://prnt.sc/XdyFMQCmidRX)
- администраторът може да трие както свои, така и чужди постове/коментари
- обикновения потребител може да трие само свои постове/коментари
- лайкове и save-ове (в тикток е така, нямам си идея защо са ми и двете, като ще правят едно и също) (https://prnt.sc/uO8IAkWW42qI)
- общо взето това е
Остана ми
- View Profile, където потребителят може да види своите харесани и запазени постове
- тестовете
Тоест няма да спамя повече с update-и, последният ще е останалото, не знам дали стана достатъчно голям, затова бих ви помолил да го прегледате, до защитата и благодаря за курса❤️
П.С. Викторе, не бях и близо до 12 повторения с 40кг, пиша ти го победа (оставих ти се)
Поздрави от мен и адаша, ще се видим за последно, а по повода:
https://www.youtube.com/watch?v=JcjzJsne6vk
|
![]()
Илиан Запрянов
10.02.2025 18:00[Update]
Обединих няколко точки в едно, защото виждах прекалено много общо между тях:
https://prnt.sc/vCMt9YAzrbbX
В днескашния епизод ще си говорим за Progress и Calendar
Calendar
- Трябва да си отговорим на философския въпрос "Какво е логично да има там? Ще преоткрия ли себе си и смисъла на живота?" - Календар и не.
- https://prnt.sc/uMlfgRrUQ5Zw
- след избиране на дата става магия (не, не се появява Тим Магьосника (Tim the Enchanter) от Монти Пайтън)
- единственото магическо нещо в проекта ми е необяснимо летящия ми фуутър навсякъде
- след избиране на дата потребителят може да логне своите тренировки, тегло, вода (https://prnt.sc/K-OwqI0rAaER)
- да, това е всичко
Progress
- мястото, където се представя нагледно прогресът на потребителя чрез много яки java scripter-ски графики с екзотично парсване на данни, които се подават чрез фундаменталното python view, издигащо на пиедестал всички мои психически проблеми и желанието ми да използвам вулгаризми в обращението ми към вас
- https://prnt.sc/pDOm-E_3-6mE
- тва е
- чупливо е, като се пропусне ден в графиките, но просто ми беше нелогично да имам default-ен y = 0, тъй като няма как в някой ден да тежи 0кг, затова разчитаме, че потребителите са хора с висока компютърна грамотност и дисциплина
Прогрес за сега:
- остана ми само For You и тестовете (не ми звучи като "само")
- доброто започна да печели, битката е ожесточена https://prnt.sc/iBRl7APqPjHi
Проблеми за сега:
- https://prnt.sc/tS6VoAfZcNfF
|
![]()
Илиан Запрянов
06.02.2025 00:37[Update]
- кариерата ми се развива добре и вече имам първия си абонат с username @viktorbechev
- ако още нещо ми бъгне и го търся цял ден, ще откача
- "Въпрос: Колко са важни django message-ите? Никога не съм ги ползвал и мисля, че ги махнах отвсякъде, трябва ли да ги върна?" - думи на един много мъдър човек, който можеше да има съобщение "брат, паролата ти е прекалено къса", вместо да изгуби 3 часа в търсене на грешката си в правилен код
"Аз лично бих дропнал 10 и 7, в този ред"
- точка 10 е backup заради "но има риск накрая да се окаже, че не си написал безкрайно много код", но смятам, че постоянните промени, които правя, ми разшириха логиката достатъчно, че да се размина с нея
- точка 7 ми е доста важна, тъй като не виждам никакъв смисъл от профилите, които почнах да правя, качването на профилни снимки и т.н., ако никъде не се използват, а само се гледат, ще дам всичко от себе си да успея да я направя, тъй като имах идеи за follower-и, saved posts, liked posts и т.н. Исках да е инстаграм за бедни, естествено без чата, тъй като няма да имам време, но е нещо, което бих направил в бъдеще, ако реша да го оправя в бъдеще
Относно
- тъпите имейли:
- много са тъпи
- откачих
- мразя имейли
- изгледани туториали как да си направя app password, за да ми работи кода: 194312
- горното даже не е свързано с програмиране
- имейлите са тъпи
- https://prnt.sc/yN-oFhqERnes
- https://prnt.sc/AiR1fBOF-YCT
- https://prnt.sc/cnLkcT4FhKOX , при цъкането върху даден потребител или "All Users", имейлът се изпраща или до конкретен потребител или до всички
Това измислих като алтернатива на точката, която бях описал, че искам да направя, надявам се да съм успял да се реванширам
Настройките ми също са готови
https://prnt.sc/7rQWjCjCBuA5
Съответно тук изгубих трите си часа, тъй като не ми се сменяше паролата, защото беше прекалено кратка, но не го виждах, а просто се рефрешваше
https://prnt.sc/7kimkoo51ayF
ахххх, рай
Прогрес за сега:
- шано алтернатива на имейли
- настройки
Проблеми:
- изненадващо няма нещо съществено, освен че "ако ти трябва ще разбереш" също е цитат от доста мъдър човек, разбрах
- не съм сигурен, че се справям с писането на качествен код и спазването на pep8
Рандъм снимка на логото ми, тъй като ме кефи и си играх прекалено много: https://prnt.sc/eKb_tFZvmy9T
|
![]()
Виктор Бечев
05.02.2025 10:54There, fixed, вече съм subscriber, само не ми upsell-вай и събскрипшън към OnlyFans.
За html-а - на защитата ще те питаме каква ти е защитата.
Отвъд това - it's looking good, не го казвам от куртоазия. Ако след няколко дни все още смяташ, че може и да не ти стигне времето за всичко, помисли какво ти е nice to have. Аз лично бих дропнал 10 и 7, в този ред _(т.е. 10 е първото, което бих отрязал, ако се налага още - 7)_. 10 защото е най-трудоемко, 7 защото е най-скучно.
Що се отнася до Django messages - нямам толкова богат опит колкото Жорката, по отношение на фреймуърка и уеб като цяло, но досега не съм писал нещо, което да е разчитало на този фийчър. Сигурно е полезно, но го третирай като инструмент тип метапрограмиране, нишки и пр. - ако ти **трябва** ще разбереш, ако не - няма нужда да го ползваш само за да го ползваш.
|
![]()
Илиан Запрянов
03.02.2025 18:35[Update]
Явно това е всичко, което заслужавам от вас https://prnt.sc/jiEq26Hevt35 ,
относно проблемите ми, имах доста по-големи извън проекта ми, сред които:
https://prnt.sc/-2UYDPxJwMXM
Стари проблеми:
- НОВИ ПОКАНИ ВСЕ ПАК ИМА!
- Заебах футъра и на защитата няма да спра да говоря как нарочно е оставен така, за да пречупи лишеното от въображение мислене на дизайнерите.
- Не питайте за html-а ми (https://prnt.sc/dV_JgFN1QV2T) и най-вече за рандъм js кода ми в workouts.html. В моя защита нямам защита.
Относно
9. **Страница с упражнения**
- Shredded [Monty Python](https://www.youtube.com/watch?v=vZw35VUBdzo) ще включва страница с различни упражнения, която позволява на потребителите да разглеждат и организира
тренировките си по удобен и интуитивен начин.
Функционалности на страницата с упражнения:
1. Тагове за упражнения:
- видове тагове:
> мускулни групи: "back", "chest", "legs", "arms", "core".
> ниво на трудност: "beginner", "intermediate", "advanced".
> оборудване: "barbell", "dumbbells", "bodyweight", "resistance bands".
> тип на упражнението: "strength", "crossfit" (тагът ще бъде баннат предварително), "cardio", "functional training".
- всяко упражнение ще бъде категоризирано с един или повече тагове:
- тагове ще позволяват лесно търсене и филтриране.
2. Сортиране:
- азбучен ред (A-Z или Z-A).
- ниво на трудност: "beginner", "intermediate", "advanced".
3. Филтриране
- потребителите ще могат да филтрират упражненията чрез таговете, което ще улесни намирането на подходящи упражнения за техните нужди.
4. Формите на упражненията освен тагове и име на упражнението, ще включват и YouTube линкове към съответното упражнение, за да може да се визуализира лесно начина му на изпълнение на потребителя
Всичко е готово и почни няма промени (има промени)
- "всяко упражнение ще бъде категоризирано с един или повече тагове" (вече е с един таг, със сигурност не беше, защото база-данните ми бъгнаха, а защото реших, че е по-подходящо)
- https://prnt.sc/3Qkq_ZP9sx_8 формата, за добавяне на упражнение е това
- https://prnt.sc/hf9Nx-kPDxDd реших, че това ще е шефска страница, която само админите могат да пипат, долу вляво с моливчето и големия червен хикс, внушаващ власт и величие у душата на администратора, могат съответно да се редактират и изтриват упражнения (обикновения потребител не ги вижда, както и не вижда и бутоните за създаване на упражнения)
- предната снимка спойлна другото различно, ноо...🥁🥁🥁🥁 РЕЙТИНГИ - https://prnt.sc/a_Q25I64wfV5 , съответно долното е упражнение, което обикновения потребител не е оценил, след като избере 5 звезди, тъй като Жорката е 5/5, вижда горния вариант на този рейтинг (средните звезди от всички рейтнали упражнението)
Прогрес за сега:
- шефската страница
- профилът е горе-долу сетъпнат (https://prnt.sc/TKOjqXr1Qs6C)
Проблеми за сега:
- искрено се притеснявам дали ще имам пълен проект, тъй като не остава много време, а ми остават доста неща
- Въпрос: Колко са важни django message-ите? Никога не съм ги ползвал и мисля, че ги махнах отвсякъде, трябва ли да ги върна?
|
![]()
Георги Кунчев
07.01.2025 11:34За жалост изпуснах поканата и вече е невалидна.
За самия футър не се притеснявай. Няма да е нещо, което ще повлияе на точките. Относно това, че те дразни, може да опитам няколко неща, но намясто, като си заредиш проекта. Може и довечера на лекцията да го погледнем.
|
![]()
Илиан Запрянов
28.12.2024 18:44[Update]
- отказах се от postgre и използвам вградената база данни (sqlite3)
- изпратих ви покани към github repository-то ми
- относно
8. Разновидност от калкулатори
- 1. One-Rep Max (1RM)
- 2. BMI (Body Mass Index)
- 3. Калориен Калкулатор
- 4. Калкулатор за мазнини в тялото (Body Fat Percentage)
Реших, че ще е готино и самите калкулатори да имат логване:
1. Попълва се формичката
2. Изчислява се резултата и се появява нов бутон "Add Log"
3. При натискане на "Add Log" се добавя ред в таблицата с логове отдолу, която потребителят вижда
4. Реших, че ще има и Remove бутони на всеки ред (log), тъй като missclick-нах 15 пъти и се изнервих
https://prnt.sc/BeHRDuPRLdkL
https://prnt.sc/4pgwtQAoGu-U
https://prnt.sc/-QdGnaEz1zF4
Прогрес за сега:
- Set up-нах си всичко
- Homepage
- Регистрация/Вход/Изход
- Рандъм страничка за "контакти"
- Калкулаторите ми са готови
- Ограничения на достъпа за нерегисриран потребител (да знам, че е един декоратор и един if във html-а, но звучи много умно)
- Това е най-грозният код, който съм писал
Проблеми за сега:
- https://prnt.sc/UGvFpVQqft18
- Не мога да си сложа footer-a най-отдолу трети ден на половината страници, тъй като, ако направя body-то 100% изглежда прекалено гнусно, затова на някои имам рандъм footer по средата на страницата, тъй като body-то е прекалено малко (например login) (помощ моля https://prnt.sc/z4oDI3V6oMSB) (много ме дразни)
|
![]()
Илиан Запрянов
03.12.2024 02:33Трудно преживявам, че се наложи да пиша ново хайку, но все пак приемам градивната критика, защото е с основание.
Вече бях имал предвид този риск и добавих идеите си за по-нататъшно развитие, ако се получи така, че проектът ми стане беден на пайтън код.
Поздрави,
Обикновен продавач на лук
|
![]()
Виктор Бечев
03.12.2024 00:24Трудно преживявам неправилната дължина на втория ред на хайкуто, но все пак оценявам.
Разписал си го чудесно, но има риск накрая да се окаже, че не си написал безкрайно много код. Нямаш почти нищо, което да тестваш, а парчетата функционалност, които си дефинирал са сравнително тривиални _(тривиални не значи, че са по 5 реда код, но сами по себе си не включват почти никаква логика, а предимно визуализация)_.
|
f | 1 | """ | f | 1 | """ |
2 | Ново хайку, защото Виктор е сърдит: | 2 | Ново хайку, защото Виктор е сърдит: | ||
3 | 3 | ||||
4 | ...- .-.. --.- --.. --- .... / ...- / --.. .- .-.. .- / | 4 | ...- .-.. --.- --.. --- .... / ...- / --.. .- .-.. .- / | ||
5 | -. .- / .--. .-. --- .--- . -.- - --- .-. / ... .--. .- -- / ... .--. .- -- / ... .--. .- -- / | 5 | -. .- / .--. .-. --- .--- . -.- - --- .-. / ... .--. .- -- / ... .--. .- -- / ... .--. .- -- / | ||
6 | - .-. ..- --. -. .- .... / ... .. / --- - - .- -- | 6 | - .-. ..- --. -. .- .... / ... .. / --- - - .- -- | ||
7 | 7 | ||||
8 | **[Title/Звание]** | 8 | **[Title/Звание]** | ||
9 | Shredded Monty Python | 9 | Shredded Monty Python | ||
10 | 10 | ||||
11 | **[Description/Обрисовка]** | 11 | **[Description/Обрисовка]** | ||
12 | Никой не иска да е слаб колкото “Виктор Бечев” - име свързано с криминални престъпления по целия свят и обявен за международно | 12 | Никой не иска да е слаб колкото “Виктор Бечев” - име свързано с криминални престъпления по целия свят и обявен за международно | ||
13 | издирване или да дава гадни домашни с още по-невъзможни тестове, в които слага снимки, на които иронично бърка цимент, за | 13 | издирване или да дава гадни домашни с още по-невъзможни тестове, в които слага снимки, на които иронично бърка цимент, за | ||
14 | да ни се подиграва на пътя, който ще изберем след тази избираема дисциплина - “Георги Кунчев”. Чу ли, Жорка, r"^gadni\b" домашни. | 14 | да ни се подиграва на пътя, който ще изберем след тази избираема дисциплина - “Георги Кунчев”. Чу ли, Жорка, r"^gadni\b" домашни. | ||
15 | 15 | ||||
16 | Всички тези житейски проблеми, обгърнали битието на студентите, следващи във ФМИ, са решени благодарение на | 16 | Всички тези житейски проблеми, обгърнали битието на студентите, следващи във ФМИ, са решени благодарение на | ||
17 | Shredded Monty Python (не знам как ги решава). Това е уеб приложение, идеята зад което е да помогне на хората | 17 | Shredded Monty Python (не знам как ги решава). Това е уеб приложение, идеята зад което е да помогне на хората | ||
18 | да постигнат своите фитнес цели, като предостави удобен и ефективен начин за проследяване на тренировките и | 18 | да постигнат своите фитнес цели, като предостави удобен и ефективен начин за проследяване на тренировките и | ||
19 | физическия прогрес. Чрез лесен за използване интерфейс потребителите могат да записват своите тренировки, | 19 | физическия прогрес. Чрез лесен за използване интерфейс потребителите могат да записват своите тренировки, | ||
20 | да следят промените в теглото и телесните си измервания и да следят своето развитие. Всеки потребител ще може | 20 | да следят промените в теглото и телесните си измервания и да следят своето развитие. Всеки потребител ще може | ||
21 | да сподели прогреса си с останалите потребители, което подсказва една от основните цели на платформата - | 21 | да сподели прогреса си с останалите потребители, което подсказва една от основните цели на платформата - | ||
22 | да създаде целеустремена, взаимноподкрепяща се общност. | 22 | да създаде целеустремена, взаимноподкрепяща се общност. | ||
23 | 23 | ||||
24 | **[Functionalities/Надарености]** | 24 | **[Functionalities/Надарености]** | ||
25 | 1. **Потребителски профил**: | 25 | 1. **Потребителски профил**: | ||
26 | 26 | ||||
27 | Регистрация - потребителят трябва да се регистрира преди използването на функционалностите на платформата. | 27 | Регистрация - потребителят трябва да се регистрира преди използването на функционалностите на платформата. | ||
28 | Форма за регистрация: | 28 | Форма за регистрация: | ||
29 | - Потребителите трябва да попълнят форма с основна информация минимални изисквания за сигурност като: | 29 | - Потребителите трябва да попълнят форма с основна информация минимални изисквания за сигурност като: | ||
30 | - име и фамилия | 30 | - име и фамилия | ||
31 | - имейл адрес - трябва да се валидира дали имейлът вече е използван | 31 | - имейл адрес - трябва да се валидира дали имейлът вече е използван | ||
32 | - парола | 32 | - парола | ||
33 | 33 | ||||
34 | Вход - потребителят трябва да влезе в профила си, ако вече се е регистрирал. | 34 | Вход - потребителят трябва да влезе в профила си, ако вече се е регистрирал. | ||
35 | Форма за вход: | 35 | Форма за вход: | ||
36 | - имейл адрес | 36 | - имейл адрес | ||
37 | - парола | 37 | - парола | ||
38 | 38 | ||||
39 | Личен профил с информация за тренировки и тегло: | 39 | Личен профил с информация за тренировки и тегло: | ||
40 | - Приложението дава възможност на потребителите да създадат собствени рутинни програми, които са изградени според | 40 | - Приложението дава възможност на потребителите да създадат собствени рутинни програми, които са изградени според | ||
41 | различни фитнес цели – загуба на тегло, изграждане на мускулна маса, подобряване на издръжливостта и други. | 41 | различни фитнес цели – загуба на тегло, изграждане на мускулна маса, подобряване на издръжливостта и други. | ||
42 | 42 | ||||
43 | 2. **Администраторски профил**: | 43 | 2. **Администраторски профил**: | ||
44 | - Администраторът трябва да има достъп до всички функционалности, до които обикновения потребител има достъп. | 44 | - Администраторът трябва да има достъп до всички функционалности, до които обикновения потребител има достъп. | ||
45 | - Администраторът трябва да може да сменя пароли на обикновените потребители, техните имейли и дори да ги изтрива | 45 | - Администраторът трябва да може да сменя пароли на обикновените потребители, техните имейли и дори да ги изтрива | ||
46 | напълно. | 46 | напълно. | ||
47 | - Администраторът трябва да може да трие постове, с цел да се запази адекватно ниво на цензура. | 47 | - Администраторът трябва да може да трие постове, с цел да се запази адекватно ниво на цензура. | ||
48 | - Администраторът трябва да може да изпраща имейл лично (негенериран) до даден потребител, ако това е необходимо. | 48 | - Администраторът трябва да може да изпраща имейл лично (негенериран) до даден потребител, ако това е необходимо. | ||
49 | - Администраторът трябва да може да добавя нови упражнения в pool-a и да редактира предишните | 49 | - Администраторът трябва да може да добавя нови упражнения в pool-a и да редактира предишните | ||
50 | - Администраторът е готин. | 50 | - Администраторът е готин. | ||
51 | 51 | ||||
52 | 3. **Тренировки**: | 52 | 3. **Тренировки**: | ||
53 | - Възможност за добавяне на нова тренировка с полета: | 53 | - Възможност за добавяне на нова тренировка с полета: | ||
54 | 54 | ||||
55 | - Логнатият потребител трябва да може да създаде своя тренировка, като попълни необходимата форма за | 55 | - Логнатият потребител трябва да може да създаде своя тренировка, като попълни необходимата форма за | ||
56 | създаване на такава. | 56 | създаване на такава. | ||
57 | 57 | ||||
58 | Формата ще съдържа: | 58 | Формата ще съдържа: | ||
59 | - Вид на тренировката (например кардио, силова тренировка, йога). | 59 | - Вид на тренировката (например кардио, силова тренировка, йога). | ||
60 | - Продължителност в минути. | 60 | - Продължителност в минути. | ||
61 | - Дата на провеждане. | 61 | - Дата на провеждане. | ||
62 | 62 | ||||
63 | - Преглед на всички записани тренировки в табличен формат: | 63 | - Преглед на всички записани тренировки в табличен формат: | ||
64 | - Логнатият потребител трябва да може да види всички свои записани тренировки в табличен формат. | 64 | - Логнатият потребител трябва да може да види всички свои записани тренировки в табличен формат. | ||
65 | - Редактиране и изтриване на записани тренировки: | 65 | - Редактиране и изтриване на записани тренировки: | ||
66 | - Логнатият потребител трябва да може да редактира и изтрива своите записани тренировки. | 66 | - Логнатият потребител трябва да може да редактира и изтрива своите записани тренировки. | ||
67 | 67 | ||||
68 | 4. **Проследяване на тегло**: | 68 | 4. **Проследяване на тегло**: | ||
69 | - Добавяне на запис за тегло с дата на измерване: | 69 | - Добавяне на запис за тегло с дата на измерване: | ||
70 | - Логнатият потребител трябва да може да добавя запис за теглото си в даден ден, като може да го запише в | 70 | - Логнатият потребител трябва да може да добавя запис за теглото си в даден ден, като може да го запише в | ||
71 | килограми или паундове. | 71 | килограми или паундове. | ||
72 | - Преглед на всички записи в таблица: | 72 | - Преглед на всички записи в таблица: | ||
73 | - Логнатият потребител трябва да може да види всички свои записани измервания в табличен формат. | 73 | - Логнатият потребител трябва да може да види всички свои записани измервания в табличен формат. | ||
74 | - Генериране на графика за промяната на теглото с времето: | 74 | - Генериране на графика за промяната на теглото с времето: | ||
75 | - Логнатият потребител трябва да може да види графика, илюстрираща теглото му във времето. | 75 | - Логнатият потребител трябва да може да види графика, илюстрираща теглото му във времето. | ||
76 | 76 | ||||
77 | 5. **Графики и визуализации**: | 77 | 5. **Графики и визуализации**: | ||
78 | - Графика за напредъка на теглото (тегло спрямо време). | 78 | - Графика за напредъка на теглото (тегло спрямо време). | ||
79 | - Визуализация на напредъка на потребителя спрямо сила. | 79 | - Визуализация на напредъка на потребителя спрямо сила. | ||
80 | 80 | ||||
81 | 6. **Известия**: | 81 | 6. **Известия**: | ||
82 | - Известия за успешно добавяне, редактиране или изтриване на данни чрез Django messages. | 82 | - Известия за успешно добавяне, редактиране или изтриване на данни чрез Django messages. | ||
83 | - Приложението предлага статистики по имейл (текущ месец/предходен месец), които дават визуална представа за | 83 | - Приложението предлага статистики по имейл (текущ месец/предходен месец), които дават визуална представа за | ||
84 | постигнатия напредък. | 84 | постигнатия напредък. | ||
85 | - Push Notifications - с цитати на готини хора, напр.: “Аз няма да пия” ~Костадин Русалов. | 85 | - Push Notifications - с цитати на готини хора, напр.: “Аз няма да пия” ~Костадин Русалов. | ||
86 | 86 | ||||
n | n | 87 | 7. **For You** | ||
88 | |||||
87 | 7. For You - интерактивно пространство в приложението, където потребителите могат да се свързват, да споделят своя опит и да | 89 | - интерактивно пространство в приложението, където потребителите могат да се свързват, да споделят своя опит и да | ||
88 | участват в активни дискусии, свързани с техните фитнес цели и постижения. | 90 | участват в активни дискусии, свързани с техните фитнес цели и постижения. | ||
91 | |||||
89 | Какво предоставя For You: | 92 | Какво предоставя For You: | ||
90 | - Публикуване на постове: | 93 | - Публикуване на постове: | ||
91 | - Потребителите могат да създават свои постове, в които да споделят мотивационни истории, съвети за тренировки, | 94 | - Потребителите могат да създават свои постове, в които да споделят мотивационни истории, съвети за тренировки, | ||
92 | въпроси или просто вдъхновяващи моменти от личното си фитнес пътуване (текст, снимки, клипове). | 95 | въпроси или просто вдъхновяващи моменти от личното си фитнес пътуване (текст, снимки, клипове). | ||
93 | - Харесване и коментиране: | 96 | - Харесване и коментиране: | ||
94 | - Всяка публикация може да бъде харесвана от други потребители, като по този начин се създава чувство на подкрепа | 97 | - Всяка публикация може да бъде харесвана от други потребители, като по този начин се създава чувство на подкрепа | ||
95 | и мотивация в общността. | 98 | и мотивация в общността. | ||
96 | - Водене на дискусии: | 99 | - Водене на дискусии: | ||
97 | - For You е място за открити и вдъхновяващи дискусии. | 100 | - For You е място за открити и вдъхновяващи дискусии. | ||
98 | 101 | ||||
n | n | 102 | 8. **Разновидност от калкулатори** | ||
103 | |||||
99 | 8. Разновидност от калкулатори - страница от платформата, в която потребителят ще може да се възползва от набор от калкулатори, | 104 | - страница от платформата, в която потребителят ще може да се възползва от набор от калкулатори, | ||
100 | с помощта на които може да получи нужна за него информация | 105 | с помощта на които може да получи нужна за него информация | ||
n | n | 106 | |||
101 | - 1. One-Rep Max (1RM) Калкулатор - позволява на потребителите да изчислят максималната тежест, която могат да повдигнат | 107 | - 1. One-Rep Max (1RM) Калкулатор - позволява на потребителите да изчислят максималната тежест, която могат да повдигнат | ||
102 | за едно повторение, базирано на текущата им тежест и брой повторения. | 108 | за едно повторение, базирано на текущата им тежест и брой повторения. | ||
103 | - 2. BMI (Body Mass Index) Калкулатор - калкулатор за телесна маса, който определя дали потребителят е поднормено тегло, нормално тегло, | 109 | - 2. BMI (Body Mass Index) Калкулатор - калкулатор за телесна маса, който определя дали потребителят е поднормено тегло, нормално тегло, | ||
104 | наднормено тегло или със затлъстяване | 110 | наднормено тегло или със затлъстяване | ||
105 | - 3. Калориен Калкулатор - позволява да се определят колко калории са необходими за поддържане на текущото тегло, базирано на активността. | 111 | - 3. Калориен Калкулатор - позволява да се определят колко калории са необходими за поддържане на текущото тегло, базирано на активността. | ||
106 | - 4. Калкулатор за мазнини в тялото (Body Fat Percentage) - изчислява процента телесни мазнини, базирано на обиколки на тялото. | 112 | - 4. Калкулатор за мазнини в тялото (Body Fat Percentage) - изчислява процента телесни мазнини, базирано на обиколки на тялото. | ||
107 | 113 | ||||
t | t | 114 | 9. **Страница с упражнения** | ||
115 | |||||
108 | 9. Страница с упражнения - Shredded Monty Python ще включва страница с различни упражнения, която позволява на потребителите да разглеждат и организира | 116 | - Shredded Monty Python ще включва страница с различни упражнения, която позволява на потребителите да разглеждат и организира | ||
109 | тренировките си по удобен и интуитивен начин. | 117 | тренировките си по удобен и интуитивен начин. | ||
110 | 118 | ||||
111 | Функционалности на страницата с упражнения: | 119 | Функционалности на страницата с упражнения: | ||
112 | 1. Тагове за упражнения: | 120 | 1. Тагове за упражнения: | ||
113 | - видове тагове: | 121 | - видове тагове: | ||
114 | > мускулни групи: "back", "chest", "legs", "arms", "core". | 122 | > мускулни групи: "back", "chest", "legs", "arms", "core". | ||
115 | > ниво на трудност: "beginner", "intermediate", "advanced". | 123 | > ниво на трудност: "beginner", "intermediate", "advanced". | ||
116 | > оборудване: "barbell", "dumbbells", "bodyweight", "resistance bands". | 124 | > оборудване: "barbell", "dumbbells", "bodyweight", "resistance bands". | ||
117 | > тип на упражнението: "strength", "crossfit" (тагът ще бъде баннат предварително), "cardio", "functional training". | 125 | > тип на упражнението: "strength", "crossfit" (тагът ще бъде баннат предварително), "cardio", "functional training". | ||
118 | 126 | ||||
119 | - всяко упражнение ще бъде категоризирано с един или повече тагове: | 127 | - всяко упражнение ще бъде категоризирано с един или повече тагове: | ||
120 | - тагове ще позволяват лесно търсене и филтриране. | 128 | - тагове ще позволяват лесно търсене и филтриране. | ||
121 | 129 | ||||
122 | 2. Сортиране: | 130 | 2. Сортиране: | ||
123 | - азбучен ред (A-Z или Z-A). | 131 | - азбучен ред (A-Z или Z-A). | ||
124 | - ниво на трудност: "beginner", "intermediate", "advanced". | 132 | - ниво на трудност: "beginner", "intermediate", "advanced". | ||
125 | 133 | ||||
126 | 3. Филтриране | 134 | 3. Филтриране | ||
127 | - потребителите ще могат да филтрират упражненията чрез таговете, което ще улесни намирането на подходящи упражнения за техните нужди. | 135 | - потребителите ще могат да филтрират упражненията чрез таговете, което ще улесни намирането на подходящи упражнения за техните нужди. | ||
128 | 136 | ||||
129 | 4. Формите на упражненията освен тагове и име на упражнението, ще включват и YouTube линкове към съответното упражнение, за да може да се визуализира | 137 | 4. Формите на упражненията освен тагове и име на упражнението, ще включват и YouTube линкове към съответното упражнение, за да може да се визуализира | ||
130 | лесно начина му на изпълнение на потребителя | 138 | лесно начина му на изпълнение на потребителя | ||
131 | 139 | ||||
132 | 10. (ако все още имам проблеми с визуализация > логика) | 140 | 10. (ако все още имам проблеми с визуализация > логика) | ||
133 | 141 | ||||
134 | Карта с фитнеси в близост до потребителя: | 142 | Карта с фитнеси в близост до потребителя: | ||
135 | - платформата ще поддържа карта, която използва текущото местоположение на потребителя и поддържа. | 143 | - платформата ще поддържа карта, която използва текущото местоположение на потребителя и поддържа. | ||
136 | > автоматично намиране на фитнеси в радиус от 5км | 144 | > автоматично намиране на фитнеси в радиус от 5км | ||
137 | > маркери за всеки фитнес с информация като име, адрес и рейтинг. | 145 | > маркери за всеки фитнес с информация като име, адрес и рейтинг. | ||
138 | 146 | ||||
139 | Преглед на рецензии: | 147 | Преглед на рецензии: | ||
140 | - всяко място ще има секция за рецензии, където потребителите могат: | 148 | - всяко място ще има секция за рецензии, където потребителите могат: | ||
141 | > да виждат съществуващи рецензии (ако се използва Google Places, рецензиите ще бъдат интегрирани директно). | 149 | > да виждат съществуващи рецензии (ако се използва Google Places, рецензиите ще бъдат интегрирани директно). | ||
142 | > да добавят свои рецензии за съответния фитнес. | 150 | > да добавят свои рецензии за съответния фитнес. | ||
143 | 151 | ||||
144 | Добавяне на рецензии: | 152 | Добавяне на рецензии: | ||
145 | - регистрираните (логнатите) потребители могат да добавят своя оценка (от 1 до 5 звезди) и кратка похвала/критика. | 153 | - регистрираните (логнатите) потребители могат да добавят своя оценка (от 1 до 5 звезди) и кратка похвала/критика. | ||
146 | 154 | ||||
147 | Система за рейтинг: | 155 | Система за рейтинг: | ||
148 | - автоматично изчисляване на средния рейтинг за всеки фитнес въз основа на рецензиите от потребителите. | 156 | - автоматично изчисляване на средния рейтинг за всеки фитнес въз основа на рецензиите от потребителите. | ||
149 | - сравнение на рейтингите на различните фитнеси. | 157 | - сравнение на рейтингите на различните фитнеси. | ||
150 | 158 | ||||
151 | Филтри и търсене: | 159 | Филтри и търсене: | ||
152 | - потребителите могат да търсят фитнеси на картата по критерии като: | 160 | - потребителите могат да търсят фитнеси на картата по критерии като: | ||
153 | > рейтинг. | 161 | > рейтинг. | ||
154 | > разстояние от текущото местоположение. | 162 | > разстояние от текущото местоположение. | ||
155 | 163 | ||||
156 | **[Milestones/Възлови точки]** | 164 | **[Milestones/Възлови точки]** | ||
157 | - Инициализация на проекта: | 165 | - Инициализация на проекта: | ||
158 | - Създаване на нов Django проект и приложение. | 166 | - Създаване на нов Django проект и приложение. | ||
159 | - Конфигуриране на PostgreSQL база данни чрез psycopg2. | 167 | - Конфигуриране на PostgreSQL база данни чрез psycopg2. | ||
160 | - Настройка на Django Admin за управление на данните. | 168 | - Настройка на Django Admin за управление на данните. | ||
161 | - Създаване на модели: | 169 | - Създаване на модели: | ||
162 | - Модел за потребители: Използване на вградения User модел в Django. | 170 | - Модел за потребители: Използване на вградения User модел в Django. | ||
163 | - Модел за тренировки: Полета: вид тренировка, продължителност, дата, потребител. | 171 | - Модел за тренировки: Полета: вид тренировка, продължителност, дата, потребител. | ||
164 | - Модел за тегло: Полета: дата на измерване, тегло, потребител. | 172 | - Модел за тегло: Полета: дата на измерване, тегло, потребител. | ||
165 | - Модел за упражнения: Полета: име, тагове (мускулни групи, ниво на трудност, оборудване, тип), YouTube линк. | 173 | - Модел за упражнения: Полета: име, тагове (мускулни групи, ниво на трудност, оборудване, тип), YouTube линк. | ||
166 | - Модел за публикации и коментари в For You. | 174 | - Модел за публикации и коментари в For You. | ||
167 | - CRUD функционалности за тренировки и тегло: | 175 | - CRUD функционалности за тренировки и тегло: | ||
168 | - Създаване на изгледи за добавяне, редактиране и изтриване на записи. | 176 | - Създаване на изгледи за добавяне, редактиране и изтриване на записи. | ||
169 | - Форми за валидиране на входните данни. | 177 | - Форми за валидиране на входните данни. | ||
170 | - Списък с всички записи за тренировки и тегло. | 178 | - Списък с всички записи за тренировки и тегло. | ||
171 | - Автентикация и ограничение на достъпа: | 179 | - Автентикация и ограничение на достъпа: | ||
172 | - Регистрация, вход и изход за потребители с валидиране на данни. | 180 | - Регистрация, вход и изход за потребители с валидиране на данни. | ||
173 | - Ограничаване на достъпа до функционалностите за логнати потребители. | 181 | - Ограничаване на достъпа до функционалностите за логнати потребители. | ||
174 | - Frontend и визуализация: | 182 | - Frontend и визуализация: | ||
175 | - Създаване на шаблони с Django templates. | 183 | - Създаване на шаблони с Django templates. | ||
176 | - Интеграция на Bootstrap за създаване на удобен интерфейс. | 184 | - Интеграция на Bootstrap за създаване на удобен интерфейс. | ||
177 | - Добавяне на графики за прогреса на теглото с Chart.js или Matplotlib. | 185 | - Добавяне на графики за прогреса на теглото с Chart.js или Matplotlib. | ||
178 | - For You функционалности: | 186 | - For You функционалности: | ||
179 | - Реализиране на функционалности за публикуване на постове, коментиране и харесване. | 187 | - Реализиране на функционалности за публикуване на постове, коментиране и харесване. | ||
180 | - Визуализация на списък с постове. | 188 | - Визуализация на списък с постове. | ||
181 | - Поддръжка на качване на медийни файлове. | 189 | - Поддръжка на качване на медийни файлове. | ||
182 | - Известия и push нотификации: | 190 | - Известия и push нотификации: | ||
183 | - Реализация на push известия и известия чрез имейл, включително използване на Django messages. | 191 | - Реализация на push известия и известия чрез имейл, включително използване на Django messages. | ||
184 | - Разновидност от калкулатори: | 192 | - Разновидност от калкулатори: | ||
185 | - изграждане на калкулатори: | 193 | - изграждане на калкулатори: | ||
186 | > One-Rep Max (1RM) Калкулатор. | 194 | > One-Rep Max (1RM) Калкулатор. | ||
187 | > BMI (Body Mass Index) Калкулатор. | 195 | > BMI (Body Mass Index) Калкулатор. | ||
188 | > Калориен Калкулатор. | 196 | > Калориен Калкулатор. | ||
189 | > Калкулатор за мазнини в тялото (Body Fat Percentage). | 197 | > Калкулатор за мазнини в тялото (Body Fat Percentage). | ||
190 | - Страница с упражнения: | 198 | - Страница с упражнения: | ||
191 | > Разработка на страница за разглеждане и организиране на упражнения. | 199 | > Разработка на страница за разглеждане и организиране на упражнения. | ||
192 | > Добавяне на тагове за упражнения: мускулни групи, ниво на трудност, тип оборудване, видове упражнения. | 200 | > Добавяне на тагове за упражнения: мускулни групи, ниво на трудност, тип оборудване, видове упражнения. | ||
193 | > Реализиране на функционалност за търсене, сортиране (A-Z или Z-A) и филтриране чрез тагове. | 201 | > Реализиране на функционалност за търсене, сортиране (A-Z или Z-A) и филтриране чрез тагове. | ||
194 | - Карта | 202 | - Карта | ||
195 | > Маркиране на фитнеси в радиус | 203 | > Маркиране на фитнеси в радиус | ||
196 | > Рецензии | 204 | > Рецензии | ||
197 | > Рейтинг система | 205 | > Рейтинг система | ||
198 | 206 | ||||
199 | **[Estimate in man-hours/Времеоценка в човекочасове]** | 207 | **[Estimate in man-hours/Времеоценка в човекочасове]** | ||
200 | - Инициализация на проекта (10 - 15 човекочаса). | 208 | - Инициализация на проекта (10 - 15 човекочаса). | ||
201 | - Създаване на модели (10 - 15 човекочаса). | 209 | - Създаване на модели (10 - 15 човекочаса). | ||
202 | - CRUD функционалности за тренировки и тегло (15- 20 човекочаса). | 210 | - CRUD функционалности за тренировки и тегло (15- 20 човекочаса). | ||
203 | - Автентикация и ограничение на достъпа (10 - 15 човекочаса). | 211 | - Автентикация и ограничение на достъпа (10 - 15 човекочаса). | ||
204 | - Frontend и визуализация (15 - 20 човекочаса). | 212 | - Frontend и визуализация (15 - 20 човекочаса). | ||
205 | - For You функционалности (20 - 25 човекочаса). | 213 | - For You функционалности (20 - 25 човекочаса). | ||
206 | - Известия и push нотификации (10 - 15 човекочаса). | 214 | - Известия и push нотификации (10 - 15 човекочаса). | ||
207 | - Разновидност от калкулатори (5 - 10 човекочаса). | 215 | - Разновидност от калкулатори (5 - 10 човекочаса). | ||
208 | - Страница с упражнения (15 - 20 човекочаса). | 216 | - Страница с упражнения (15 - 20 човекочаса). | ||
209 | - Карта (25 - 30 човекочаса) (или 500 години). | 217 | - Карта (25 - 30 човекочаса) (или 500 години). | ||
210 | - Тестване и завършване (15 - 20 човекочаса). | 218 | - Тестване и завършване (15 - 20 човекочаса). | ||
211 | 219 | ||||
212 | Общо време 125(150) - 175(205) човекочаса | 220 | Общо време 125(150) - 175(205) човекочаса | ||
213 | 221 | ||||
214 | **[Usage of technologies/Потребление на технологии]** | 222 | **[Usage of technologies/Потребление на технологии]** | ||
215 | - **Backend**: Django (създаване на RESTful API за функционалностите). | 223 | - **Backend**: Django (създаване на RESTful API за функционалностите). | ||
216 | - **База данни**: PostgreSQL. | 224 | - **База данни**: PostgreSQL. | ||
217 | - **Frontend**: | 225 | - **Frontend**: | ||
218 | - Django templates (генериране на HTML съдържание). | 226 | - Django templates (генериране на HTML съдържание). | ||
219 | - Bootstrap (стилизация на интерфейса). | 227 | - Bootstrap (стилизация на интерфейса). | ||
220 | - Chart.js или Matplotlib (визуализация на данни). | 228 | - Chart.js или Matplotlib (визуализация на данни). | ||
221 | - **Библиотеки**: | 229 | - **Библиотеки**: | ||
222 | - `psycopg2` (връзка между Django и PostgreSQL). | 230 | - `psycopg2` (връзка между Django и PostgreSQL). | ||
223 | - Django messages (съобщения за успех/грешка). | 231 | - Django messages (съобщения за успех/грешка). | ||
224 | - **Карта**: | 232 | - **Карта**: | ||
225 | - Google Maps API | 233 | - Google Maps API | ||
226 | - Google Places API | 234 | - Google Places API | ||
227 | """ | 235 | """ |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
f | 1 | """ | f | 1 | """ |
2 | Ново хайку, защото Виктор е сърдит: | 2 | Ново хайку, защото Виктор е сърдит: | ||
3 | 3 | ||||
4 | ...- .-.. --.- --.. --- .... / ...- / --.. .- .-.. .- / | 4 | ...- .-.. --.- --.. --- .... / ...- / --.. .- .-.. .- / | ||
5 | -. .- / .--. .-. --- .--- . -.- - --- .-. / ... .--. .- -- / ... .--. .- -- / ... .--. .- -- / | 5 | -. .- / .--. .-. --- .--- . -.- - --- .-. / ... .--. .- -- / ... .--. .- -- / ... .--. .- -- / | ||
6 | - .-. ..- --. -. .- .... / ... .. / --- - - .- -- | 6 | - .-. ..- --. -. .- .... / ... .. / --- - - .- -- | ||
7 | 7 | ||||
8 | **[Title/Звание]** | 8 | **[Title/Звание]** | ||
9 | Shredded Monty Python | 9 | Shredded Monty Python | ||
10 | 10 | ||||
11 | **[Description/Обрисовка]** | 11 | **[Description/Обрисовка]** | ||
12 | Никой не иска да е слаб колкото “Виктор Бечев” - име свързано с криминални престъпления по целия свят и обявен за международно | 12 | Никой не иска да е слаб колкото “Виктор Бечев” - име свързано с криминални престъпления по целия свят и обявен за международно | ||
13 | издирване или да дава гадни домашни с още по-невъзможни тестове, в които слага снимки, на които иронично бърка цимент, за | 13 | издирване или да дава гадни домашни с още по-невъзможни тестове, в които слага снимки, на които иронично бърка цимент, за | ||
14 | да ни се подиграва на пътя, който ще изберем след тази избираема дисциплина - “Георги Кунчев”. Чу ли, Жорка, r"^gadni\b" домашни. | 14 | да ни се подиграва на пътя, който ще изберем след тази избираема дисциплина - “Георги Кунчев”. Чу ли, Жорка, r"^gadni\b" домашни. | ||
15 | 15 | ||||
16 | Всички тези житейски проблеми, обгърнали битието на студентите, следващи във ФМИ, са решени благодарение на | 16 | Всички тези житейски проблеми, обгърнали битието на студентите, следващи във ФМИ, са решени благодарение на | ||
17 | Shredded Monty Python (не знам как ги решава). Това е уеб приложение, идеята зад което е да помогне на хората | 17 | Shredded Monty Python (не знам как ги решава). Това е уеб приложение, идеята зад което е да помогне на хората | ||
18 | да постигнат своите фитнес цели, като предостави удобен и ефективен начин за проследяване на тренировките и | 18 | да постигнат своите фитнес цели, като предостави удобен и ефективен начин за проследяване на тренировките и | ||
19 | физическия прогрес. Чрез лесен за използване интерфейс потребителите могат да записват своите тренировки, | 19 | физическия прогрес. Чрез лесен за използване интерфейс потребителите могат да записват своите тренировки, | ||
20 | да следят промените в теглото и телесните си измервания и да следят своето развитие. Всеки потребител ще може | 20 | да следят промените в теглото и телесните си измервания и да следят своето развитие. Всеки потребител ще може | ||
21 | да сподели прогреса си с останалите потребители, което подсказва една от основните цели на платформата - | 21 | да сподели прогреса си с останалите потребители, което подсказва една от основните цели на платформата - | ||
22 | да създаде целеустремена, взаимноподкрепяща се общност. | 22 | да създаде целеустремена, взаимноподкрепяща се общност. | ||
23 | 23 | ||||
24 | **[Functionalities/Надарености]** | 24 | **[Functionalities/Надарености]** | ||
25 | 1. **Потребителски профил**: | 25 | 1. **Потребителски профил**: | ||
26 | 26 | ||||
27 | Регистрация - потребителят трябва да се регистрира преди използването на функционалностите на платформата. | 27 | Регистрация - потребителят трябва да се регистрира преди използването на функционалностите на платформата. | ||
28 | Форма за регистрация: | 28 | Форма за регистрация: | ||
29 | - Потребителите трябва да попълнят форма с основна информация минимални изисквания за сигурност като: | 29 | - Потребителите трябва да попълнят форма с основна информация минимални изисквания за сигурност като: | ||
30 | - име и фамилия | 30 | - име и фамилия | ||
31 | - имейл адрес - трябва да се валидира дали имейлът вече е използван | 31 | - имейл адрес - трябва да се валидира дали имейлът вече е използван | ||
32 | - парола | 32 | - парола | ||
33 | 33 | ||||
34 | Вход - потребителят трябва да влезе в профила си, ако вече се е регистрирал. | 34 | Вход - потребителят трябва да влезе в профила си, ако вече се е регистрирал. | ||
35 | Форма за вход: | 35 | Форма за вход: | ||
36 | - имейл адрес | 36 | - имейл адрес | ||
37 | - парола | 37 | - парола | ||
38 | 38 | ||||
39 | Личен профил с информация за тренировки и тегло: | 39 | Личен профил с информация за тренировки и тегло: | ||
40 | - Приложението дава възможност на потребителите да създадат собствени рутинни програми, които са изградени според | 40 | - Приложението дава възможност на потребителите да създадат собствени рутинни програми, които са изградени според | ||
41 | различни фитнес цели – загуба на тегло, изграждане на мускулна маса, подобряване на издръжливостта и други. | 41 | различни фитнес цели – загуба на тегло, изграждане на мускулна маса, подобряване на издръжливостта и други. | ||
42 | 42 | ||||
43 | 2. **Администраторски профил**: | 43 | 2. **Администраторски профил**: | ||
44 | - Администраторът трябва да има достъп до всички функционалности, до които обикновения потребител има достъп. | 44 | - Администраторът трябва да има достъп до всички функционалности, до които обикновения потребител има достъп. | ||
45 | - Администраторът трябва да може да сменя пароли на обикновените потребители, техните имейли и дори да ги изтрива | 45 | - Администраторът трябва да може да сменя пароли на обикновените потребители, техните имейли и дори да ги изтрива | ||
46 | напълно. | 46 | напълно. | ||
47 | - Администраторът трябва да може да трие постове, с цел да се запази адекватно ниво на цензура. | 47 | - Администраторът трябва да може да трие постове, с цел да се запази адекватно ниво на цензура. | ||
48 | - Администраторът трябва да може да изпраща имейл лично (негенериран) до даден потребител, ако това е необходимо. | 48 | - Администраторът трябва да може да изпраща имейл лично (негенериран) до даден потребител, ако това е необходимо. | ||
49 | - Администраторът трябва да може да добавя нови упражнения в pool-a и да редактира предишните | 49 | - Администраторът трябва да може да добавя нови упражнения в pool-a и да редактира предишните | ||
50 | - Администраторът е готин. | 50 | - Администраторът е готин. | ||
51 | 51 | ||||
52 | 3. **Тренировки**: | 52 | 3. **Тренировки**: | ||
53 | - Възможност за добавяне на нова тренировка с полета: | 53 | - Възможност за добавяне на нова тренировка с полета: | ||
54 | 54 | ||||
55 | - Логнатият потребител трябва да може да създаде своя тренировка, като попълни необходимата форма за | 55 | - Логнатият потребител трябва да може да създаде своя тренировка, като попълни необходимата форма за | ||
56 | създаване на такава. | 56 | създаване на такава. | ||
57 | 57 | ||||
58 | Формата ще съдържа: | 58 | Формата ще съдържа: | ||
59 | - Вид на тренировката (например кардио, силова тренировка, йога). | 59 | - Вид на тренировката (например кардио, силова тренировка, йога). | ||
60 | - Продължителност в минути. | 60 | - Продължителност в минути. | ||
61 | - Дата на провеждане. | 61 | - Дата на провеждане. | ||
62 | 62 | ||||
63 | - Преглед на всички записани тренировки в табличен формат: | 63 | - Преглед на всички записани тренировки в табличен формат: | ||
64 | - Логнатият потребител трябва да може да види всички свои записани тренировки в табличен формат. | 64 | - Логнатият потребител трябва да може да види всички свои записани тренировки в табличен формат. | ||
65 | - Редактиране и изтриване на записани тренировки: | 65 | - Редактиране и изтриване на записани тренировки: | ||
66 | - Логнатият потребител трябва да може да редактира и изтрива своите записани тренировки. | 66 | - Логнатият потребител трябва да може да редактира и изтрива своите записани тренировки. | ||
67 | 67 | ||||
68 | 4. **Проследяване на тегло**: | 68 | 4. **Проследяване на тегло**: | ||
69 | - Добавяне на запис за тегло с дата на измерване: | 69 | - Добавяне на запис за тегло с дата на измерване: | ||
70 | - Логнатият потребител трябва да може да добавя запис за теглото си в даден ден, като може да го запише в | 70 | - Логнатият потребител трябва да може да добавя запис за теглото си в даден ден, като може да го запише в | ||
71 | килограми или паундове. | 71 | килограми или паундове. | ||
72 | - Преглед на всички записи в таблица: | 72 | - Преглед на всички записи в таблица: | ||
73 | - Логнатият потребител трябва да може да види всички свои записани измервания в табличен формат. | 73 | - Логнатият потребител трябва да може да види всички свои записани измервания в табличен формат. | ||
74 | - Генериране на графика за промяната на теглото с времето: | 74 | - Генериране на графика за промяната на теглото с времето: | ||
75 | - Логнатият потребител трябва да може да види графика, илюстрираща теглото му във времето. | 75 | - Логнатият потребител трябва да може да види графика, илюстрираща теглото му във времето. | ||
76 | 76 | ||||
77 | 5. **Графики и визуализации**: | 77 | 5. **Графики и визуализации**: | ||
78 | - Графика за напредъка на теглото (тегло спрямо време). | 78 | - Графика за напредъка на теглото (тегло спрямо време). | ||
79 | - Визуализация на напредъка на потребителя спрямо сила. | 79 | - Визуализация на напредъка на потребителя спрямо сила. | ||
80 | 80 | ||||
81 | 6. **Известия**: | 81 | 6. **Известия**: | ||
82 | - Известия за успешно добавяне, редактиране или изтриване на данни чрез Django messages. | 82 | - Известия за успешно добавяне, редактиране или изтриване на данни чрез Django messages. | ||
83 | - Приложението предлага статистики по имейл (текущ месец/предходен месец), които дават визуална представа за | 83 | - Приложението предлага статистики по имейл (текущ месец/предходен месец), които дават визуална представа за | ||
84 | постигнатия напредък. | 84 | постигнатия напредък. | ||
85 | - Push Notifications - с цитати на готини хора, напр.: “Аз няма да пия” ~Костадин Русалов. | 85 | - Push Notifications - с цитати на готини хора, напр.: “Аз няма да пия” ~Костадин Русалов. | ||
86 | 86 | ||||
87 | 7. For You - интерактивно пространство в приложението, където потребителите могат да се свързват, да споделят своя опит и да | 87 | 7. For You - интерактивно пространство в приложението, където потребителите могат да се свързват, да споделят своя опит и да | ||
88 | участват в активни дискусии, свързани с техните фитнес цели и постижения. | 88 | участват в активни дискусии, свързани с техните фитнес цели и постижения. | ||
89 | Какво предоставя For You: | 89 | Какво предоставя For You: | ||
90 | - Публикуване на постове: | 90 | - Публикуване на постове: | ||
91 | - Потребителите могат да създават свои постове, в които да споделят мотивационни истории, съвети за тренировки, | 91 | - Потребителите могат да създават свои постове, в които да споделят мотивационни истории, съвети за тренировки, | ||
92 | въпроси или просто вдъхновяващи моменти от личното си фитнес пътуване (текст, снимки, клипове). | 92 | въпроси или просто вдъхновяващи моменти от личното си фитнес пътуване (текст, снимки, клипове). | ||
93 | - Харесване и коментиране: | 93 | - Харесване и коментиране: | ||
94 | - Всяка публикация може да бъде харесвана от други потребители, като по този начин се създава чувство на подкрепа | 94 | - Всяка публикация може да бъде харесвана от други потребители, като по този начин се създава чувство на подкрепа | ||
95 | и мотивация в общността. | 95 | и мотивация в общността. | ||
96 | - Водене на дискусии: | 96 | - Водене на дискусии: | ||
97 | - For You е място за открити и вдъхновяващи дискусии. | 97 | - For You е място за открити и вдъхновяващи дискусии. | ||
98 | 98 | ||||
99 | 8. Разновидност от калкулатори - страница от платформата, в която потребителят ще може да се възползва от набор от калкулатори, | 99 | 8. Разновидност от калкулатори - страница от платформата, в която потребителят ще може да се възползва от набор от калкулатори, | ||
100 | с помощта на които може да получи нужна за него информация | 100 | с помощта на които може да получи нужна за него информация | ||
101 | - 1. One-Rep Max (1RM) Калкулатор - позволява на потребителите да изчислят максималната тежест, която могат да повдигнат | 101 | - 1. One-Rep Max (1RM) Калкулатор - позволява на потребителите да изчислят максималната тежест, която могат да повдигнат | ||
102 | за едно повторение, базирано на текущата им тежест и брой повторения. | 102 | за едно повторение, базирано на текущата им тежест и брой повторения. | ||
103 | - 2. BMI (Body Mass Index) Калкулатор - калкулатор за телесна маса, който определя дали потребителят е поднормено тегло, нормално тегло, | 103 | - 2. BMI (Body Mass Index) Калкулатор - калкулатор за телесна маса, който определя дали потребителят е поднормено тегло, нормално тегло, | ||
104 | наднормено тегло или със затлъстяване | 104 | наднормено тегло или със затлъстяване | ||
105 | - 3. Калориен Калкулатор - позволява да се определят колко калории са необходими за поддържане на текущото тегло, базирано на активността. | 105 | - 3. Калориен Калкулатор - позволява да се определят колко калории са необходими за поддържане на текущото тегло, базирано на активността. | ||
106 | - 4. Калкулатор за мазнини в тялото (Body Fat Percentage) - изчислява процента телесни мазнини, базирано на обиколки на тялото. | 106 | - 4. Калкулатор за мазнини в тялото (Body Fat Percentage) - изчислява процента телесни мазнини, базирано на обиколки на тялото. | ||
107 | 107 | ||||
108 | 9. Страница с упражнения - Shredded Monty Python ще включва страница с различни упражнения, която позволява на потребителите да разглеждат и организира | 108 | 9. Страница с упражнения - Shredded Monty Python ще включва страница с различни упражнения, която позволява на потребителите да разглеждат и организира | ||
109 | тренировките си по удобен и интуитивен начин. | 109 | тренировките си по удобен и интуитивен начин. | ||
110 | 110 | ||||
111 | Функционалности на страницата с упражнения: | 111 | Функционалности на страницата с упражнения: | ||
112 | 1. Тагове за упражнения: | 112 | 1. Тагове за упражнения: | ||
113 | - видове тагове: | 113 | - видове тагове: | ||
114 | > мускулни групи: "back", "chest", "legs", "arms", "core". | 114 | > мускулни групи: "back", "chest", "legs", "arms", "core". | ||
115 | > ниво на трудност: "beginner", "intermediate", "advanced". | 115 | > ниво на трудност: "beginner", "intermediate", "advanced". | ||
116 | > оборудване: "barbell", "dumbbells", "bodyweight", "resistance bands". | 116 | > оборудване: "barbell", "dumbbells", "bodyweight", "resistance bands". | ||
117 | > тип на упражнението: "strength", "crossfit" (тагът ще бъде баннат предварително), "cardio", "functional training". | 117 | > тип на упражнението: "strength", "crossfit" (тагът ще бъде баннат предварително), "cardio", "functional training". | ||
118 | 118 | ||||
119 | - всяко упражнение ще бъде категоризирано с един или повече тагове: | 119 | - всяко упражнение ще бъде категоризирано с един или повече тагове: | ||
120 | - тагове ще позволяват лесно търсене и филтриране. | 120 | - тагове ще позволяват лесно търсене и филтриране. | ||
121 | 121 | ||||
122 | 2. Сортиране: | 122 | 2. Сортиране: | ||
123 | - азбучен ред (A-Z или Z-A). | 123 | - азбучен ред (A-Z или Z-A). | ||
124 | - ниво на трудност: "beginner", "intermediate", "advanced". | 124 | - ниво на трудност: "beginner", "intermediate", "advanced". | ||
125 | 125 | ||||
126 | 3. Филтриране | 126 | 3. Филтриране | ||
127 | - потребителите ще могат да филтрират упражненията чрез таговете, което ще улесни намирането на подходящи упражнения за техните нужди. | 127 | - потребителите ще могат да филтрират упражненията чрез таговете, което ще улесни намирането на подходящи упражнения за техните нужди. | ||
128 | 128 | ||||
129 | 4. Формите на упражненията освен тагове и име на упражнението, ще включват и YouTube линкове към съответното упражнение, за да може да се визуализира | 129 | 4. Формите на упражненията освен тагове и име на упражнението, ще включват и YouTube линкове към съответното упражнение, за да може да се визуализира | ||
130 | лесно начина му на изпълнение на потребителя | 130 | лесно начина му на изпълнение на потребителя | ||
131 | 131 | ||||
n | 132 | 10. (ако все още имам проблеми с визуализация > логика) | n | 132 | 10. (ако все още имам проблеми с визуализация > логика) |
133 | 133 | ||||
n | 134 | Карта с фитнеси в близост до потребителя: | n | 134 | Карта с фитнеси в близост до потребителя: |
135 | - платформата ще поддържа карта, която използва текущото местоположение на потребителя и поддържа. | 135 | - платформата ще поддържа карта, която използва текущото местоположение на потребителя и поддържа. | ||
136 | > автоматично намиране на фитнеси в радиус от 5км | 136 | > автоматично намиране на фитнеси в радиус от 5км | ||
137 | > маркери за всеки фитнес с информация като име, адрес и рейтинг. | 137 | > маркери за всеки фитнес с информация като име, адрес и рейтинг. | ||
138 | 138 | ||||
n | 139 | Преглед на рецензии: | n | 139 | Преглед на рецензии: |
140 | - всяко място ще има секция за рецензии, където потребителите могат: | 140 | - всяко място ще има секция за рецензии, където потребителите могат: | ||
141 | > да виждат съществуващи рецензии (ако се използва Google Places, рецензиите ще бъдат интегрирани директно). | 141 | > да виждат съществуващи рецензии (ако се използва Google Places, рецензиите ще бъдат интегрирани директно). | ||
142 | > да добавят свои рецензии за съответния фитнес. | 142 | > да добавят свои рецензии за съответния фитнес. | ||
143 | 143 | ||||
n | 144 | Добавяне на рецензии: | n | 144 | Добавяне на рецензии: |
145 | - регистрираните (логнатите) потребители могат да добавят своя оценка (от 1 до 5 звезди) и кратка похвала/критика. | 145 | - регистрираните (логнатите) потребители могат да добавят своя оценка (от 1 до 5 звезди) и кратка похвала/критика. | ||
146 | 146 | ||||
n | 147 | Система за рейтинг: | n | 147 | Система за рейтинг: |
148 | - автоматично изчисляване на средния рейтинг за всеки фитнес въз основа на рецензиите от потребителите. | 148 | - автоматично изчисляване на средния рейтинг за всеки фитнес въз основа на рецензиите от потребителите. | ||
149 | - сравнение на рейтингите на различните фитнеси. | 149 | - сравнение на рейтингите на различните фитнеси. | ||
150 | 150 | ||||
t | 151 | Филтри и търсене: | t | 151 | Филтри и търсене: |
152 | - потребителите могат да търсят фитнеси на картата по критерии като: | 152 | - потребителите могат да търсят фитнеси на картата по критерии като: | ||
153 | > рейтинг. | 153 | > рейтинг. | ||
154 | > разстояние от текущото местоположение. | 154 | > разстояние от текущото местоположение. | ||
155 | 155 | ||||
156 | **[Milestones/Възлови точки]** | 156 | **[Milestones/Възлови точки]** | ||
157 | - Инициализация на проекта: | 157 | - Инициализация на проекта: | ||
158 | - Създаване на нов Django проект и приложение. | 158 | - Създаване на нов Django проект и приложение. | ||
159 | - Конфигуриране на PostgreSQL база данни чрез psycopg2. | 159 | - Конфигуриране на PostgreSQL база данни чрез psycopg2. | ||
160 | - Настройка на Django Admin за управление на данните. | 160 | - Настройка на Django Admin за управление на данните. | ||
161 | - Създаване на модели: | 161 | - Създаване на модели: | ||
162 | - Модел за потребители: Използване на вградения User модел в Django. | 162 | - Модел за потребители: Използване на вградения User модел в Django. | ||
163 | - Модел за тренировки: Полета: вид тренировка, продължителност, дата, потребител. | 163 | - Модел за тренировки: Полета: вид тренировка, продължителност, дата, потребител. | ||
164 | - Модел за тегло: Полета: дата на измерване, тегло, потребител. | 164 | - Модел за тегло: Полета: дата на измерване, тегло, потребител. | ||
165 | - Модел за упражнения: Полета: име, тагове (мускулни групи, ниво на трудност, оборудване, тип), YouTube линк. | 165 | - Модел за упражнения: Полета: име, тагове (мускулни групи, ниво на трудност, оборудване, тип), YouTube линк. | ||
166 | - Модел за публикации и коментари в For You. | 166 | - Модел за публикации и коментари в For You. | ||
167 | - CRUD функционалности за тренировки и тегло: | 167 | - CRUD функционалности за тренировки и тегло: | ||
168 | - Създаване на изгледи за добавяне, редактиране и изтриване на записи. | 168 | - Създаване на изгледи за добавяне, редактиране и изтриване на записи. | ||
169 | - Форми за валидиране на входните данни. | 169 | - Форми за валидиране на входните данни. | ||
170 | - Списък с всички записи за тренировки и тегло. | 170 | - Списък с всички записи за тренировки и тегло. | ||
171 | - Автентикация и ограничение на достъпа: | 171 | - Автентикация и ограничение на достъпа: | ||
172 | - Регистрация, вход и изход за потребители с валидиране на данни. | 172 | - Регистрация, вход и изход за потребители с валидиране на данни. | ||
173 | - Ограничаване на достъпа до функционалностите за логнати потребители. | 173 | - Ограничаване на достъпа до функционалностите за логнати потребители. | ||
174 | - Frontend и визуализация: | 174 | - Frontend и визуализация: | ||
175 | - Създаване на шаблони с Django templates. | 175 | - Създаване на шаблони с Django templates. | ||
176 | - Интеграция на Bootstrap за създаване на удобен интерфейс. | 176 | - Интеграция на Bootstrap за създаване на удобен интерфейс. | ||
177 | - Добавяне на графики за прогреса на теглото с Chart.js или Matplotlib. | 177 | - Добавяне на графики за прогреса на теглото с Chart.js или Matplotlib. | ||
178 | - For You функционалности: | 178 | - For You функционалности: | ||
179 | - Реализиране на функционалности за публикуване на постове, коментиране и харесване. | 179 | - Реализиране на функционалности за публикуване на постове, коментиране и харесване. | ||
180 | - Визуализация на списък с постове. | 180 | - Визуализация на списък с постове. | ||
181 | - Поддръжка на качване на медийни файлове. | 181 | - Поддръжка на качване на медийни файлове. | ||
182 | - Известия и push нотификации: | 182 | - Известия и push нотификации: | ||
183 | - Реализация на push известия и известия чрез имейл, включително използване на Django messages. | 183 | - Реализация на push известия и известия чрез имейл, включително използване на Django messages. | ||
184 | - Разновидност от калкулатори: | 184 | - Разновидност от калкулатори: | ||
185 | - изграждане на калкулатори: | 185 | - изграждане на калкулатори: | ||
186 | > One-Rep Max (1RM) Калкулатор. | 186 | > One-Rep Max (1RM) Калкулатор. | ||
187 | > BMI (Body Mass Index) Калкулатор. | 187 | > BMI (Body Mass Index) Калкулатор. | ||
188 | > Калориен Калкулатор. | 188 | > Калориен Калкулатор. | ||
189 | > Калкулатор за мазнини в тялото (Body Fat Percentage). | 189 | > Калкулатор за мазнини в тялото (Body Fat Percentage). | ||
190 | - Страница с упражнения: | 190 | - Страница с упражнения: | ||
191 | > Разработка на страница за разглеждане и организиране на упражнения. | 191 | > Разработка на страница за разглеждане и организиране на упражнения. | ||
192 | > Добавяне на тагове за упражнения: мускулни групи, ниво на трудност, тип оборудване, видове упражнения. | 192 | > Добавяне на тагове за упражнения: мускулни групи, ниво на трудност, тип оборудване, видове упражнения. | ||
193 | > Реализиране на функционалност за търсене, сортиране (A-Z или Z-A) и филтриране чрез тагове. | 193 | > Реализиране на функционалност за търсене, сортиране (A-Z или Z-A) и филтриране чрез тагове. | ||
194 | - Карта | 194 | - Карта | ||
195 | > Маркиране на фитнеси в радиус | 195 | > Маркиране на фитнеси в радиус | ||
196 | > Рецензии | 196 | > Рецензии | ||
197 | > Рейтинг система | 197 | > Рейтинг система | ||
198 | 198 | ||||
199 | **[Estimate in man-hours/Времеоценка в човекочасове]** | 199 | **[Estimate in man-hours/Времеоценка в човекочасове]** | ||
200 | - Инициализация на проекта (10 - 15 човекочаса). | 200 | - Инициализация на проекта (10 - 15 човекочаса). | ||
201 | - Създаване на модели (10 - 15 човекочаса). | 201 | - Създаване на модели (10 - 15 човекочаса). | ||
202 | - CRUD функционалности за тренировки и тегло (15- 20 човекочаса). | 202 | - CRUD функционалности за тренировки и тегло (15- 20 човекочаса). | ||
203 | - Автентикация и ограничение на достъпа (10 - 15 човекочаса). | 203 | - Автентикация и ограничение на достъпа (10 - 15 човекочаса). | ||
204 | - Frontend и визуализация (15 - 20 човекочаса). | 204 | - Frontend и визуализация (15 - 20 човекочаса). | ||
205 | - For You функционалности (20 - 25 човекочаса). | 205 | - For You функционалности (20 - 25 човекочаса). | ||
206 | - Известия и push нотификации (10 - 15 човекочаса). | 206 | - Известия и push нотификации (10 - 15 човекочаса). | ||
207 | - Разновидност от калкулатори (5 - 10 човекочаса). | 207 | - Разновидност от калкулатори (5 - 10 човекочаса). | ||
208 | - Страница с упражнения (15 - 20 човекочаса). | 208 | - Страница с упражнения (15 - 20 човекочаса). | ||
209 | - Карта (25 - 30 човекочаса) (или 500 години). | 209 | - Карта (25 - 30 човекочаса) (или 500 години). | ||
210 | - Тестване и завършване (15 - 20 човекочаса). | 210 | - Тестване и завършване (15 - 20 човекочаса). | ||
211 | 211 | ||||
212 | Общо време 125(150) - 175(205) човекочаса | 212 | Общо време 125(150) - 175(205) човекочаса | ||
213 | 213 | ||||
214 | **[Usage of technologies/Потребление на технологии]** | 214 | **[Usage of technologies/Потребление на технологии]** | ||
215 | - **Backend**: Django (създаване на RESTful API за функционалностите). | 215 | - **Backend**: Django (създаване на RESTful API за функционалностите). | ||
216 | - **База данни**: PostgreSQL. | 216 | - **База данни**: PostgreSQL. | ||
217 | - **Frontend**: | 217 | - **Frontend**: | ||
218 | - Django templates (генериране на HTML съдържание). | 218 | - Django templates (генериране на HTML съдържание). | ||
219 | - Bootstrap (стилизация на интерфейса). | 219 | - Bootstrap (стилизация на интерфейса). | ||
220 | - Chart.js или Matplotlib (визуализация на данни). | 220 | - Chart.js или Matplotlib (визуализация на данни). | ||
221 | - **Библиотеки**: | 221 | - **Библиотеки**: | ||
222 | - `psycopg2` (връзка между Django и PostgreSQL). | 222 | - `psycopg2` (връзка между Django и PostgreSQL). | ||
223 | - Django messages (съобщения за успех/грешка). | 223 | - Django messages (съобщения за успех/грешка). | ||
224 | - **Карта**: | 224 | - **Карта**: | ||
225 | - Google Maps API | 225 | - Google Maps API | ||
226 | - Google Places API | 226 | - Google Places API | ||
227 | """ | 227 | """ |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
f | 1 | """ | f | 1 | """ |
2 | Ново хайку, защото Виктор е сърдит: | 2 | Ново хайку, защото Виктор е сърдит: | ||
3 | 3 | ||||
4 | ...- .-.. --.- --.. --- .... / ...- / --.. .- .-.. .- / | 4 | ...- .-.. --.- --.. --- .... / ...- / --.. .- .-.. .- / | ||
5 | -. .- / .--. .-. --- .--- . -.- - --- .-. / ... .--. .- -- / ... .--. .- -- / ... .--. .- -- / | 5 | -. .- / .--. .-. --- .--- . -.- - --- .-. / ... .--. .- -- / ... .--. .- -- / ... .--. .- -- / | ||
6 | - .-. ..- --. -. .- .... / ... .. / --- - - .- -- | 6 | - .-. ..- --. -. .- .... / ... .. / --- - - .- -- | ||
7 | 7 | ||||
8 | **[Title/Звание]** | 8 | **[Title/Звание]** | ||
9 | Shredded Monty Python | 9 | Shredded Monty Python | ||
10 | 10 | ||||
11 | **[Description/Обрисовка]** | 11 | **[Description/Обрисовка]** | ||
12 | Никой не иска да е слаб колкото “Виктор Бечев” - име свързано с криминални престъпления по целия свят и обявен за международно | 12 | Никой не иска да е слаб колкото “Виктор Бечев” - име свързано с криминални престъпления по целия свят и обявен за международно | ||
13 | издирване или да дава гадни домашни с още по-невъзможни тестове, в които слага снимки, на които иронично бърка цимент, за | 13 | издирване или да дава гадни домашни с още по-невъзможни тестове, в които слага снимки, на които иронично бърка цимент, за | ||
14 | да ни се подиграва на пътя, който ще изберем след тази избираема дисциплина - “Георги Кунчев”. Чу ли, Жорка, r"^gadni\b" домашни. | 14 | да ни се подиграва на пътя, който ще изберем след тази избираема дисциплина - “Георги Кунчев”. Чу ли, Жорка, r"^gadni\b" домашни. | ||
15 | 15 | ||||
16 | Всички тези житейски проблеми, обгърнали битието на студентите, следващи във ФМИ, са решени благодарение на | 16 | Всички тези житейски проблеми, обгърнали битието на студентите, следващи във ФМИ, са решени благодарение на | ||
17 | Shredded Monty Python (не знам как ги решава). Това е уеб приложение, идеята зад което е да помогне на хората | 17 | Shredded Monty Python (не знам как ги решава). Това е уеб приложение, идеята зад което е да помогне на хората | ||
18 | да постигнат своите фитнес цели, като предостави удобен и ефективен начин за проследяване на тренировките и | 18 | да постигнат своите фитнес цели, като предостави удобен и ефективен начин за проследяване на тренировките и | ||
19 | физическия прогрес. Чрез лесен за използване интерфейс потребителите могат да записват своите тренировки, | 19 | физическия прогрес. Чрез лесен за използване интерфейс потребителите могат да записват своите тренировки, | ||
20 | да следят промените в теглото и телесните си измервания и да следят своето развитие. Всеки потребител ще може | 20 | да следят промените в теглото и телесните си измервания и да следят своето развитие. Всеки потребител ще може | ||
21 | да сподели прогреса си с останалите потребители, което подсказва една от основните цели на платформата - | 21 | да сподели прогреса си с останалите потребители, което подсказва една от основните цели на платформата - | ||
22 | да създаде целеустремена, взаимноподкрепяща се общност. | 22 | да създаде целеустремена, взаимноподкрепяща се общност. | ||
23 | 23 | ||||
24 | **[Functionalities/Надарености]** | 24 | **[Functionalities/Надарености]** | ||
25 | 1. **Потребителски профил**: | 25 | 1. **Потребителски профил**: | ||
26 | 26 | ||||
27 | Регистрация - потребителят трябва да се регистрира преди използването на функционалностите на платформата. | 27 | Регистрация - потребителят трябва да се регистрира преди използването на функционалностите на платформата. | ||
28 | Форма за регистрация: | 28 | Форма за регистрация: | ||
29 | - Потребителите трябва да попълнят форма с основна информация минимални изисквания за сигурност като: | 29 | - Потребителите трябва да попълнят форма с основна информация минимални изисквания за сигурност като: | ||
30 | - име и фамилия | 30 | - име и фамилия | ||
31 | - имейл адрес - трябва да се валидира дали имейлът вече е използван | 31 | - имейл адрес - трябва да се валидира дали имейлът вече е използван | ||
32 | - парола | 32 | - парола | ||
33 | 33 | ||||
34 | Вход - потребителят трябва да влезе в профила си, ако вече се е регистрирал. | 34 | Вход - потребителят трябва да влезе в профила си, ако вече се е регистрирал. | ||
35 | Форма за вход: | 35 | Форма за вход: | ||
36 | - имейл адрес | 36 | - имейл адрес | ||
37 | - парола | 37 | - парола | ||
38 | 38 | ||||
39 | Личен профил с информация за тренировки и тегло: | 39 | Личен профил с информация за тренировки и тегло: | ||
40 | - Приложението дава възможност на потребителите да създадат собствени рутинни програми, които са изградени според | 40 | - Приложението дава възможност на потребителите да създадат собствени рутинни програми, които са изградени според | ||
41 | различни фитнес цели – загуба на тегло, изграждане на мускулна маса, подобряване на издръжливостта и други. | 41 | различни фитнес цели – загуба на тегло, изграждане на мускулна маса, подобряване на издръжливостта и други. | ||
42 | 42 | ||||
43 | 2. **Администраторски профил**: | 43 | 2. **Администраторски профил**: | ||
44 | - Администраторът трябва да има достъп до всички функционалности, до които обикновения потребител има достъп. | 44 | - Администраторът трябва да има достъп до всички функционалности, до които обикновения потребител има достъп. | ||
45 | - Администраторът трябва да може да сменя пароли на обикновените потребители, техните имейли и дори да ги изтрива | 45 | - Администраторът трябва да може да сменя пароли на обикновените потребители, техните имейли и дори да ги изтрива | ||
46 | напълно. | 46 | напълно. | ||
47 | - Администраторът трябва да може да трие постове, с цел да се запази адекватно ниво на цензура. | 47 | - Администраторът трябва да може да трие постове, с цел да се запази адекватно ниво на цензура. | ||
48 | - Администраторът трябва да може да изпраща имейл лично (негенериран) до даден потребител, ако това е необходимо. | 48 | - Администраторът трябва да може да изпраща имейл лично (негенериран) до даден потребител, ако това е необходимо. | ||
49 | - Администраторът трябва да може да добавя нови упражнения в pool-a и да редактира предишните | 49 | - Администраторът трябва да може да добавя нови упражнения в pool-a и да редактира предишните | ||
50 | - Администраторът е готин. | 50 | - Администраторът е готин. | ||
51 | 51 | ||||
52 | 3. **Тренировки**: | 52 | 3. **Тренировки**: | ||
53 | - Възможност за добавяне на нова тренировка с полета: | 53 | - Възможност за добавяне на нова тренировка с полета: | ||
54 | 54 | ||||
55 | - Логнатият потребител трябва да може да създаде своя тренировка, като попълни необходимата форма за | 55 | - Логнатият потребител трябва да може да създаде своя тренировка, като попълни необходимата форма за | ||
56 | създаване на такава. | 56 | създаване на такава. | ||
57 | 57 | ||||
58 | Формата ще съдържа: | 58 | Формата ще съдържа: | ||
59 | - Вид на тренировката (например кардио, силова тренировка, йога). | 59 | - Вид на тренировката (например кардио, силова тренировка, йога). | ||
60 | - Продължителност в минути. | 60 | - Продължителност в минути. | ||
61 | - Дата на провеждане. | 61 | - Дата на провеждане. | ||
62 | 62 | ||||
63 | - Преглед на всички записани тренировки в табличен формат: | 63 | - Преглед на всички записани тренировки в табличен формат: | ||
64 | - Логнатият потребител трябва да може да види всички свои записани тренировки в табличен формат. | 64 | - Логнатият потребител трябва да може да види всички свои записани тренировки в табличен формат. | ||
65 | - Редактиране и изтриване на записани тренировки: | 65 | - Редактиране и изтриване на записани тренировки: | ||
66 | - Логнатият потребител трябва да може да редактира и изтрива своите записани тренировки. | 66 | - Логнатият потребител трябва да може да редактира и изтрива своите записани тренировки. | ||
67 | 67 | ||||
68 | 4. **Проследяване на тегло**: | 68 | 4. **Проследяване на тегло**: | ||
69 | - Добавяне на запис за тегло с дата на измерване: | 69 | - Добавяне на запис за тегло с дата на измерване: | ||
70 | - Логнатият потребител трябва да може да добавя запис за теглото си в даден ден, като може да го запише в | 70 | - Логнатият потребител трябва да може да добавя запис за теглото си в даден ден, като може да го запише в | ||
71 | килограми или паундове. | 71 | килограми или паундове. | ||
72 | - Преглед на всички записи в таблица: | 72 | - Преглед на всички записи в таблица: | ||
73 | - Логнатият потребител трябва да може да види всички свои записани измервания в табличен формат. | 73 | - Логнатият потребител трябва да може да види всички свои записани измервания в табличен формат. | ||
74 | - Генериране на графика за промяната на теглото с времето: | 74 | - Генериране на графика за промяната на теглото с времето: | ||
75 | - Логнатият потребител трябва да може да види графика, илюстрираща теглото му във времето. | 75 | - Логнатият потребител трябва да може да види графика, илюстрираща теглото му във времето. | ||
76 | 76 | ||||
77 | 5. **Графики и визуализации**: | 77 | 5. **Графики и визуализации**: | ||
78 | - Графика за напредъка на теглото (тегло спрямо време). | 78 | - Графика за напредъка на теглото (тегло спрямо време). | ||
79 | - Визуализация на напредъка на потребителя спрямо сила. | 79 | - Визуализация на напредъка на потребителя спрямо сила. | ||
80 | 80 | ||||
81 | 6. **Известия**: | 81 | 6. **Известия**: | ||
82 | - Известия за успешно добавяне, редактиране или изтриване на данни чрез Django messages. | 82 | - Известия за успешно добавяне, редактиране или изтриване на данни чрез Django messages. | ||
83 | - Приложението предлага статистики по имейл (текущ месец/предходен месец), които дават визуална представа за | 83 | - Приложението предлага статистики по имейл (текущ месец/предходен месец), които дават визуална представа за | ||
84 | постигнатия напредък. | 84 | постигнатия напредък. | ||
85 | - Push Notifications - с цитати на готини хора, напр.: “Аз няма да пия” ~Костадин Русалов. | 85 | - Push Notifications - с цитати на готини хора, напр.: “Аз няма да пия” ~Костадин Русалов. | ||
86 | 86 | ||||
87 | 7. For You - интерактивно пространство в приложението, където потребителите могат да се свързват, да споделят своя опит и да | 87 | 7. For You - интерактивно пространство в приложението, където потребителите могат да се свързват, да споделят своя опит и да | ||
88 | участват в активни дискусии, свързани с техните фитнес цели и постижения. | 88 | участват в активни дискусии, свързани с техните фитнес цели и постижения. | ||
89 | Какво предоставя For You: | 89 | Какво предоставя For You: | ||
90 | - Публикуване на постове: | 90 | - Публикуване на постове: | ||
91 | - Потребителите могат да създават свои постове, в които да споделят мотивационни истории, съвети за тренировки, | 91 | - Потребителите могат да създават свои постове, в които да споделят мотивационни истории, съвети за тренировки, | ||
92 | въпроси или просто вдъхновяващи моменти от личното си фитнес пътуване (текст, снимки, клипове). | 92 | въпроси или просто вдъхновяващи моменти от личното си фитнес пътуване (текст, снимки, клипове). | ||
93 | - Харесване и коментиране: | 93 | - Харесване и коментиране: | ||
94 | - Всяка публикация може да бъде харесвана от други потребители, като по този начин се създава чувство на подкрепа | 94 | - Всяка публикация може да бъде харесвана от други потребители, като по този начин се създава чувство на подкрепа | ||
95 | и мотивация в общността. | 95 | и мотивация в общността. | ||
96 | - Водене на дискусии: | 96 | - Водене на дискусии: | ||
97 | - For You е място за открити и вдъхновяващи дискусии. | 97 | - For You е място за открити и вдъхновяващи дискусии. | ||
98 | 98 | ||||
99 | 8. Разновидност от калкулатори - страница от платформата, в която потребителят ще може да се възползва от набор от калкулатори, | 99 | 8. Разновидност от калкулатори - страница от платформата, в която потребителят ще може да се възползва от набор от калкулатори, | ||
100 | с помощта на които може да получи нужна за него информация | 100 | с помощта на които може да получи нужна за него информация | ||
101 | - 1. One-Rep Max (1RM) Калкулатор - позволява на потребителите да изчислят максималната тежест, която могат да повдигнат | 101 | - 1. One-Rep Max (1RM) Калкулатор - позволява на потребителите да изчислят максималната тежест, която могат да повдигнат | ||
102 | за едно повторение, базирано на текущата им тежест и брой повторения. | 102 | за едно повторение, базирано на текущата им тежест и брой повторения. | ||
103 | - 2. BMI (Body Mass Index) Калкулатор - калкулатор за телесна маса, който определя дали потребителят е поднормено тегло, нормално тегло, | 103 | - 2. BMI (Body Mass Index) Калкулатор - калкулатор за телесна маса, който определя дали потребителят е поднормено тегло, нормално тегло, | ||
104 | наднормено тегло или със затлъстяване | 104 | наднормено тегло или със затлъстяване | ||
105 | - 3. Калориен Калкулатор - позволява да се определят колко калории са необходими за поддържане на текущото тегло, базирано на активността. | 105 | - 3. Калориен Калкулатор - позволява да се определят колко калории са необходими за поддържане на текущото тегло, базирано на активността. | ||
106 | - 4. Калкулатор за мазнини в тялото (Body Fat Percentage) - изчислява процента телесни мазнини, базирано на обиколки на тялото. | 106 | - 4. Калкулатор за мазнини в тялото (Body Fat Percentage) - изчислява процента телесни мазнини, базирано на обиколки на тялото. | ||
107 | 107 | ||||
108 | 9. Страница с упражнения - Shredded Monty Python ще включва страница с различни упражнения, която позволява на потребителите да разглеждат и организира | 108 | 9. Страница с упражнения - Shredded Monty Python ще включва страница с различни упражнения, която позволява на потребителите да разглеждат и организира | ||
109 | тренировките си по удобен и интуитивен начин. | 109 | тренировките си по удобен и интуитивен начин. | ||
110 | 110 | ||||
111 | Функционалности на страницата с упражнения: | 111 | Функционалности на страницата с упражнения: | ||
112 | 1. Тагове за упражнения: | 112 | 1. Тагове за упражнения: | ||
113 | - видове тагове: | 113 | - видове тагове: | ||
114 | > мускулни групи: "back", "chest", "legs", "arms", "core". | 114 | > мускулни групи: "back", "chest", "legs", "arms", "core". | ||
115 | > ниво на трудност: "beginner", "intermediate", "advanced". | 115 | > ниво на трудност: "beginner", "intermediate", "advanced". | ||
116 | > оборудване: "barbell", "dumbbells", "bodyweight", "resistance bands". | 116 | > оборудване: "barbell", "dumbbells", "bodyweight", "resistance bands". | ||
117 | > тип на упражнението: "strength", "crossfit" (тагът ще бъде баннат предварително), "cardio", "functional training". | 117 | > тип на упражнението: "strength", "crossfit" (тагът ще бъде баннат предварително), "cardio", "functional training". | ||
118 | 118 | ||||
119 | - всяко упражнение ще бъде категоризирано с един или повече тагове: | 119 | - всяко упражнение ще бъде категоризирано с един или повече тагове: | ||
120 | - тагове ще позволяват лесно търсене и филтриране. | 120 | - тагове ще позволяват лесно търсене и филтриране. | ||
121 | 121 | ||||
122 | 2. Сортиране: | 122 | 2. Сортиране: | ||
123 | - азбучен ред (A-Z или Z-A). | 123 | - азбучен ред (A-Z или Z-A). | ||
124 | - ниво на трудност: "beginner", "intermediate", "advanced". | 124 | - ниво на трудност: "beginner", "intermediate", "advanced". | ||
125 | 125 | ||||
126 | 3. Филтриране | 126 | 3. Филтриране | ||
127 | - потребителите ще могат да филтрират упражненията чрез таговете, което ще улесни намирането на подходящи упражнения за техните нужди. | 127 | - потребителите ще могат да филтрират упражненията чрез таговете, което ще улесни намирането на подходящи упражнения за техните нужди. | ||
128 | 128 | ||||
129 | 4. Формите на упражненията освен тагове и име на упражнението, ще включват и YouTube линкове към съответното упражнение, за да може да се визуализира | 129 | 4. Формите на упражненията освен тагове и име на упражнението, ще включват и YouTube линкове към съответното упражнение, за да може да се визуализира | ||
130 | лесно начина му на изпълнение на потребителя | 130 | лесно начина му на изпълнение на потребителя | ||
131 | 131 | ||||
n | n | 132 | 10. (ако все още имам проблеми с визуализация > логика) | ||
133 | |||||
134 | Карта с фитнеси в близост до потребителя: | ||||
135 | - платформата ще поддържа карта, която използва текущото местоположение на потребителя и поддържа. | ||||
136 | > автоматично намиране на фитнеси в радиус от 5км | ||||
137 | > маркери за всеки фитнес с информация като име, адрес и рейтинг. | ||||
138 | |||||
139 | Преглед на рецензии: | ||||
140 | - всяко място ще има секция за рецензии, където потребителите могат: | ||||
141 | > да виждат съществуващи рецензии (ако се използва Google Places, рецензиите ще бъдат интегрирани директно). | ||||
142 | > да добавят свои рецензии за съответния фитнес. | ||||
143 | |||||
144 | Добавяне на рецензии: | ||||
145 | - регистрираните (логнатите) потребители могат да добавят своя оценка (от 1 до 5 звезди) и кратка похвала/критика. | ||||
146 | |||||
147 | Система за рейтинг: | ||||
148 | - автоматично изчисляване на средния рейтинг за всеки фитнес въз основа на рецензиите от потребителите. | ||||
149 | - сравнение на рейтингите на различните фитнеси. | ||||
150 | |||||
151 | Филтри и търсене: | ||||
152 | - потребителите могат да търсят фитнеси на картата по критерии като: | ||||
153 | > рейтинг. | ||||
154 | > разстояние от текущото местоположение. | ||||
155 | |||||
132 | **[Milestones/Възлови точки]** | 156 | **[Milestones/Възлови точки]** | ||
133 | - Инициализация на проекта: | 157 | - Инициализация на проекта: | ||
134 | - Създаване на нов Django проект и приложение. | 158 | - Създаване на нов Django проект и приложение. | ||
135 | - Конфигуриране на PostgreSQL база данни чрез psycopg2. | 159 | - Конфигуриране на PostgreSQL база данни чрез psycopg2. | ||
136 | - Настройка на Django Admin за управление на данните. | 160 | - Настройка на Django Admin за управление на данните. | ||
137 | - Създаване на модели: | 161 | - Създаване на модели: | ||
138 | - Модел за потребители: Използване на вградения User модел в Django. | 162 | - Модел за потребители: Използване на вградения User модел в Django. | ||
139 | - Модел за тренировки: Полета: вид тренировка, продължителност, дата, потребител. | 163 | - Модел за тренировки: Полета: вид тренировка, продължителност, дата, потребител. | ||
140 | - Модел за тегло: Полета: дата на измерване, тегло, потребител. | 164 | - Модел за тегло: Полета: дата на измерване, тегло, потребител. | ||
141 | - Модел за упражнения: Полета: име, тагове (мускулни групи, ниво на трудност, оборудване, тип), YouTube линк. | 165 | - Модел за упражнения: Полета: име, тагове (мускулни групи, ниво на трудност, оборудване, тип), YouTube линк. | ||
142 | - Модел за публикации и коментари в For You. | 166 | - Модел за публикации и коментари в For You. | ||
143 | - CRUD функционалности за тренировки и тегло: | 167 | - CRUD функционалности за тренировки и тегло: | ||
144 | - Създаване на изгледи за добавяне, редактиране и изтриване на записи. | 168 | - Създаване на изгледи за добавяне, редактиране и изтриване на записи. | ||
145 | - Форми за валидиране на входните данни. | 169 | - Форми за валидиране на входните данни. | ||
146 | - Списък с всички записи за тренировки и тегло. | 170 | - Списък с всички записи за тренировки и тегло. | ||
147 | - Автентикация и ограничение на достъпа: | 171 | - Автентикация и ограничение на достъпа: | ||
148 | - Регистрация, вход и изход за потребители с валидиране на данни. | 172 | - Регистрация, вход и изход за потребители с валидиране на данни. | ||
149 | - Ограничаване на достъпа до функционалностите за логнати потребители. | 173 | - Ограничаване на достъпа до функционалностите за логнати потребители. | ||
150 | - Frontend и визуализация: | 174 | - Frontend и визуализация: | ||
151 | - Създаване на шаблони с Django templates. | 175 | - Създаване на шаблони с Django templates. | ||
152 | - Интеграция на Bootstrap за създаване на удобен интерфейс. | 176 | - Интеграция на Bootstrap за създаване на удобен интерфейс. | ||
153 | - Добавяне на графики за прогреса на теглото с Chart.js или Matplotlib. | 177 | - Добавяне на графики за прогреса на теглото с Chart.js или Matplotlib. | ||
154 | - For You функционалности: | 178 | - For You функционалности: | ||
155 | - Реализиране на функционалности за публикуване на постове, коментиране и харесване. | 179 | - Реализиране на функционалности за публикуване на постове, коментиране и харесване. | ||
156 | - Визуализация на списък с постове. | 180 | - Визуализация на списък с постове. | ||
157 | - Поддръжка на качване на медийни файлове. | 181 | - Поддръжка на качване на медийни файлове. | ||
158 | - Известия и push нотификации: | 182 | - Известия и push нотификации: | ||
159 | - Реализация на push известия и известия чрез имейл, включително използване на Django messages. | 183 | - Реализация на push известия и известия чрез имейл, включително използване на Django messages. | ||
n | 160 | -Разновидност от калкулатори: | n | 184 | - Разновидност от калкулатори: |
161 | - изграждане на калкулатори: | 185 | - изграждане на калкулатори: | ||
162 | > One-Rep Max (1RM) Калкулатор. | 186 | > One-Rep Max (1RM) Калкулатор. | ||
163 | > BMI (Body Mass Index) Калкулатор. | 187 | > BMI (Body Mass Index) Калкулатор. | ||
164 | > Калориен Калкулатор. | 188 | > Калориен Калкулатор. | ||
165 | > Калкулатор за мазнини в тялото (Body Fat Percentage). | 189 | > Калкулатор за мазнини в тялото (Body Fat Percentage). | ||
166 | - Страница с упражнения: | 190 | - Страница с упражнения: | ||
167 | > Разработка на страница за разглеждане и организиране на упражнения. | 191 | > Разработка на страница за разглеждане и организиране на упражнения. | ||
168 | > Добавяне на тагове за упражнения: мускулни групи, ниво на трудност, тип оборудване, видове упражнения. | 192 | > Добавяне на тагове за упражнения: мускулни групи, ниво на трудност, тип оборудване, видове упражнения. | ||
169 | > Реализиране на функционалност за търсене, сортиране (A-Z или Z-A) и филтриране чрез тагове. | 193 | > Реализиране на функционалност за търсене, сортиране (A-Z или Z-A) и филтриране чрез тагове. | ||
n | 170 | n | 194 | - Карта | |
195 | > Маркиране на фитнеси в радиус | ||||
196 | > Рецензии | ||||
197 | > Рейтинг система | ||||
198 | |||||
171 | **[Estimate in man-hours/Времеоценка в човекочасове]** | 199 | **[Estimate in man-hours/Времеоценка в човекочасове]** | ||
172 | - Инициализация на проекта (10 - 15 човекочаса). | 200 | - Инициализация на проекта (10 - 15 човекочаса). | ||
173 | - Създаване на модели (10 - 15 човекочаса). | 201 | - Създаване на модели (10 - 15 човекочаса). | ||
174 | - CRUD функционалности за тренировки и тегло (15- 20 човекочаса). | 202 | - CRUD функционалности за тренировки и тегло (15- 20 човекочаса). | ||
175 | - Автентикация и ограничение на достъпа (10 - 15 човекочаса). | 203 | - Автентикация и ограничение на достъпа (10 - 15 човекочаса). | ||
176 | - Frontend и визуализация (15 - 20 човекочаса). | 204 | - Frontend и визуализация (15 - 20 човекочаса). | ||
177 | - For You функционалности (20 - 25 човекочаса). | 205 | - For You функционалности (20 - 25 човекочаса). | ||
178 | - Известия и push нотификации (10 - 15 човекочаса). | 206 | - Известия и push нотификации (10 - 15 човекочаса). | ||
179 | - Разновидност от калкулатори (5 - 10 човекочаса). | 207 | - Разновидност от калкулатори (5 - 10 човекочаса). | ||
180 | - Страница с упражнения (15 - 20 човекочаса). | 208 | - Страница с упражнения (15 - 20 човекочаса). | ||
n | n | 209 | - Карта (25 - 30 човекочаса) (или 500 години). | ||
181 | - Тестване и завършване (15 - 20 човекочаса). | 210 | - Тестване и завършване (15 - 20 човекочаса). | ||
182 | 211 | ||||
n | 183 | Общо време 125 - 175 човекочаса | n | 212 | Общо време 125(150) - 175(205) човекочаса |
184 | 213 | ||||
185 | **[Usage of technologies/Потребление на технологии]** | 214 | **[Usage of technologies/Потребление на технологии]** | ||
186 | - **Backend**: Django (създаване на RESTful API за функционалностите). | 215 | - **Backend**: Django (създаване на RESTful API за функционалностите). | ||
187 | - **База данни**: PostgreSQL. | 216 | - **База данни**: PostgreSQL. | ||
188 | - **Frontend**: | 217 | - **Frontend**: | ||
189 | - Django templates (генериране на HTML съдържание). | 218 | - Django templates (генериране на HTML съдържание). | ||
190 | - Bootstrap (стилизация на интерфейса). | 219 | - Bootstrap (стилизация на интерфейса). | ||
191 | - Chart.js или Matplotlib (визуализация на данни). | 220 | - Chart.js или Matplotlib (визуализация на данни). | ||
192 | - **Библиотеки**: | 221 | - **Библиотеки**: | ||
193 | - `psycopg2` (връзка между Django и PostgreSQL). | 222 | - `psycopg2` (връзка между Django и PostgreSQL). | ||
194 | - Django messages (съобщения за успех/грешка). | 223 | - Django messages (съобщения за успех/грешка). | ||
t | t | 224 | - **Карта**: | ||
225 | - Google Maps API | ||||
226 | - Google Places API | ||||
195 | """ | 227 | """ |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
f | 1 | """ | f | 1 | """ |
n | 2 | .... .- .. -.- ..- / -.--. -. . / - --- -.-. .... -. --- -.--.- / | n | 2 | Ново хайку, защото Виктор е сърдит: |
3 | 3 | ||||
n | 4 | ... ...- . - .. --.- - / --. .-. .- .- .-.. --..-- / | n | 4 | ...- .-.. --.- --.. --- .... / ...- / --.. .- .-.. .- / |
5 | 5 | -. .- / .--. .-. --- .--- . -.- - --- .-. / ... .--. .- -- / ... .--. .- -- / ... .--. .- -- / | |||
6 | - --- ...- .- / . / ... .- -- --- / -.. .-. .- ... -.- --- - .. -. .- --..-- / | 6 | - .-. ..- --. -. .- .... / ... .. / --- - - .- -- | ||
7 | |||||
8 | .-. .. -.-. .- .-. / -... . --.. / .-. ..- -.- .- .-.-.- .-.-.- .-.-.- | ||||
9 | 7 | ||||
10 | **[Title/Звание]** | 8 | **[Title/Звание]** | ||
11 | Shredded Monty Python | 9 | Shredded Monty Python | ||
12 | 10 | ||||
13 | **[Description/Обрисовка]** | 11 | **[Description/Обрисовка]** | ||
14 | Никой не иска да е слаб колкото “Виктор Бечев” - име свързано с криминални престъпления по целия свят и обявен за международно | 12 | Никой не иска да е слаб колкото “Виктор Бечев” - име свързано с криминални престъпления по целия свят и обявен за международно | ||
15 | издирване или да дава гадни домашни с още по-невъзможни тестове, в които слага снимки, на които иронично бърка цимент, за | 13 | издирване или да дава гадни домашни с още по-невъзможни тестове, в които слага снимки, на които иронично бърка цимент, за | ||
16 | да ни се подиграва на пътя, който ще изберем след тази избираема дисциплина - “Георги Кунчев”. Чу ли, Жорка, r"^gadni\b" домашни. | 14 | да ни се подиграва на пътя, който ще изберем след тази избираема дисциплина - “Георги Кунчев”. Чу ли, Жорка, r"^gadni\b" домашни. | ||
17 | 15 | ||||
18 | Всички тези житейски проблеми, обгърнали битието на студентите, следващи във ФМИ, са решени благодарение на | 16 | Всички тези житейски проблеми, обгърнали битието на студентите, следващи във ФМИ, са решени благодарение на | ||
19 | Shredded Monty Python (не знам как ги решава). Това е уеб приложение, идеята зад което е да помогне на хората | 17 | Shredded Monty Python (не знам как ги решава). Това е уеб приложение, идеята зад което е да помогне на хората | ||
20 | да постигнат своите фитнес цели, като предостави удобен и ефективен начин за проследяване на тренировките и | 18 | да постигнат своите фитнес цели, като предостави удобен и ефективен начин за проследяване на тренировките и | ||
21 | физическия прогрес. Чрез лесен за използване интерфейс потребителите могат да записват своите тренировки, | 19 | физическия прогрес. Чрез лесен за използване интерфейс потребителите могат да записват своите тренировки, | ||
22 | да следят промените в теглото и телесните си измервания и да следят своето развитие. Всеки потребител ще може | 20 | да следят промените в теглото и телесните си измервания и да следят своето развитие. Всеки потребител ще може | ||
23 | да сподели прогреса си с останалите потребители, което подсказва една от основните цели на платформата - | 21 | да сподели прогреса си с останалите потребители, което подсказва една от основните цели на платформата - | ||
24 | да създаде целеустремена, взаимноподкрепяща се общност. | 22 | да създаде целеустремена, взаимноподкрепяща се общност. | ||
25 | 23 | ||||
26 | **[Functionalities/Надарености]** | 24 | **[Functionalities/Надарености]** | ||
27 | 1. **Потребителски профил**: | 25 | 1. **Потребителски профил**: | ||
28 | 26 | ||||
29 | Регистрация - потребителят трябва да се регистрира преди използването на функционалностите на платформата. | 27 | Регистрация - потребителят трябва да се регистрира преди използването на функционалностите на платформата. | ||
30 | Форма за регистрация: | 28 | Форма за регистрация: | ||
31 | - Потребителите трябва да попълнят форма с основна информация минимални изисквания за сигурност като: | 29 | - Потребителите трябва да попълнят форма с основна информация минимални изисквания за сигурност като: | ||
32 | - име и фамилия | 30 | - име и фамилия | ||
33 | - имейл адрес - трябва да се валидира дали имейлът вече е използван | 31 | - имейл адрес - трябва да се валидира дали имейлът вече е използван | ||
34 | - парола | 32 | - парола | ||
35 | 33 | ||||
36 | Вход - потребителят трябва да влезе в профила си, ако вече се е регистрирал. | 34 | Вход - потребителят трябва да влезе в профила си, ако вече се е регистрирал. | ||
37 | Форма за вход: | 35 | Форма за вход: | ||
38 | - имейл адрес | 36 | - имейл адрес | ||
39 | - парола | 37 | - парола | ||
40 | 38 | ||||
41 | Личен профил с информация за тренировки и тегло: | 39 | Личен профил с информация за тренировки и тегло: | ||
42 | - Приложението дава възможност на потребителите да създадат собствени рутинни програми, които са изградени според | 40 | - Приложението дава възможност на потребителите да създадат собствени рутинни програми, които са изградени според | ||
43 | различни фитнес цели – загуба на тегло, изграждане на мускулна маса, подобряване на издръжливостта и други. | 41 | различни фитнес цели – загуба на тегло, изграждане на мускулна маса, подобряване на издръжливостта и други. | ||
44 | 42 | ||||
45 | 2. **Администраторски профил**: | 43 | 2. **Администраторски профил**: | ||
46 | - Администраторът трябва да има достъп до всички функционалности, до които обикновения потребител има достъп. | 44 | - Администраторът трябва да има достъп до всички функционалности, до които обикновения потребител има достъп. | ||
47 | - Администраторът трябва да може да сменя пароли на обикновените потребители, техните имейли и дори да ги изтрива | 45 | - Администраторът трябва да може да сменя пароли на обикновените потребители, техните имейли и дори да ги изтрива | ||
48 | напълно. | 46 | напълно. | ||
49 | - Администраторът трябва да може да трие постове, с цел да се запази адекватно ниво на цензура. | 47 | - Администраторът трябва да може да трие постове, с цел да се запази адекватно ниво на цензура. | ||
50 | - Администраторът трябва да може да изпраща имейл лично (негенериран) до даден потребител, ако това е необходимо. | 48 | - Администраторът трябва да може да изпраща имейл лично (негенериран) до даден потребител, ако това е необходимо. | ||
n | n | 49 | - Администраторът трябва да може да добавя нови упражнения в pool-a и да редактира предишните | ||
51 | - Администраторът е готин. | 50 | - Администраторът е готин. | ||
52 | 51 | ||||
53 | 3. **Тренировки**: | 52 | 3. **Тренировки**: | ||
54 | - Възможност за добавяне на нова тренировка с полета: | 53 | - Възможност за добавяне на нова тренировка с полета: | ||
55 | 54 | ||||
56 | - Логнатият потребител трябва да може да създаде своя тренировка, като попълни необходимата форма за | 55 | - Логнатият потребител трябва да може да създаде своя тренировка, като попълни необходимата форма за | ||
57 | създаване на такава. | 56 | създаване на такава. | ||
58 | 57 | ||||
59 | Формата ще съдържа: | 58 | Формата ще съдържа: | ||
60 | - Вид на тренировката (например кардио, силова тренировка, йога). | 59 | - Вид на тренировката (например кардио, силова тренировка, йога). | ||
61 | - Продължителност в минути. | 60 | - Продължителност в минути. | ||
62 | - Дата на провеждане. | 61 | - Дата на провеждане. | ||
63 | 62 | ||||
64 | - Преглед на всички записани тренировки в табличен формат: | 63 | - Преглед на всички записани тренировки в табличен формат: | ||
65 | - Логнатият потребител трябва да може да види всички свои записани тренировки в табличен формат. | 64 | - Логнатият потребител трябва да може да види всички свои записани тренировки в табличен формат. | ||
66 | - Редактиране и изтриване на записани тренировки: | 65 | - Редактиране и изтриване на записани тренировки: | ||
67 | - Логнатият потребител трябва да може да редактира и изтрива своите записани тренировки. | 66 | - Логнатият потребител трябва да може да редактира и изтрива своите записани тренировки. | ||
68 | 67 | ||||
69 | 4. **Проследяване на тегло**: | 68 | 4. **Проследяване на тегло**: | ||
70 | - Добавяне на запис за тегло с дата на измерване: | 69 | - Добавяне на запис за тегло с дата на измерване: | ||
71 | - Логнатият потребител трябва да може да добавя запис за теглото си в даден ден, като може да го запише в | 70 | - Логнатият потребител трябва да може да добавя запис за теглото си в даден ден, като може да го запише в | ||
72 | килограми или паундове. | 71 | килограми или паундове. | ||
73 | - Преглед на всички записи в таблица: | 72 | - Преглед на всички записи в таблица: | ||
74 | - Логнатият потребител трябва да може да види всички свои записани измервания в табличен формат. | 73 | - Логнатият потребител трябва да може да види всички свои записани измервания в табличен формат. | ||
75 | - Генериране на графика за промяната на теглото с времето: | 74 | - Генериране на графика за промяната на теглото с времето: | ||
76 | - Логнатият потребител трябва да може да види графика, илюстрираща теглото му във времето. | 75 | - Логнатият потребител трябва да може да види графика, илюстрираща теглото му във времето. | ||
77 | 76 | ||||
78 | 5. **Графики и визуализации**: | 77 | 5. **Графики и визуализации**: | ||
79 | - Графика за напредъка на теглото (тегло спрямо време). | 78 | - Графика за напредъка на теглото (тегло спрямо време). | ||
80 | - Визуализация на напредъка на потребителя спрямо сила. | 79 | - Визуализация на напредъка на потребителя спрямо сила. | ||
81 | 80 | ||||
82 | 6. **Известия**: | 81 | 6. **Известия**: | ||
83 | - Известия за успешно добавяне, редактиране или изтриване на данни чрез Django messages. | 82 | - Известия за успешно добавяне, редактиране или изтриване на данни чрез Django messages. | ||
84 | - Приложението предлага статистики по имейл (текущ месец/предходен месец), които дават визуална представа за | 83 | - Приложението предлага статистики по имейл (текущ месец/предходен месец), които дават визуална представа за | ||
85 | постигнатия напредък. | 84 | постигнатия напредък. | ||
86 | - Push Notifications - с цитати на готини хора, напр.: “Аз няма да пия” ~Костадин Русалов. | 85 | - Push Notifications - с цитати на готини хора, напр.: “Аз няма да пия” ~Костадин Русалов. | ||
87 | 86 | ||||
88 | 7. For You - интерактивно пространство в приложението, където потребителите могат да се свързват, да споделят своя опит и да | 87 | 7. For You - интерактивно пространство в приложението, където потребителите могат да се свързват, да споделят своя опит и да | ||
89 | участват в активни дискусии, свързани с техните фитнес цели и постижения. | 88 | участват в активни дискусии, свързани с техните фитнес цели и постижения. | ||
90 | Какво предоставя For You: | 89 | Какво предоставя For You: | ||
91 | - Публикуване на постове: | 90 | - Публикуване на постове: | ||
92 | - Потребителите могат да създават свои постове, в които да споделят мотивационни истории, съвети за тренировки, | 91 | - Потребителите могат да създават свои постове, в които да споделят мотивационни истории, съвети за тренировки, | ||
93 | въпроси или просто вдъхновяващи моменти от личното си фитнес пътуване (текст, снимки, клипове). | 92 | въпроси или просто вдъхновяващи моменти от личното си фитнес пътуване (текст, снимки, клипове). | ||
94 | - Харесване и коментиране: | 93 | - Харесване и коментиране: | ||
95 | - Всяка публикация може да бъде харесвана от други потребители, като по този начин се създава чувство на подкрепа | 94 | - Всяка публикация може да бъде харесвана от други потребители, като по този начин се създава чувство на подкрепа | ||
96 | и мотивация в общността. | 95 | и мотивация в общността. | ||
97 | - Водене на дискусии: | 96 | - Водене на дискусии: | ||
98 | - For You е място за открити и вдъхновяващи дискусии. | 97 | - For You е място за открити и вдъхновяващи дискусии. | ||
n | n | 98 | |||
99 | 8. Разновидност от калкулатори - страница от платформата, в която потребителят ще може да се възползва от набор от калкулатори, | ||||
100 | с помощта на които може да получи нужна за него информация | ||||
101 | - 1. One-Rep Max (1RM) Калкулатор - позволява на потребителите да изчислят максималната тежест, която могат да повдигнат | ||||
102 | за едно повторение, базирано на текущата им тежест и брой повторения. | ||||
103 | - 2. BMI (Body Mass Index) Калкулатор - калкулатор за телесна маса, който определя дали потребителят е поднормено тегло, нормално тегло, | ||||
104 | наднормено тегло или със затлъстяване | ||||
105 | - 3. Калориен Калкулатор - позволява да се определят колко калории са необходими за поддържане на текущото тегло, базирано на активността. | ||||
106 | - 4. Калкулатор за мазнини в тялото (Body Fat Percentage) - изчислява процента телесни мазнини, базирано на обиколки на тялото. | ||||
107 | |||||
108 | 9. Страница с упражнения - Shredded Monty Python ще включва страница с различни упражнения, която позволява на потребителите да разглеждат и организира | ||||
109 | тренировките си по удобен и интуитивен начин. | ||||
110 | |||||
111 | Функционалности на страницата с упражнения: | ||||
112 | 1. Тагове за упражнения: | ||||
113 | - видове тагове: | ||||
114 | > мускулни групи: "back", "chest", "legs", "arms", "core". | ||||
115 | > ниво на трудност: "beginner", "intermediate", "advanced". | ||||
116 | > оборудване: "barbell", "dumbbells", "bodyweight", "resistance bands". | ||||
117 | > тип на упражнението: "strength", "crossfit" (тагът ще бъде баннат предварително), "cardio", "functional training". | ||||
118 | |||||
119 | - всяко упражнение ще бъде категоризирано с един или повече тагове: | ||||
120 | - тагове ще позволяват лесно търсене и филтриране. | ||||
121 | |||||
122 | 2. Сортиране: | ||||
123 | - азбучен ред (A-Z или Z-A). | ||||
124 | - ниво на трудност: "beginner", "intermediate", "advanced". | ||||
125 | |||||
126 | 3. Филтриране | ||||
127 | - потребителите ще могат да филтрират упражненията чрез таговете, което ще улесни намирането на подходящи упражнения за техните нужди. | ||||
128 | |||||
129 | 4. Формите на упражненията освен тагове и име на упражнението, ще включват и YouTube линкове към съответното упражнение, за да може да се визуализира | ||||
130 | лесно начина му на изпълнение на потребителя | ||||
99 | 131 | ||||
100 | **[Milestones/Възлови точки]** | 132 | **[Milestones/Възлови точки]** | ||
101 | - Инициализация на проекта: | 133 | - Инициализация на проекта: | ||
102 | - Създаване на нов Django проект и приложение. | 134 | - Създаване на нов Django проект и приложение. | ||
103 | - Конфигуриране на PostgreSQL база данни чрез psycopg2. | 135 | - Конфигуриране на PostgreSQL база данни чрез psycopg2. | ||
104 | - Настройка на Django Admin за управление на данните. | 136 | - Настройка на Django Admin за управление на данните. | ||
105 | - Създаване на модели: | 137 | - Създаване на модели: | ||
106 | - Модел за потребители: Използване на вградения User модел в Django. | 138 | - Модел за потребители: Използване на вградения User модел в Django. | ||
107 | - Модел за тренировки: Полета: вид тренировка, продължителност, дата, потребител. | 139 | - Модел за тренировки: Полета: вид тренировка, продължителност, дата, потребител. | ||
108 | - Модел за тегло: Полета: дата на измерване, тегло, потребител. | 140 | - Модел за тегло: Полета: дата на измерване, тегло, потребител. | ||
n | n | 141 | - Модел за упражнения: Полета: име, тагове (мускулни групи, ниво на трудност, оборудване, тип), YouTube линк. | ||
109 | - Модел за публикации и коментари в For You. | 142 | - Модел за публикации и коментари в For You. | ||
110 | - CRUD функционалности за тренировки и тегло: | 143 | - CRUD функционалности за тренировки и тегло: | ||
111 | - Създаване на изгледи за добавяне, редактиране и изтриване на записи. | 144 | - Създаване на изгледи за добавяне, редактиране и изтриване на записи. | ||
112 | - Форми за валидиране на входните данни. | 145 | - Форми за валидиране на входните данни. | ||
113 | - Списък с всички записи за тренировки и тегло. | 146 | - Списък с всички записи за тренировки и тегло. | ||
114 | - Автентикация и ограничение на достъпа: | 147 | - Автентикация и ограничение на достъпа: | ||
115 | - Регистрация, вход и изход за потребители с валидиране на данни. | 148 | - Регистрация, вход и изход за потребители с валидиране на данни. | ||
116 | - Ограничаване на достъпа до функционалностите за логнати потребители. | 149 | - Ограничаване на достъпа до функционалностите за логнати потребители. | ||
117 | - Frontend и визуализация: | 150 | - Frontend и визуализация: | ||
118 | - Създаване на шаблони с Django templates. | 151 | - Създаване на шаблони с Django templates. | ||
119 | - Интеграция на Bootstrap за създаване на удобен интерфейс. | 152 | - Интеграция на Bootstrap за създаване на удобен интерфейс. | ||
120 | - Добавяне на графики за прогреса на теглото с Chart.js или Matplotlib. | 153 | - Добавяне на графики за прогреса на теглото с Chart.js или Matplotlib. | ||
121 | - For You функционалности: | 154 | - For You функционалности: | ||
122 | - Реализиране на функционалности за публикуване на постове, коментиране и харесване. | 155 | - Реализиране на функционалности за публикуване на постове, коментиране и харесване. | ||
123 | - Визуализация на списък с постове. | 156 | - Визуализация на списък с постове. | ||
124 | - Поддръжка на качване на медийни файлове. | 157 | - Поддръжка на качване на медийни файлове. | ||
125 | - Известия и push нотификации: | 158 | - Известия и push нотификации: | ||
126 | - Реализация на push известия и известия чрез имейл, включително използване на Django messages. | 159 | - Реализация на push известия и известия чрез имейл, включително използване на Django messages. | ||
n | n | 160 | -Разновидност от калкулатори: | ||
161 | - изграждане на калкулатори: | ||||
162 | > One-Rep Max (1RM) Калкулатор. | ||||
163 | > BMI (Body Mass Index) Калкулатор. | ||||
164 | > Калориен Калкулатор. | ||||
165 | > Калкулатор за мазнини в тялото (Body Fat Percentage). | ||||
166 | - Страница с упражнения: | ||||
167 | > Разработка на страница за разглеждане и организиране на упражнения. | ||||
168 | > Добавяне на тагове за упражнения: мускулни групи, ниво на трудност, тип оборудване, видове упражнения. | ||||
169 | > Реализиране на функционалност за търсене, сортиране (A-Z или Z-A) и филтриране чрез тагове. | ||||
127 | 170 | ||||
128 | **[Estimate in man-hours/Времеоценка в човекочасове]** | 171 | **[Estimate in man-hours/Времеоценка в човекочасове]** | ||
129 | - Инициализация на проекта (10 - 15 човекочаса). | 172 | - Инициализация на проекта (10 - 15 човекочаса). | ||
130 | - Създаване на модели (10 - 15 човекочаса). | 173 | - Създаване на модели (10 - 15 човекочаса). | ||
131 | - CRUD функционалности за тренировки и тегло (15- 20 човекочаса). | 174 | - CRUD функционалности за тренировки и тегло (15- 20 човекочаса). | ||
132 | - Автентикация и ограничение на достъпа (10 - 15 човекочаса). | 175 | - Автентикация и ограничение на достъпа (10 - 15 човекочаса). | ||
133 | - Frontend и визуализация (15 - 20 човекочаса). | 176 | - Frontend и визуализация (15 - 20 човекочаса). | ||
134 | - For You функционалности (20 - 25 човекочаса). | 177 | - For You функционалности (20 - 25 човекочаса). | ||
135 | - Известия и push нотификации (10 - 15 човекочаса). | 178 | - Известия и push нотификации (10 - 15 човекочаса). | ||
n | n | 179 | - Разновидност от калкулатори (5 - 10 човекочаса). | ||
180 | - Страница с упражнения (15 - 20 човекочаса). | ||||
136 | - Тестване и завършване (15 - 20 човекочаса). | 181 | - Тестване и завършване (15 - 20 човекочаса). | ||
137 | 182 | ||||
t | 138 | Общо време 105 - 145 човекочаса | t | 183 | Общо време 125 - 175 човекочаса |
139 | 184 | ||||
140 | **[Usage of technologies/Потребление на технологии]** | 185 | **[Usage of technologies/Потребление на технологии]** | ||
141 | - **Backend**: Django (създаване на RESTful API за функционалностите). | 186 | - **Backend**: Django (създаване на RESTful API за функционалностите). | ||
142 | - **База данни**: PostgreSQL. | 187 | - **База данни**: PostgreSQL. | ||
143 | - **Frontend**: | 188 | - **Frontend**: | ||
144 | - Django templates (генериране на HTML съдържание). | 189 | - Django templates (генериране на HTML съдържание). | ||
145 | - Bootstrap (стилизация на интерфейса). | 190 | - Bootstrap (стилизация на интерфейса). | ||
146 | - Chart.js или Matplotlib (визуализация на данни). | 191 | - Chart.js или Matplotlib (визуализация на данни). | ||
147 | - **Библиотеки**: | 192 | - **Библиотеки**: | ||
148 | - `psycopg2` (връзка между Django и PostgreSQL). | 193 | - `psycopg2` (връзка между Django и PostgreSQL). | ||
149 | - Django messages (съобщения за успех/грешка). | 194 | - Django messages (съобщения за успех/грешка). | ||
150 | """ | 195 | """ |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|