Eduskill is a cutting-edge, AI-powered e-learning and career-acceleration platform designed to bridge the gap between academic education and industry requirements. By combining personalized AI learning paths, interactive curriculum checkpoint quizzes with smart weakness analysis, automated PDF certification, and interactive AI mentoring, Eduskill provides a highly customized learning experience.
- Engine: Powered by
meta/llama-3.1-70b-instructvia the NVIDIA NIM API. - Personalization: Takes user questionnaire inputsβsuch as target dream job, current skill gaps, weekly time commitments, projects, and specific improvement areasβand builds a custom learning syllabus.
- 4-Tier Quest Log: Generates structured Milestones, Monthly Goals, Weekly Focuses, and Daily Tasks (interactive checkboxes) stored persistently in the database.
- Diagnostic Quizzes: Test knowledge at the end of curriculum modules.
- Smart Performance Review: Automatically maps quiz answers back to specific subtopics.
-
Dynamic Weakness Reports: Evaluates user answers and categorizes skills into Strong (
$>80%$ ), Moderate ($60% - 80%$ ), or Weak ($<60%$ ), allowing students to target precisely what to study next.
- Automation: Generates official course certificates on-the-fly upon course completion.
- Engine: Launches a headless Puppeteer browser instance on the backend, renders an styled HTML template, and compiles it into an A4 print-ready PDF buffer delivered to the user for download.
- Integration: Fully integrated with Razorpay.
- Checkout Flow: Backend communicates with Razorpay APIs to generate unique order parameters and verifies payment signatures locally using SHA256 HMAC for absolute security.
- Helper: Integration with Botpress chatbots customized for specific courses (Web Dev, App Dev, Data Science, Machine Learning) to provide inline, context-aware mentoring 24/7.
- Engine: Connected to Upstash Redis to cache courses, module contents, user progress, and personalized roadmaps.
- Reliability: Uses a non-blocking connection logic; if Redis is down, the system gracefully falls back to direct database queries without crashing the user session.
The Eduskill project is organized as a monorepo containing a modern Next.js client application and a robust TypeScript Node.js backend.
Eduskill/
βββ .github/
β βββ workflows/
β βββ main.yml # GitHub Actions CI (Lints & builds frontend/backend)
β
βββ backend-ts/ # Express & TypeScript Backend
β βββ src/
β β βββ config/ # DB (PostgreSQL) and Redis setup
β β βββ controllers/ # Business logic (Auth, Payments, roadmaps, etc.)
β β βββ middleware/ # JWT validator & session security
β β βββ models/ # PostgreSQL query models
β β βββ routes/ # Express router endpoints
β β βββ services/ # External services (NVIDIA NIM AI, Quiz analysis)
β β βββ templates/ # HTML Certificate templates
β β βββ index.ts # Server initialization
β βββ tsconfig.json # TypeScript compilation options
β βββ package.json # Backend package configuration
β
βββ eduskillfrontend/ # Next.js 16 Client App
βββ app/ # App Router pages (Home, Login, Progress, Details)
βββ components/ # Reusable UI components (Quiz section, AI roadmaps, chat)
βββ lib/ # API client configuration
βββ public/ # Static assets (images, logos)
βββ tsconfig.json # TypeScript client options
βββ package.json # Frontend package configuration
- Core Framework: Next.js 16 (App Router) & React 19
- Type Safety: TypeScript
- Styling: Tailwind CSS v4
- Animations: Framer Motion
- Iconography: Lucide React
- Runtime & Framework: Node.js & Express.js with
ts-node/typescript - Primary Database: PostgreSQL (via
pgconnection pooling) - Caching & Session Storage: Upstash Redis
- PDF Compilation: Puppeteer (headless Chrome engine)
- AI Model Pipeline: Meta Llama-3.1-70b via NVIDIA Integrated API
- Payment Gateway: Razorpay Node SDK
The platform uses a PostgreSQL schema. Key tables and relationships include:
profiles: Holds user records (credentials, name, email, branch, and optionalgoogle_idfor OAuth).courses,phases,modules: Hierarchical content tables mapping phases to courses, and educational modules to phases.user_courses: Junction table tracking purchased/unlocked courses per user.quizzes&quiz_questions: Contains diagnostic test items linked to specific module topics.quiz_attempts&question_attempts: Stores details of student quiz attempts, answers selected, accuracy, time taken, and calculated weak topics.personalized_roadmaps: Stores the raw JSON outputs and daily logs returned by the NVIDIA NIM AI for individual users.roadmap_progress: Tracks custom subtopics toggled as completed.certificates: Logs generated certificates, mapping them to users, courses, and unique verification IDs.
- Node.js: v18+ is required.
- PostgreSQL: An active local or cloud PostgreSQL instance.
- Upstash Redis: An active Redis REST endpoint.
- NVIDIA API Key: A developer key from NVIDIA Build.
- Razorpay Key: Test/Live credentials from Razorpay dashboard.
git clone https://github.com/yashdarekar17/Eduskill.git
cd Eduskill-
Navigate to the backend directory:
cd backend-ts -
Install dependencies:
npm install
-
Create your
.envfile from the template:cp .env.example .env
-
Populate
.envwith your backend configurations (Database, JWT, Upstash Redis, NVIDIA API Key, and Razorpay keys). -
Run database migrations:
npm run build # run migrations node dist/scripts/migrate.js -
Start the development server (runs with hot reload on port
5000):npm run dev
-
Open a new terminal and navigate to the frontend directory:
cd eduskillfrontend -
Install dependencies:
npm install
-
Create a
.env.localfile and add the required frontend environment configuration (backend URL and Google Client ID). -
Start the Next.js development server (runs on
http://localhost:3000):npm run dev
- Import the repository in your Vercel Dashboard.
- Select
eduskillfrontendas the root directory. - Configure the environment variables.
- Vercel automatically detects Next.js settings and deploys.
- Connect your repository to Render or Railway.
- Set the build command to
npm run buildand start command tonpm start. - Provide the required environment variables (PostgreSQL, Upstash Redis, Nvidia NIM API, Razorpay, etc.).
- Ensure your Puppeteer cache directories are configured correctly if deployment fails (handled automatically via the package postinstall script:
npx puppeteer browsers install chrome).
This project is licensed under the ISC License. See the backend-ts/package.json for details.