aikido crm system for trainers and students
final and important additions to be done:
-
add info modal (popup) about pricing
-
consider server requests refactoring (for consistency)
-
redo the schedule display (all day cards of the week)
-
add return to current week button (needs button design)
-
add validation to forms
-
change authorization mechanism
-
probably remake app routing (?)
-
switch student's attendance from color to icons
-
add user's balance in profile (balance if balance > 0 else debt)
-
add labels in control panel
-
add search bar to all students table
-
add toasts to improve ux
-
add adaptive for mobile
-
rewrite readme
-
refactor code
-
Refactoring and additions:
- create component for toggle switch (OPTIONAL)
- extract styles for "a" link in RegistrationForm in another class (PERHAPS NOT NEEDED)
- extract more variables in :root
- extract color styles for "a" in index style file
- restyle header and make it adaptive
- check fonts on every page
- extract small logic and variables in component's functional scope
- remove unused imports and components
- dev additions
- add aliases
- include classNames library
- include propTypes library
- create routes configuration
- consider to create utils/services/network/constants folder
- include mobx library
- general app components structure (not final):
-
Pages:
- HomePage: main app page
- DashboardPage: dashboard page
- ProfilePage: profile page
- RegistrationPage
- LoginPage
- Not found page
-
Header:
- Header: general header component
-
DashBoard:
- SideBar
-
SideBar:
- DashboardSidebar: dashboard sidebar
- DashboardSidebarItem: sidebar elements (Groups, Schedule, Students list, Payments)
-
Sidebar Items:
- GroupsContent (Trainer)
- ScheduleContent (Trainer / Student)
- StudentsContent (Trainer)
- PaymentsContent (Trainer)
-
GroupsContent components:
- GroupsTable
- GroupMembersTable
- AllStudentsTable
- CreateGroupForm
-
ScheduleContent (view = Trainer -> trainer can click on trainings and check attendance):
- TrainingsSchedule
- AttendanceTable
- CreateTrainingForm
-
ScheduleContent (view = Student -> student can only view his trainings):
- TrainingsSchedule scheduleView = schedule (can only view coming trainings)
- TrainingsSchedule scheduleView = student-attendance (can only view which trainings were attended and skipped)
-
StudentsContent components:
- AllStudentsTable
- CreateStudentForm
-
PaymentsContent:
- PaymentsTable
-