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
Георги Кунчев
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 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|