Inspiration
The idea for Do Your Effing LeetCode came from the shared struggle of staying consistent with coding practice. With distractions everywhere and the lack of motivation to tackle daily problems, we wanted to create a fun and slightly aggressive tool that holds users accountable—nudging them to stay on track while adding humor to the process.
What it does
- Redirects users to LeetCode whenever they try to procrastinate by visiting other websites (if they haven’t completed their daily coding goal).
- Allows users to send playful "quack" nudges to friends to remind them to practice coding.
- Provides real-time notifications of nudges received, complete with duck-themed humor.
- Tracks user progress on LeetCode, displaying the total problems solved, difficulty breakdown, and recent submissions on an interactive dashboard.
- Adds a timer feature to encourage focused coding sessions with notifications when time is up.
How we built it
- Frontend: Developed with React for a dynamic and responsive user interface.
- Backend: Powered by Supabase for user authentication, database management, and real-time updates.
- Chrome APIs: Leveraged the Notifications API for playful alerts and the Alarms API for timers. Used the redirection logic to monitor user browsing and redirect them to LeetCode as needed.
- Third-Party Integration: Integrated with the LeetCode API to fetch user data like total problems solved, recent submissions, and difficulty breakdown.
Challenges we ran into
- Implementing real-time notifications and ensuring they were non-intrusive but effective.
- Debugging asynchronous issues in fetching and updating nudge data in the database.
- Reverse-engineering and integrating the undocumented LeetCode API to fetch accurate and reliable user data.
What we learned
- The power of combining humor with productivity tools to keep users engaged.
- How to efficiently use Supabase for real-time updates and database management.
- Handling Chrome APIs, including Notifications and Alarms, to create an interactive and responsive extension.
- Strategies for integrating external APIs, like LeetCode, into a Chrome extension.
What's next for Do Your Effing Leetcode
- Leaderboard: Introduce a leaderboard to compare progress among friends and add a competitive edge.
- Daily Challenges: Suggest specific LeetCode problems each day to users and track their completion.
- Multi-Platform Support: Expand to support other coding platforms like Codeforces, HackerRank, and CodeChef.
- Advanced Redirection Logic: Enhance the redirection feature to provide a smoother user experience while still holding users accountable.
Built With
- chromeapi
- javascript
- leetcodeapi
- postgresql
- supabase
Log in or sign up for Devpost to join the conversation.