Fitness courses PWA

Job ID: 32231757

Budget: $250 – $750 USD

A basic fitness course booking PWA (progressive web app) which features:
0) a suitable, modern JS framework like VUE, REACT, or the like, allowing or PWA creation, exclusively with open source frameworks, databases, icon libraries, etc., working in browsers on desktops, smartphone/tablets, and as PWA on smartphones//tablets,
1) landing page (no user login required),
2) user login (with user-email/pwd recovery function, 2FA), roles: admin, trainers, trainees (and parents if trainees are minors), viewers
3) set up of persons: teachers/coaches/trainers by site admin, and trainees (personal data, user avatar/image)
4) diverse locations/establishments, to be set up by the admin and trainer role
5) GDPR compliance (= cloaking personal information like names, sex, from viewers other than the personal trainers)
6) Setting up time tables per establishment with offered course slots, a single training course may consist of several units per week (not only once)
7) dashboard view for trainer, view A showing her/his time table, view B showing her/his trainee list in upcoming course,
8) Trainee list allowing for entering meta data per trainee, like presence at lesson, remarks on behavior, check boxes/dials for reaching performance levels from 1 to 20,
9) Definition of course title , dependent on establishment(e.g. "Yoga kids", "Judo advanced", "Lindy Hop", ...)
10) General: https protocol, customizable meta tags for the landing page, manifest for the PWA implementation, two user-selectable color schemes (light, dark), customizable logo
11) API for triggering external actions like entering trainee's presence information via RESTful interface from RFID card reader,
12) automatic report generation on last day of month, week, anonymized, for each establishment, viewable by establishment admin, with csv export
13) storage of user data presence times, performance, etc. in adequate database (Mongo? MaríaDB?)
14) well documented/commented source code (in functions, pages, views, routes, ...) for efficient handing over to later project/programmer successors.