A modern full-stack platform for learning Java, generating AI quizzes, tracking progress, and managing content from one clean dashboard.
This project is built for students, instructors, and admins who need a simple, structured, and professional learning experience. It combines guided lessons, AI-based quiz generation, a dashboard for progress tracking, and an admin panel for content control.
Built and maintained by Ravi Shyam Singh.
- Clean landing page with a strong first impression
- Simple home page for course navigation and learning access
- Dashboard for progress tracking and user activity
- AI-powered quiz generation for faster practice
- Admin panel for managing users and content
- Role-based learning workflow for a structured experience
- Frontend: React, Vite, TypeScript, Tailwind CSS, shadcn/ui
- Backend: Node.js, Express, MongoDB
- AI & Tools: Gemini API, Monaco Editor, React Query, Axios
All screenshots are stored in docs/readme-images/.
| Page | Preview |
|---|---|
| Landing Page | ![]() |
| Home Page | ![]() |
| Dashboard | ![]() |
| AI Powered Quiz Generation | ![]() |
| Admin Panel | ![]() |
backend/- API, authentication, reports, admin services, and database logicworkspace/shadcn-ui/- Frontend application and user interfacedocs/readme-images/- Screenshot assets used in this README
Use the environment sample files in the project root to configure the app before running it. The backend expects settings for Gemini, MongoDB, Redis, OAuth, JWT, email, and security.
cd backend
npm install
cd ../workspace/shadcn-ui
pnpm install- Backend:
npm run devinsidebackend/ - Frontend:
pnpm devinsideworkspace/shadcn-ui/
npm run dev- Start the backend in development modenpm run prod- Start the backend in production modenpm run create-admin- Create an admin usernpm run init-db- Initialize the databasenpm run verify-config- Validate configuration
pnpm dev- Start the frontend in development modepnpm build- Build the frontend for productionpnpm lint- Run lint checks
- Keep secrets out of version control.
- Place screenshot files in
docs/readme-images/using the same names referenced above.




