Bridging the gap between academic knowledge and real-world coding skills.
| Resource | Link |
|---|---|
| ๐ Live Demo (Frontend) | code-shastra-dncn.vercel.app |
| ๐จ Figma Design | View Design on Figma |
| ๐บ YouTube Demo | Watch Demo Video |
| โ๏ธ Backend API | codeshastra-backend.onrender.com/api |
| ๐ฎ Postman API Docs | View API Documentation |
Why do fresh graduates lack practical coding skills despite strong academic performance?
Score: 86.5 | Domain: EdTech
Companies hiring fresh graduates consistently discover that candidates possess strong theoretical knowledge and impressive academic scores โ yet they cannot solve basic programming problems, debug real code, or apply concepts practically.
The root cause is clear:
- ๐ College curricula rely heavily on theoretical lectures with little to no hands-on coding.
- ๐ญ There are no industry-simulation labs where students work on real engineering challenges.
- ๐ Students graduate without real-world project experience that companies expect on day one.
codeShastra (meaning "Code Scripture") is a full-stack EdTech platform that transforms the way students learn programming. We provide:
| Feature | Description |
|---|---|
| ๐งช Hands-on Labs | Industry-simulation coding environments with real problem sets |
| ๐๏ธ Project-Based Learning | End-to-end guided projects mirroring actual company workflows |
| ๐ค AI Code Reviewer | Instant feedback on code quality, logic, and best practices |
| ๐ Skill Tracker | Visual dashboard tracking progress, weak areas, and improvements |
| ๐ Challenges & Hackathons | Timed competitive programming rounds to simulate hiring tests |
| ๐จโ๐ซ Mentor Connect | 1:1 sessions with industry professionals and senior developers |
| ๐ Certificates | Verifiable skill certificates accepted by hiring partners |
- React.js โ Component-based UI
- Vite โ Lightning-fast dev server and bundler
- React Router v6 โ Client-side routing
- Axios โ HTTP client for API calls
- Vanilla CSS / CSS Modules โ Styling (no Tailwind)
- Node.js โ Runtime environment
- Express.js โ REST API framework
- MongoDB โ NoSQL database for users, courses, submissions
- Mongoose โ ODM for MongoDB schema modeling
- JWT โ Authentication and authorization
- Bcrypt โ Password hashing
- Multer โ File/image uploads
- Dotenv โ Environment variable management
codeShastra/
โโโ frontend/ # React.js Client Application
โ โโโ public/
โ โ โโโ favicon.ico
โ โ โโโ index.html
โ โโโ src/
โ โ โโโ assets/ # Images, icons, fonts
โ โ โ โโโ logo.svg
โ โ โโโ components/ # Reusable UI components
โ โ โ โโโ Navbar/
โ โ โ โ โโโ Navbar.jsx
โ โ โ โ โโโ Navbar.css
โ โ โ โโโ Footer/
โ โ โ โ โโโ Footer.jsx
โ โ โ โ โโโ Footer.css
โ โ โ โโโ CodeEditor/ # In-browser code editor component
โ โ โ โ โโโ CodeEditor.jsx
โ โ โ โ โโโ CodeEditor.css
โ โ โ โโโ SkillCard/ # Skill progress display card
โ โ โ โ โโโ SkillCard.jsx
โ โ โ โ โโโ SkillCard.css
โ โ โ โโโ Loader/
โ โ โ โโโ Loader.jsx
โ โ โ โโโ Loader.css
โ โ โโโ pages/ # Route-level page components
โ โ โ โโโ Home/
โ โ โ โ โโโ Home.jsx
โ โ โ โ โโโ Home.css
โ โ โ โโโ Auth/
โ โ โ โ โโโ Login.jsx
โ โ โ โ โโโ Register.jsx
โ โ โ โ โโโ Auth.css
โ โ โ โโโ Dashboard/ # Student progress dashboard
โ โ โ โ โโโ Dashboard.jsx
โ โ โ โ โโโ Dashboard.css
โ โ โ โโโ Labs/ # Hands-on coding labs
โ โ โ โ โโโ Labs.jsx
โ โ โ โ โโโ LabDetail.jsx
โ โ โ โ โโโ Labs.css
โ โ โ โโโ Projects/ # Guided project tracks
โ โ โ โ โโโ Projects.jsx
โ โ โ โ โโโ ProjectDetail.jsx
โ โ โ โ โโโ Projects.css
โ โ โ โโโ Challenges/ # Timed coding challenges
โ โ โ โ โโโ Challenges.jsx
โ โ โ โ โโโ ChallengeRoom.jsx
โ โ โ โ โโโ Challenges.css
โ โ โ โโโ Mentors/ # Mentor listing & booking
โ โ โ โ โโโ Mentors.jsx
โ โ โ โ โโโ Mentors.css
โ โ โ โโโ Profile/ # User profile & certificates
โ โ โ โโโ Profile.jsx
โ โ โ โโโ Profile.css
โ โ โโโ context/ # React Context (global state)
โ โ โ โโโ AuthContext.jsx # Authentication state
โ โ โ โโโ ThemeContext.jsx # Light/Dark theme toggle
โ โ โโโ hooks/ # Custom React hooks
โ โ โ โโโ useAuth.js
โ โ โ โโโ useFetch.js
โ โ โโโ services/ # Axios API service layer
โ โ โ โโโ api.js # Base Axios instance
โ โ โ โโโ authService.js # Login, Register, Logout API calls
โ โ โ โโโ labService.js # Labs API calls
โ โ โ โโโ projectService.js # Projects API calls
โ โ โ โโโ challengeService.js # Challenges API calls
โ โ โโโ utils/ # Helper functions
โ โ โ โโโ formatDate.js
โ โ โ โโโ validateForm.js
โ โ โโโ routes/ # Route definitions
โ โ โ โโโ AppRoutes.jsx
โ โ โโโ App.jsx # Root application component
โ โ โโโ App.css # Global styles
โ โ โโโ index.css # CSS reset & design tokens
โ โ โโโ main.jsx # React entry point
โ โโโ .env # Frontend env variables (VITE_API_URL)
โ โโโ vite.config.js
โ โโโ package.json
โ
โโโ backend/ # Node.js + Express REST API
โ โโโ src/
โ โ โโโ config/
โ โ โ โโโ db.js # MongoDB connection setup
โ โ โ โโโ cloudinary.js # Cloudinary config for file uploads
โ โ โโโ models/ # Mongoose data models
โ โ โ โโโ User.model.js # User schema (students, mentors)
โ โ โ โโโ Lab.model.js # Coding lab schema
โ โ โ โโโ Project.model.js # Guided project schema
โ โ โ โโโ Challenge.model.js # Timed challenge schema
โ โ โ โโโ Submission.model.js # Code submission schema
โ โ โ โโโ Certificate.model.js # Certificate schema
โ โ โโโ controllers/ # Route handler logic (MVC)
โ โ โ โโโ auth.controller.js # Register, Login, Logout
โ โ โ โโโ user.controller.js # Profile CRUD
โ โ โ โโโ lab.controller.js # Lab management
โ โ โ โโโ project.controller.js # Project management
โ โ โ โโโ challenge.controller.js# Challenge management
โ โ โ โโโ submission.controller.js # Code submission & evaluation
โ โ โ โโโ certificate.controller.js # Certificate generation
โ โ โโโ routes/ # Express route definitions
โ โ โ โโโ auth.routes.js # /api/auth/*
โ โ โ โโโ user.routes.js # /api/users/*
โ โ โ โโโ lab.routes.js # /api/labs/*
โ โ โ โโโ project.routes.js # /api/projects/*
โ โ โ โโโ challenge.routes.js # /api/challenges/*
โ โ โ โโโ submission.routes.js # /api/submissions/*
โ โ โ โโโ certificate.routes.js # /api/certificates/*
โ โ โโโ middlewares/ # Express middleware
โ โ โ โโโ auth.middleware.js # JWT verification
โ โ โ โโโ role.middleware.js # Role-based access (student/mentor/admin)
โ โ โ โโโ validate.middleware.js # Request body validation
โ โ โ โโโ error.middleware.js # Global error handler
โ โ โโโ utils/ # Backend utility helpers
โ โ โโโ generateToken.js # JWT token creation
โ โ โโโ hashPassword.js # Bcrypt helpers
โ โ โโโ apiResponse.js # Standardized API response format
โ โโโ app.js # Express app setup & middleware
โ โโโ server.js # Server entry point (port listener)
โ โโโ .env # Backend env variables
โ โโโ package.json
โ
โโโ .gitignore
โโโ README.md # โ You are here
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/auth/register |
Register a new user |
POST |
/api/auth/login |
Login and receive JWT |
GET |
/api/users/profile |
Get logged-in user profile |
PUT |
/api/users/profile |
Update user profile |
GET |
/api/labs |
List all coding labs |
GET |
/api/labs/:id |
Get a specific lab |
GET |
/api/projects |
List all guided projects |
GET |
/api/challenges |
List all challenges |
POST |
/api/submissions |
Submit code for evaluation |
GET |
/api/certificates/:userId |
Get user's certificates |
- Node.js v18+
- MongoDB (local or Atlas)
- npm or yarn
git clone https://github.com/Prathvikmehra/codeShastra.git
cd codeShastracd backend
npm install
cp .env.example .env # Add your MongoDB URI, JWT_SECRET, etc.
npm run devcd frontend
npm install
cp .env.example .env # Add VITE_API_URL=http://localhost:5000
npm run devThe frontend will run on http://localhost:5173 and the backend on http://localhost:5000.
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_super_secret_key
JWT_EXPIRES_IN=7d
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
VITE_API_URL=http://localhost:5000
- Project initialization & README
- Backend: Auth system (Register/Login/JWT)
- Backend: Labs, Projects & Challenges CRUD
- Backend: Code submission & evaluation engine
- Frontend: Landing page & authentication flow
- Frontend: Student dashboard with skill tracker
- Frontend: In-browser code editor (Monaco Editor)
- Frontend: Challenges & timed coding room
- Frontend: Mentor connect & booking
- Certificate generation system
- Admin panel for content management
- Deployment (Frontend: Vercel | Backend: Render)
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create your feature branch:
git checkout -b feature/your-feature-name - Commit your changes:
git commit -m "feat: add your feature" - Push to the branch:
git push origin feature/your-feature-name - Open a Pull Request
This project is licensed under the MIT License โ see the LICENSE file for details.
Prathvik Mehra
- GitHub: @Prathvikmehra
"The best way to learn to code is to actually code." โ codeShastra