parent
9e8dd00f10
commit
9280ff82ef
@ -0,0 +1,62 @@
|
|||||||
|
# LeetCode Metrics
|
||||||
|
|
||||||
|
**Tier:** 2-Intermediate
|
||||||
|
|
||||||
|
LeetCode is a popular platform for coding practice and technical interview preparation. This application allows you to retrieve and display a user's LeetCode statistics using just their username. The app fetches data from a LeetCode API and presents key metrics such as problem-solving statistics, ranking, submission history, and skill levels in an easy-to-read dashboard.
|
||||||
|
|
||||||
|
The purpose of this application is to help users track their coding progress, compare statistics, and showcase their LeetCode achievements without needing to manually navigate the LeetCode website.
|
||||||
|
|
||||||
|
## User Stories
|
||||||
|
|
||||||
|
- [ ] User can enter a LeetCode username
|
||||||
|
- [ ] User can click on a search button to retrieve the user's metrics
|
||||||
|
- [ ] User can see the user's profile information (name, avatar, ranking)
|
||||||
|
- [ ] User can see total problems solved (easy, medium, hard)
|
||||||
|
- [ ] User can see acceptance rate and submission count
|
||||||
|
- [ ] User can see the user's contest rating and ranking
|
||||||
|
- [ ] User can see recent submission activity
|
||||||
|
- [ ] User should get an error message if the username is not valid or not found
|
||||||
|
|
||||||
|
## Bonus features
|
||||||
|
|
||||||
|
- [ ] User can toggle between dark/light mode
|
||||||
|
- [ ] User can view a graphical representation of solved problems by difficulty
|
||||||
|
- [ ] User can see skill tags and their proficiency levels
|
||||||
|
- [ ] User can compare multiple users side by side
|
||||||
|
- [ ] User can export metrics as an image or PDF
|
||||||
|
- [ ] Selected theme should persist when user returns to the app
|
||||||
|
- [ ] User can see submission calendar/heatmap
|
||||||
|
|
||||||
|
## Useful links and resources
|
||||||
|
|
||||||
|
To get LeetCode user data, you can use the following API:
|
||||||
|
|
||||||
|
- [LeetCode API GraphQL endpoint](https://leetcode.com/graphql) - Official LeetCode GraphQL API
|
||||||
|
- [Fetch API Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch) - For making API calls in JavaScript
|
||||||
|
- [Node.js Documentation](https://nodejs.org/en/docs/) - For backend server setup
|
||||||
|
- [Chart.js](https://www.chartjs.org/) - For creating charts and graphs (optional)
|
||||||
|
|
||||||
|
Example GraphQL query to fetch user stats:
|
||||||
|
```graphql
|
||||||
|
query getUserProfile($username: String!) {
|
||||||
|
matchedUser(username: $username) {
|
||||||
|
username
|
||||||
|
profile {
|
||||||
|
realName
|
||||||
|
userAvatar
|
||||||
|
ranking
|
||||||
|
}
|
||||||
|
submitStats {
|
||||||
|
acSubmissionNum {
|
||||||
|
difficulty
|
||||||
|
count
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Example projects
|
||||||
|
|
||||||
|
- [LeetCode Stats Card](https://github.com/JacobLinCool/LeetCode-Stats-Card) - GitHub-style stats card for LeetCode
|
||||||
|
- [LeetCode Profile](https://github.com/arunbohra/leetcode-profile) - A LeetCode profile viewer
|
||||||
Loading…
Reference in new issue