An AI-Powered Competitive Programming Analytics Platform
DevArena is a comprehensive analytics dashboard and developer portfolio tracker. It aggregates data from multiple platforms—LeetCode, Codeforces, and GitHub—transforming raw API responses and statistics into actionable visualizations and performance metrics.
- Unified Developer Stats
Consolidate your competitive programming rating, total solved counts, streak data, and global rankings across platforms. - Growth & Rating Analytics
Interactive charts tracking your contest rating changes, monthly submissions, and growth trajectory. - Dynamic Topic & Skill Profiling
Visualizes category strengths (Arrays, DP, Graphs, Math, Trees, Strings) and GitHub skill highlights using dynamic radar charts. - Automated Sync Service
Single-click manual sync that pulls live statistics, difficulty breakdowns, and recently solved problems with rate-limit protection. - Secure Auth & Session Handling
JWT-based secure authentication featuring access/refresh token flows, cookie storage, and Google OAuth integration. - Glassmorphic UI
A beautifully crafted, responsive Next.js dark-themed workspace dashboard utilizing Framer Motion and Recharts.
- Framework: Next.js 16 (App Router), React 19
- Styling: Tailwind CSS 4, Framer Motion
- Data Visualization: Recharts
- Language: TypeScript
- Framework: Node.js, Express
- Authentication: JWT, Google OAuth
- Database: MongoDB Atlas, Mongoose
- Caching & Queueing: Redis, BullMQ
- Media: Cloudinary
- Framework: Python, FastAPI, Uvicorn
- Supported Providers: Google Gemini, Groq (LPUs), OpenAI ChatGPT, Anthropic Claude
- RAG Architecture: In-Memory Vector Search, Curated DSA Patterns & Problem Corpus
- Features: Socratic AI Coach, 3-Tier Progressive Hints, Adaptive Study Planner, Contest Review
Project Dev/
├── ai-service/ # FastAPI Python AI & RAG Microservice
│ ├── app/
│ │ ├── api/ # Coach, Hints, Planner, Review endpoints
│ │ ├── data/ # DSA patterns & problem corpus
│ │ └── rag/ # Vector store, embeddings, retriever, chains
│ ├── requirements.txt # Python dependencies
│ └── run.py # Startup runner
├── backend/ # Express Node.js backend server
│ ├── src/
│ │ ├── controllers/ # Route controller handlers
│ │ ├── models/ # Mongoose schemas
│ │ ├── routes/ # API endpoint routes
│ │ ├── services/ # RAG client, caching, achievements
│ │ ├── middlewares/ # Authentication & upload middlewares
│ │ └── utils/ # Platform API fetchers & keep-alive pinger
│ └── package.json
├── frontend/ # Next.js frontend web app
│ ├── src/
│ │ ├── app/ # Next.js App Router (authenticated & dashboard routes)
│ │ ├── components/ # Reusable UI widgets & graphs
│ │ ├── context/ # AuthContext state management
│ │ └── lib/ # Custom hooks and utilities
│ └── package.json
├── PROGRESS.md # High-level feature roadmap & status
├── PLAN.md # Original development outline
└── README.md # Global project documentation
- Node.js (v18+)
- MongoDB (Local or Atlas URI)
- Git
-
Clone the repository
git clone https://github.com/Tiyas04/project-dev.git cd project-dev -
Configure the Backend
cd backend npm installCreate a
.envfile inbackend/:PORT=5000 MONGODB_URI=your_mongodb_connection_uri CORS_ORIGIN=http://localhost:3000 ACCESS_TOKEN_SECRET=your_jwt_access_secret ACCESS_TOKEN_EXPIRY=7d REFRESH_TOKEN_SECRET=your_jwt_refresh_secret REFRESH_TOKEN_EXPIRY=30d SERVER_URL=http://localhost:5000 GOOGLE_CLIENT_ID=your_google_oauth_client_id CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret GITHUB_TOKEN=your_github_personal_access_token
-
Configure the Frontend
cd ../frontend npm installCreate a
.envfile infrontend/:NEXT_PUBLIC_API_URL=http://localhost:5000/api/v1 NEXT_PUBLIC_GOOGLE_CLIENT_ID=your_google_oauth_client_id
-
Configure the AI & RAG Microservice
cd ../ai-service python -m venv .venv # Windows: .venv\Scripts\Activate.ps1 # Linux/macOS: source .venv/bin/activate pip install -r requirements.txt
Create a
.envfile inai-service/:PORT=8000 HOST=0.0.0.0 GEMINI_API_KEY=your_gemini_api_key INTERNAL_AI_SECRET=devarena_rag_secret_key_2026 DEFAULT_MODEL=gemini-3.8-flash
Start all three services concurrently with a single command from the project root:
npm run devThis uses concurrently to launch:
- Backend API:
http://localhost:5000(prefixed with[BACKEND]) - Frontend Web App:
http://localhost:3000(prefixed with[FRONTEND]) - AI & RAG Microservice:
http://localhost:8000(prefixed with[AI_RAG])
Alternatively, you can run them individually:
# Run only backend
npm run dev:backend
# Run only frontend
npm run dev:frontend
# Run only AI microservice
npm run dev:aiDistributed under the MIT License. See LICENSE for more details.