CONSOLE is a student-driven tech community that brings together developers, designers, and problem solvers. This repository is the full-stack source code for our official club website, serving as:
- A public-facing landing page showcasing our events, team, and community
- A developer hub for CONSOLE members with competitive programming profiles, leaderboards, and placement resources
- A live contest tracker with Problem of the Day (POTD), solve verification, and dynamic scoring
- An admin dashboard for club leads to manage events, members, and content
| Feature | Description |
|---|---|
| Hero Section | Animated terminal-style intro |
| About Us | Club mission, values, and community overview |
| Life at CONSOLE | Photo gallery showcasing events and club culture |
| Console Archive | Horizontal scroll timeline of all past CONSOLE events with Minecraft-style cards |
| Meet the Team | Team profiles with animated cards |
| FAQ | Frequently asked questions |
| Events Page | Full list of upcoming & past events with registration links |
| Feature | Description |
|---|---|
| Developer Dashboard | Personal profile with Codeforces + LeetCode handles and stats |
| Competitive Leaderboard | Live-ranked leaderboard by CF + LC ratings with glassmorphism UI |
| Problem of the Day (POTD) | Daily coding challenge with automatic solve verification via Codeforces/LeetCode APIs |
| POTD Leaderboard | Ranked by dynamic score: 100 base pts + up to 50 speed bonus pts |
| Resources Hub | Curated domain-wise resource library (DSA, Web Dev, ML, etc.) |
| Placement Playbook | Interview prep roadmaps and placement resources |
| Tech Guide | Language and framework guides contributed by members |
| Profile Search | Search and view any CONSOLE member's public profile |
- Manage events (create, edit, delete, toggle registration)
- Set the active Problem of the Day
- View and manage all member profiles
Console-website/
├── client/ ← React + Vite frontend (deployed on Vercel)
│ └── src/
│ ├── pages/ ← Full page components (Landing, Dashboard, Events...)
│ ├── components/ ← Reusable UI components (Navbar, Hero, sections...)
│ ├── context/ ← Auth context (Supabase session management)
│ ├── services/ ← API call helpers (eventService, problemService...)
│ ├── hooks/ ← Custom React hooks
│ └── data/ ← Static data files
│
├── server/ ← Node.js + Express backend (deployed on Render)
│ └── index.js ← CORS proxy for CF/LC, leaderboard cache, POTD scoring
│
├── supabase/ ← Database migrations and schema
│ └── migrations/
│
└── docker-compose.yml
Data Flow:
Browser ──→ Vercel (React/Vite) ──→ Supabase (Auth + DB)
──→ Render (Node.js) ──→ Codeforces API
──→ LeetCode API
| Layer | Technology |
|---|---|
| Frontend Framework | React 18 + TypeScript + Vite |
| Styling | Vanilla CSS + Tailwind CSS v4 |
| Animations | Framer Motion |
| Authentication | Supabase Auth (email/password) |
| Database | Supabase (PostgreSQL) with Row Level Security |
| Backend | Node.js + Express |
| External APIs | Codeforces API, LeetCode (GraphQL) |
| Deployment | Vercel (frontend) + Render (backend) |
| Fonts | Montserrat, Inter, JetBrains Mono, Press Start 2P, Menseal |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/leaderboard |
Cached CF + LC leaderboard (refreshes every 30 min) |
GET |
/api/leaderboard/refresh |
Force-refresh leaderboard from external APIs |
GET |
/api/potd/leaderboard-live |
Live POTD solve rankings with dynamic scoring |
GET |
/api/events |
Upcoming events list |
GET |
/api/profile/:handle |
CF/LC profile stats for a handle |
The Problem of the Day leaderboard uses a dynamic scoring model:
Total Score = Base Points + Speed Bonus
Base Points : 100 pts per solved POTD
Speed Bonus : Up to 50 pts, linearly decreasing over 24h from problem publish time
→ Full 50 pts if solved within minutes of posting
→ 0 pts if solved exactly 24h later
Tiebreakers : 1. Total score (descending)
2. Total POTDs solved (descending)
3. Last solve time (ascending - earliest wins)
| File | Purpose |
|---|---|
client/src/pages/Landing.tsx |
Home page - hero, about, events, gallery, timeline |
client/src/components/sections/OurJourney.tsx |
Horizontal scroll event timeline |
client/src/pages/Dashboard.jsx |
Member developer hub |
client/src/pages/POTD.jsx |
Problem of the Day with auto solve verification |
client/src/pages/Admin.jsx |
Admin panel for club leads |
client/src/context/AuthContext.tsx |
Supabase auth session provider |
server/index.js |
Express API server with CF/LC proxy and caching |
This project is the property of CONSOLE Web dev team.
All rights reserved © 2026–27 CONSOLE.
Star this repo if you're part of the CONSOLE community.
console.net.in · CONSOLE