Case study / Learning platform
GyanSathi
A learning platform where educators publish courses and lessons, and students enrol and learn from them.
The problem
Give teachers a place to publish lessons and students a place to learn from them.
What it had to do
- Let an educator create and manage courses
- Let a student enrol in them
- Stop either one from doing the other’s job
What was built
A learning platform with role-based sign-in. Educators post text lessons and video links, and students enrol and learn from them. An AI guide built on Gemini answers questions.

My part
- Role-based authentication and authorization for students and educators, my core responsibility.
- The Express and MongoDB backend: sign-in with JSON Web Tokens, the role checks, and the course and lesson API.
- Much of the React front end, including the AI guide and the light and dark themes.
The rest of the team
A teammate built the course management page and other front-end screens.
Decisions that shaped it
Permissions are checked on the server
What a student or an educator may do is decided by the API on every request, not by which buttons the page shows.
The outcome
The front end of the demo is still online and shows the separate registration for students and educators.
Its backend is no longer deployed, so creating an account does not work there today. The code for both is public.
What you can check
- Live demo
The front end only. Signing in needs the backend, which is no longer deployed, so you can look at the pages but not create an account.
Open: Live demo, GyanSathi (opens in a new tab)- Code
The project folder, with the backend and the front end.
Open: Code, GyanSathi (opens in a new tab)- Who did what
The commit history of that folder.
Open: Who did what, GyanSathi (opens in a new tab)