Skip to content

PACT (Performance Analytics & Code Tracker) is a centralized dashboard for educators to monitor student programming progress by aggregating real-time statistics from LeetCode and GitHub.

License

Notifications You must be signed in to change notification settings

dipankarchettri/PACT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PACT - Performance Analytics & Code Tracker

PACT is a centralized dashboard for educators to monitor student programming progress by aggregating real-time statistics from LeetCode and GitHub into a comprehensive analytics platform.

🚀 Features

  • Student Onboarding: Register students with platform usernames (validated in real-time)
  • Centralized Dashboard: View all students with sortable LeetCode and GitHub metrics.
  • Performance Score Calculation: A unified metric combining:
    • LeetCode: Weighted score based on Easy (1pt), Medium (3pt), and Hard (5pt) problems.
    • GitHub: Points for contributions (0.2pt) and stars earned.
  • Data Visualization: Interactive charts for submission trends and language distribution.
  • Export Functionality: Download student data as CSV.
  • Cron Jobs: Automated daily data fetching to ensure fresh analytics.
  • Smart Skill Analysis: AI-powered insights to identify knowledge gaps, with topic breakdowns and personalized problem recommendations.
  • PACT Badges: Gamified milestone system (Top Solver, Streak Master, etc.) to recognize student achievements.

📋 Tech Stack

Frontend

  • React.js (Vite)
  • Tailwind CSS
  • Shadcn/UI components
  • Recharts / Google Charts
  • React Router
  • Axios

Backend

  • Node.js
  • Express.js
  • MongoDB (Mongoose)
  • Node-cron (scheduling)
  • Octokit (GitHub API)

🛠️ Setup & Installation

Prerequisites

  • Node.js (v18+)
  • MongoDB (local or Atlas)
  • GitHub Personal Access Token (Get one here)

Installation Steps

  1. Clone the repository
git clone https://github.com/dipankarchettri/PACT.git
cd PACT
  1. Install dependencies
# Install root dependencies
npm install

# Install client dependencies
cd client && npm install

# Install server dependencies
cd ../server && npm install
  1. Configure environment variables

Server (server/.env):

MONGODB_URI=mongodb://localhost:27017/edustat
GITHUB_TOKEN=your_github_personal_access_token

PORT=5000
NODE_ENV=development

Client (client/.env):

VITE_API_URL=http://localhost:5000/api
  1. Start MongoDB
# If using local MongoDB
mongod
  1. Run the application

From the root directory:

# Development mode (runs both client and server)
npm run dev

Or run separately:

# Terminal 1 - Server
cd server
npm run dev

# Terminal 2 - Client
cd client
npm run dev

The application will be available at:

🔧 API Endpoints

Students

  • GET /api/students - Get all students
  • POST /api/students - Create student
  • GET /api/students/:id - Get student by ID
  • PUT /api/students/:id - Update student
  • DELETE /api/students/:id - Delete student
  • POST /api/students/:id/refresh - Manually refresh student data

Health

  • GET /api/health - Server health check

🚧 Features to be Implemented

📄 Resume Uploader & Parser

Integrated resume management for placement readiness.

  • Upload Portal: Students can upload their resumes directly to their profiles.
  • Auto-Parsing: Extract key skills and projects to auto-populate profile tags.
  • Recruiter View: Allow verified recruiters to view student stats alongside their resumes.

👥 Peer Comparison

Benchmark performance against the cohort.

  • Anonymized Comparison: Overlay a student's activity graph with the batch average.
  • Percentile Ranking: See where a student stands in terms of problems solved and consistency.

📝 License

MIT


Built with ❤️ for education

About

PACT (Performance Analytics & Code Tracker) is a centralized dashboard for educators to monitor student programming progress by aggregating real-time statistics from LeetCode and GitHub.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages