SportStat - уеб базирано приложение за управление на спортисти от треньори и за информиране на фенове
Използвани технологии: flask(python), bootstrap, sqlite
SportStat e уеб базирано приложение, в което има два типа потребители - треньори и състезатели. По време на регистрацията може да избереш каква е твоята роля. Всеки потребител има собствен акаунт, в който може да въвежда своята информация като треньорът решава каква информация точно иска да събира от своите състезатели, за да си вади статистики впоследствие. Всеки един треньор може да прави различни събития (например тренировка или състезание), да вижда кой състезател е казал, че ще идва и дали е на печалба или на загуба в зависимост от броя посетители на тренировките му. Трениращите при него от своя страна могат да му плащат и през самото приложение (използвайки Paypal). Всеки отбор си има и "фен страница" , на която се изобразяват резултатите от последното състезание за отбора и може да бъде добавена анкета, на която феновете да гласуват(например кой смятат за Most Valued Player)
Features за Версия 0: Срок: до края на практиката
About - тук потребителите виждат основна информация за проекта, няма нужда да са логнати, за да я виждат.
Register(for both coach and competitor) - вкарваш име, мейл, парола и каква е твоята роля и те се записват в базата като паролата не се запазва като plaintext в базата(криптира се със sha256 и се насолва), а мейлът се проверява дали е валиден чрез regex.
Login user - > вкарваш име и парола. Ако тях ги няма в базата се изписва грешка и оставаш на същата страница. Ако са правилни - отиваш на екран за треньор или за състезател с неща, които можеш да правиш в зависимост от ролята ти
Когато се логне, пред треньора се показват бутони за регистрация на отбор, бутон за страница, на която може да види всичките си отбори и бутон за страница, на която може да види данните на всичките си състезатели.
_ Всеки треньор може да създава събития, които имат локация, име и описание.._
Следователно при треньора имаме страници за; Всички отбори, които даден треньор има, Регистрация на отбор, Данните на всички състезатели, Създаване на събития
Когато се логне, състезателят си добавя информация към профила - години, ръст, тегло. Има и място от където да може да редактира тази информация
Ако потребителят се опита да отвори страница, която не съществува - custom 404 page
Страници:
Регистрация
Логин
Страница за смяна на паролата
Всички отбори които даден треньор има
Създаване на събития
Регистрация на отбор
Данните на всички състезатели
custom 404 page
добавяне информация към профила
Опции какво да правиш
Страница със всички отбори в системата
Страница със всички състезатели в системата
Features за Версия 1: Приложението има два типа акаунти - на треньори и на състезатели като това какъв тип си се определя по време на регистрацията. Някои от линковете могат да се виждат без значение дали си регистриран или не.
Всеки състезател и треньор си имат личен акаунт, чрез който могат да променят определена информация в профила си. Треньорите попълват задължителни полета за себе си - име и отбор/клуб. След това треньорът може да добави какви данни да събира от състезателите. В зависимост от информацията, която събира треньора може да има статистика как се променя информацията на състезателите му във времето(например може да се види, че състезател тежи с 3кг повече в края на годината сравнено с началото).
Registration:
- При регистрация имаме полета за име, мейл и парола и каква ще ти е ролята - треньор или състезател.
- Може да се праща потвърждение на мейла, за да се активира акаунта.
Login:
- Вкарва се името/мейла и паролата.
- Логва се ако такъв акаунт съществува.
- Има линк към страница за забравена парола.
Calendar(GOOGLE)
- Feature само за логнати.
- Треньорът добавя събитие, на което може да покани кой да се присъедини. На събитието може да има локация, начален и краен час.
- Поканените имат право да откажат или приемат поканата(получават линк на мейла).):
- Ако се присъединиш към събитието, приложението те подканва да заплатиш
Calendar -> всеки треньор може да създава event - който има id,име и дата. Състезателите от своя страна могат да се записват за event-и и да виждат всички ивенти, за които са записани. В базата се пази връзката event id - userid.
Payments:
- Когато избереш събитието на което искаш да ходиш, може да избереш как искаш да го платиш - чрез paypal или на място.
- Ако е на място - 24 часа преди събитието те уведомява, че утре трябва да платиш и каква е сумата за плащане
// Streams - само ако има време
Schedule :
Kалендар за тренировки на отбора. Треньорът публикува event(тренировка или състезание) като всеки ивент има локация, начален и краен час и описание. В описанието треньора може да добави нужната екипировка или допълнителна информация.
Впоследствие ако event-ът е бил състезание може да се впишат постиженията на отбора от треньора - например дали са победили или не, какъв е резултата, кой е MVP и поле за бележки,в което треньора да запише някаква допълнителна информация, която да им подготви да се подготвят за следващия мач.
Stream : Треньорът може да качи URL на стрийм от youtube на /streams , който да се embed-не в страницата на отбора. На страницата на отбора, която е видима без регистрация, се показва само последния стрийм.
Payment:
Треньорите могат също така да проверяват дали на дадена тренировка са на печалба или на загуба. При въвеждане на цената на залата за определен тайм слот, треньорът може да види дали е на загуба или на печалба. Също така, трениращите могат да изберат как ще платят за даден event - на място или чрез paypal(ако треньорът е дал линк, на който да се плаща)
Info: Публична страница за всеки отбор (от сорта на myapp.com/IceDevilsTeam), на която да се вижда резултата от последния мач на отбора. Също така тук може да се сложи анкета(например кой е Most Valued Player на мача) и феновете да гласуват.