Welcome to LeetCode Among Us - a competitive programming platform designed specifically for MCA students at NIT Warangal! π―
This web application creates a thriving competitive environment where students can track their LeetCode progress, compete with batch-mates, and celebrate coding achievements together. Whether you're grinding daily problems or preparing for placements, this platform provides the motivation and insights you need to excel! πͺ
π Personal LeetCode Dashboard: Track your problem-solving journey with detailed analytics and progress insights
π Dynamic Leaderboards: Real-time rankings within your batch to fuel healthy competition
ποΈ Recognition System: Celebrate top performers and milestone achievements
π Batch Comparisons: Compare performance across different MCA batches for broader perspective
π Live Data Sync: Automatic updates from LeetCode API for real-time statistics
π¨ Modern UI/UX: Clean, responsive design for seamless user experience
- Frontend: React 18.2.0, Bootstrap, AG-Grid
- Backend: Node.js, Express 4.x
- APIs: LeetCode GraphQL API
- Deployment: Production-ready build system
- Node.js (version 20.5.0 or higher)
- npm (comes with Node.js)
- Git for version control
-
Clone the repository
git clone https://github.com/MCA-NITW/leetcode_among_us.git cd leetcode_among_us
-
Install dependencies
npm install npm run build
-
Start the development server
npm run dev
-
Open your browser
Frontend: http://localhost:3000 Backend: http://localhost:3001
Command | Description |
---|---|
npm run dev |
Starts both frontend and backend in development mode |
npm start |
Starts only the backend server |
npm run frontend-build |
Builds the React frontend for production |
npm run build |
Full production build |
npm run validate-json |
Validates the LeetCode users JSON file format |
Want to join the leaderboard? Follow these simple steps to add yourself!
git clone https://github.com/your-username/leetcode_among_us.git
cd leetcode_among_us
Navigate to client/src/assets/leetcoders_data.json
and add your entry in this
exact format:
{
"id": "YOUR_STUDENT_ID",
"name": "Your Full Name",
"userName": "your_leetcode_username",
"batch": "YYYY",
"gender": "male/female"
}
{
"id": "22MCF1R01",
"name": "John Doe",
"userName": "john_coder",
"batch": "2025",
"gender": "male"
}
- id: Your official student ID (e.g., 22MCF1R01)
- name: Your full name as registered
- userName: Your exact LeetCode username (case-sensitive!)
- batch: Your graduation year (e.g., "2025", "2026")
- gender: "male" or "female"
Run our validation script to check your JSON format:
npm run validate-json
This will check for:
- β Proper JSON syntax
- β Required fields
- β No duplicate student IDs
- β Valid batch and gender formats
-
Create a new branch
git checkout -b add-my-leetcode-id
-
Commit your changes
git add . git commit -m "Add [Your Name] to LeetCode leaderboard"
-
Push and create PR
git push origin add-my-leetcode-id
Then create a Pull Request on GitHub!
- Username Accuracy: Make sure your LeetCode username is 100% correct
- JSON Format: Follow the exact JSON structure to avoid errors
- No Duplicates: Check if your ID already exists before adding
- Alphabetical Order: Add your entry in alphabetical order by student ID
LEETCODE_AMONG_US/
βββ client/ # React frontend
β βββ public/ # Static files
β β βββ favicon.ico
β β βββ index.html
β βββ src/
β β βββ api/ # API calls & GraphQL queries
β β β βββ AllQueries.js
β β β βββ FetchData.js
β β βββ assets/ # Static data files
β β β βββ leetcoders_data.json # π Add your LeetCode ID here!
β β βββ components/ # Reusable components
β β β βββ Dropdown.js
β β β βββ Loader/
β β β βββ Nav/
β β βββ pages/ # Page components
β β β βββ Home/
β β β βββ LeaderBoard/
β β β βββ UserStats/
β β βββ utils/ # Utility functions
β β βββ App.js # Main React component
β β βββ index.js # Entry point
β βββ package.json
βββ server.mjs # Express server
βββ package.json # Server dependencies
βββ README.md
-
Branch Creation: Create feature branches from
main
git checkout -b feature-description
-
Development: Implement changes following coding standards
-
Testing: Thoroughly test your changes locally
-
Pull Request: Create PR with clear description
-
Fork: Fork the repository to your account
-
Clone: Clone your fork locally
-
Branch: Create a feature branch
-
Develop: Make your changes
-
PR: Submit pull request with detailed explanation
npm run build
Create .env
file in root directory:
PORT=3001
NODE_ENV=production
Q: My LeetCode stats aren't showing up A: Make sure your username in the JSON file exactly matches your LeetCode profile username (case-sensitive)
Q: How often does the leaderboard update? A: The leaderboard updates in real-time when you refresh the page
Q: Can I update my information later? A: Yes! Just submit another PR with your updated information
Q: What if I don't have a LeetCode account? A: Create one at leetcode.com first, then add your username here
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: Contact the maintainers
This project is licensed under the ISC License. See the LICENSE file for details.
- NIT Warangal MCA Department
- LeetCode for providing the GraphQL API
- All contributors who make this project possible
Made with β€οΈ by MCA students for MCA students
Happy Coding! π