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.
- 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.
- React.js (Vite)
- Tailwind CSS
- Shadcn/UI components
- Recharts / Google Charts
- React Router
- Axios
- Node.js
- Express.js
- MongoDB (Mongoose)
- Node-cron (scheduling)
- Octokit (GitHub API)
- Node.js (v18+)
- MongoDB (local or Atlas)
- GitHub Personal Access Token (Get one here)
- Clone the repository
git clone https://github.com/dipankarchettri/PACT.git
cd PACT- Install dependencies
# Install root dependencies
npm install
# Install client dependencies
cd client && npm install
# Install server dependencies
cd ../server && npm install- Configure environment variables
Server (server/.env):
MONGODB_URI=mongodb://localhost:27017/edustat
GITHUB_TOKEN=your_github_personal_access_token
PORT=5000
NODE_ENV=developmentClient (client/.env):
VITE_API_URL=http://localhost:5000/api- Start MongoDB
# If using local MongoDB
mongod- Run the application
From the root directory:
# Development mode (runs both client and server)
npm run devOr run separately:
# Terminal 1 - Server
cd server
npm run dev
# Terminal 2 - Client
cd client
npm run devThe application will be available at:
- Frontend: http://localhost:5173
- Backend: http://localhost:5000
GET /api/students- Get all studentsPOST /api/students- Create studentGET /api/students/:id- Get student by IDPUT /api/students/:id- Update studentDELETE /api/students/:id- Delete studentPOST /api/students/:id/refresh- Manually refresh student data
GET /api/health- Server health check
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.
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.
MIT
Built with ❤️ for education