Decided to create program instances for each ScholarX instance(ScholarX 2021, ScholarX 2022, ScholarX Junior, etc). This will make components of each platform unique to the program instance and will make the management of these components easier. And also with this approach, it will be possible to run more than one ScholarX program at a given time. (Eg: ScholarX 2021 with ScholarX 2021 junior).
Each program will have its unique homepage with its unique data
Each user will go through a single sign-in registration(this registration is permanent and shared across all the Programs)
Each registered user then can apply to available programs as a mentee/mentor(depending on the Programβs current phase). Admins can manipulate the lifecycle stages.
Each program will consist of a lifecycle and each stage will imply the current phase of the program.
There will be a dashboard for Admins: to manage every component of the platform(Programs, Users, etc.)
There will a dashboard for Mentors: To manage applicants, mentees of each program mentor enrolled for.
Technologies for development
Backend
Spring Boot: API development
Mysql: DB development
Firebase: User authorization
Frontend
ReactJS: UI develpoment
Timeline
Total time: 4 months 2020-07-21T18:30:00Z β 2020-11-21T18:30:00Z
The development of the admin endpoints of the APIs is the next milestone of the backend development plan. To work with the backend simultaneously frontend development would follow the following timeline.
First development milestone of the frontend is to develop the admin part of the dashboard.
Scenes that need to be developed in the admin part of the dashboard are,
Homepage scene (With admin-user oriented rendering)
Manage program scene
Create new program scene
Edit program scene
Change state of the program scene
Manage mentors scene
Manage mentees scene
The rough deadline to develop the above mentioned scenes: 2020-09-01T18:30:00Z
Kubernetes is stuck due to a dockerizing issue in the Frontend
Instead of depending on Kubernetes authentication we have decided to use the Auth server for authorization, authentication and redirection.