|
1 | | -# 🚀 CodePVG LeetCode Ranking |
| 1 | +# CodePVG LeetCode Ranking |
2 | 2 |
|
3 | 3 | A web-based platform developed for CodePVG to track and rank students based on their LeetCode performance. |
4 | 4 | It allows users to register with their LeetCode username and automatically fetches their problem-solving statistics to display on a leaderboard. |
5 | 5 |
|
6 | 6 | --- |
7 | 7 |
|
8 | | -## 🎯 Purpose |
| 8 | +## Purpose |
9 | 9 |
|
10 | 10 | The goal of this project is to: |
11 | | -- Encourage consistent problem-solving among students 📈 |
12 | | -- Create a competitive yet motivating environment 🏆 |
13 | | -- Provide visibility into individual coding progress 💻 |
14 | 11 |
|
15 | | ---- |
16 | | - |
17 | | -## 🌟 Features |
18 | | - |
19 | | -### 🔐 User Registration |
20 | | -- Users can register using their name and LeetCode username |
21 | | -- Accepts both direct usernames and profile links |
22 | | -- Validates whether the LeetCode user exists before registration |
| 12 | +- Encourage consistent problem-solving among students |
| 13 | +- Create a competitive yet motivating environment |
| 14 | +- Provide visibility into individual coding progress |
23 | 15 |
|
24 | 16 | --- |
25 | 17 |
|
26 | | -### 📊 Leaderboard System |
27 | | -- Displays ranked users based on their LeetCode stats |
28 | | -- Automatically updates rankings based on fetched data |
29 | | -- Clean UI for easy comparison between users |
| 18 | +## Features |
30 | 19 |
|
31 | | ---- |
| 20 | +### User Registration |
| 21 | +- Users can register using their name and LeetCode username |
| 22 | +- Accepts both direct usernames and profile links |
| 23 | +- Validates whether the LeetCode user exists before registration |
32 | 24 |
|
33 | | -### 🔄 Automated Data Fetching |
34 | | -- Periodically fetches user data using LeetCode API |
35 | | -- Updates stored data without manual intervention |
36 | | -- Ensures leaderboard stays up-to-date |
| 25 | +### Leaderboard System |
| 26 | +- Displays ranked users based on their LeetCode statistics |
| 27 | +- Automatically updates rankings based on fetched data |
| 28 | +- Provides a clean interface for easy comparison |
37 | 29 |
|
38 | | ---- |
| 30 | +### Automated Data Fetching |
| 31 | +- Periodically fetches user data using the LeetCode API |
| 32 | +- Updates stored data without manual intervention |
| 33 | +- Keeps leaderboard information up-to-date |
39 | 34 |
|
40 | | -### 🎨 User-Friendly Interface |
41 | | -- Simple and clean UI design |
42 | | -- Smooth user experience with loading states |
43 | | -- Blur + spinner animation during registration (UX improvement) |
| 35 | +### User Interface |
| 36 | +- Simple and clean UI design |
| 37 | +- Smooth user experience with loading states |
| 38 | +- Includes blur and spinner animation during registration |
44 | 39 |
|
45 | | ---- |
| 40 | +### Input Handling and Validation |
| 41 | +- Extracts username from full LeetCode profile links |
| 42 | +- Prevents invalid or non-existent usernames |
| 43 | +- Avoids duplicate or incorrect entries |
46 | 44 |
|
47 | | -### ⚡ Input Handling & Validation |
48 | | -- Extracts username even from full LeetCode profile links |
49 | | -- Prevents invalid or non-existent usernames |
50 | | -- Avoids duplicate or incorrect entries |
| 45 | +### Error Handling |
| 46 | +- Handles API failures gracefully |
| 47 | +- Displays alerts for invalid inputs |
| 48 | +- Prevents multiple submissions during requests |
51 | 49 |
|
52 | 50 | --- |
53 | 51 |
|
54 | | -### 🛡️ Error Handling |
55 | | -- Handles API failures gracefully |
56 | | -- Displays alerts for invalid inputs |
57 | | -- Prevents multiple submissions during requests |
58 | | - |
59 | | ---- |
| 52 | +## Tech Stack |
60 | 53 |
|
61 | | -## 🛠️ Tech Stack |
62 | | - |
63 | | -| Layer | Technology | |
64 | | -|------------|------------------------| |
65 | | -| Frontend | HTML, CSS, JavaScript | |
66 | | -| Backend | Node.js | |
67 | | -| API | LeetCode API | |
| 54 | +| Layer | Technology | |
| 55 | +|----------|------------------------| |
| 56 | +| Frontend | HTML, CSS, JavaScript | |
| 57 | +| Backend | Node.js | |
| 58 | +| API | LeetCode API | |
68 | 59 |
|
69 | 60 | --- |
70 | 61 |
|
71 | | -## 📂 Project Structure |
| 62 | +## Project Structure |
72 | 63 |
|
| 64 | +``` |
73 | 65 | leetcode-ranking/ |
74 | | -│── frontend/ # UI (HTML, CSS, JS) |
75 | | -│── data/ # Stored user data |
76 | | -│── scripts/ # Automation scripts |
77 | | -│── server.js # Backend server |
| 66 | +│── frontend/ # UI (HTML, CSS, JS) |
| 67 | +│── data/ # Stored user data |
| 68 | +│── scripts/ # Automation scripts |
| 69 | +│── server.js # Backend server |
78 | 70 | │── package.json |
79 | | - |
| 71 | +``` |
80 | 72 |
|
81 | 73 | --- |
82 | 74 |
|
83 | | -## 🚀 How to Run Locally |
| 75 | +## How to Run Locally |
84 | 76 |
|
85 | | -### 1️⃣ Clone the repository |
| 77 | +### 1. Clone the repository |
86 | 78 |
|
87 | 79 | ```bash |
88 | 80 | git clone https://github.com/YOUR-USERNAME/leetcode-ranking.git |
89 | 81 | cd leetcode-ranking |
| 82 | +``` |
| 83 | + |
| 84 | +### 2. Install dependencies |
90 | 85 |
|
91 | | -2️⃣ Install dependencies |
92 | 86 |
|
93 | 87 | npm install |
94 | 88 | cd frontend |
95 | 89 | npm install |
96 | 90 |
|
97 | | -3️⃣ Run the project |
| 91 | +### 3. Run the project |
| 92 | + |
98 | 93 |
|
99 | | -npm run dev OR node server.js |
| 94 | +npm run dev |
100 | 95 |
|
101 | | -📌 Usage |
| 96 | +or |
102 | 97 |
|
103 | | -Open the registration page |
104 | | -Enter your name and LeetCode username |
105 | | -Submit the form |
106 | | -View your ranking on the leaderboard |
107 | | -🤝 Contributing |
| 98 | +node server.js |
108 | 99 |
|
| 100 | +## Usage |
| 101 | + |
| 102 | +1. Open the registration page |
| 103 | +2. Enter your name and LeetCode username |
| 104 | +3. Submit the form |
| 105 | +4. View your ranking on the leaderboard |
| 106 | + |
| 107 | +--- |
109 | 108 |
|
110 | | -Contributions are welcome! |
| 109 | +## Contributing |
111 | 110 |
|
112 | | -Fork the repo |
113 | | -Create a new branch |
114 | | -Make changes |
115 | | -Submit a Pull Request |
| 111 | +Contributions are welcome. |
116 | 112 |
|
| 113 | +- Fork the repository |
| 114 | +- Create a new branch |
| 115 | +- Make your changes |
| 116 | +- Submit a Pull Request |
0 commit comments