This project was collaboratively developed by:
- Adarsh Rana
- Abindas P
A comprehensive personal learning history and institutional tracking platform designed to log learning activities, analyze domains and skill patterns, automatically extract certificate credentials using AI, and manage institutional workflows like VAC refund requests.
-
Multi-Role Authentication
JWT-based secure authentication with OTP email verification (via SendGrid). Distinct roles supported:- Student
- Teacher
- HOD
- Admin
- VAC Incharge
-
AI-Powered Certificate Extraction
Upload a certificate image and let the Groq Vision AI model automatically extract and populate:- Course title
- Domain
- Description
- Skills
- Deep reflection
-
VAC Refund Management
Dedicated institutional workflow for handling VAC refund requests with secure multi-document handling:- Pre-Approval
- Certificate
- Receipt
- Administrative tracking
-
Advanced Cloud Media
Reliable image and PDF document storage powered by Cloudinary. -
Dynamic Dashboards
User-specific dashboards equipped with:- Progress statistics
- Total entries
- Learning hours
- Streaks
- Skills analytics
- Immersive 3D visual monitoring
-
Comprehensive Timeline & Sharing
Explore learning entries chronologically, copy direct share links, and export timelines as PDFs. -
Robust Analytics
Insights into:- Domain distribution
- Yearly trends
- Platform usage
- Skills frequency
-
Personalized Profiles & Data Export
Role-based profiles with support for exporting complete learning history as:- JSON
- CSV
Before you begin, ensure the following are installed:
- Node.js (v18 or higher)
- PostgreSQL (v14 or higher)
- Cloudinary Account
- Groq Account
- SendGrid Account
git clone https://github.com/your-username/LearnTrace.git
cd LearnTracecd backend
npm installcd ../frontend
npm installCreate PostgreSQL database:
CREATE DATABASE learntrace;Move to backend directory:
cd backend
cp .env.example .envEdit .env file:
# Server
PORT=3001
NODE_ENV=development
FRONTEND_URL="http://localhost:5173"
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/learntrace?schema=public"
# JWT
JWT_SECRET="your-secret-key"
# Cloudinary
CLOUDINARY_CLOUD_NAME="..."
CLOUDINARY_API_KEY="..."
CLOUDINARY_API_SECRET="..."
# Groq AI
GROQ_API_KEY="..."
# SendGrid
SENDGRID_API_KEY="..."
EMAIL_FROM="your-email@example.com"npx prisma generate
npx prisma migrate devcd backend
npm run devBackend runs on:
http://localhost:3001
cd frontend
npm run devFrontend runs on:
http://localhost:5173
Open browser and visit:
http://localhost:5173
learntrace/
├── backend/
│ ├── src/
│ │ ├── controllers/
│ │ ├── services/
│ │ ├── middleware/
│ │ ├── utils/
│ │ ├── lib/
│ │ └── index.ts
│ ├── prisma/
│ └── package.json
│
└── frontend/
├── src/
│ ├── components/
│ ├── pages/
│ ├── contexts/
│ ├── utils/
│ ├── App.tsx
│ └── main.css
└── package.json
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/auth/signup |
Register user |
| POST | /api/v1/auth/verify-email |
Verify OTP |
| POST | /api/v1/auth/login |
Login user |
| GET | /api/v1/users/profile |
Fetch user profile |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/entries |
Create entry |
| POST | /api/v1/entries/extract-certificate |
AI extraction |
| GET | /api/v1/entries |
Fetch entries |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/vac-refund |
Upload VAC documents |
| GET | /api/v1/vac-refund |
Fetch refund status |
The platform uses a modern and interactive UI system featuring:
- Tailwind CSS
- Glassmorphism components
- Responsive layouts
- Lucide React icons
- Interactive dashboard visualizations
- 3D UI integrations
#4A90E2#d97706
- Inter
- Sans-serif
- All media uploads are securely stored on Cloudinary.
- Raw PDF files are stored using:
resource_type: "raw" - Local upload directories are no longer required.
- Role-based restrictions ensure users only access relevant features.
Built as an advanced, production-quality educational technology system.