Skip to content

CodeClock is a Chrome extension for Codeforces that lets you take rich notes, draw sketches, track solving time with a stopwatch, and tag problems. All data is saved per problem and visible in your profile to help you reflect and improve efficiently.

Notifications You must be signed in to change notification settings

Sowrav14/CodeClock

Repository files navigation

⏰ CodeClock: Chrome Extension for Codeforces

Track your solving time, take notes & sketches, and analyze your performance – all within Codeforces!

📌 Features

  • ⏱️ Stopwatch – Track time directly from the problem page sidebar.
  • 📝 Rich Notes & Sketches – Take notes and draw visual solutions per problem.
  • 📊 Performance Stats – Analyze problem-wise time, tags, and accuracy.
  • 🏷️ Tagging System – Tag problems to filter and reflect later for notes and quick revision.
  • 💾 Offline Storage – Saves data locally via IndexedDB.

📸 Screenshots

🏆 Problem Solving Interface

Problem Page Sidebar

Displays stopwatch and problem-specific controls in the sidebar.

Starting Problem

Interface when a new problem-solving session begins.

Active Solving

Timer runs while solving the problem.

Problem Solved

Displays the recorded solving time post-completion.

✏️ Drawing & Note-Taking Tools

Tool Access

Floating action button for opening drawing or note-taking tools.

Drawing Tool

Sketching ideas or visualizing concepts during problem solving.

Note-Taking Tool

Documenting observations or strategies while solving.

📊 Performance Tracking

Statistics Summary

Overview of solved problems and associated metrics.

Detailed Stats

Detailed breakdown of performance trends.

Problem Table

Compact table summarizing problem history for review.

Tag Filtering

Filter problems by tags for focused revision.

Expanded Notes

View and edit personal notes per problem.

⚙️ Additional Features

Profile View

Displays CodeClock summary in the user’s Codeforces profile.

Popup Menu

Provides quick access to common extension features.

🛠 Installation (Unpacked)

Since this extension is not yet published in the Chrome Web Store, follow these steps to install it manually:

Before running the extension, ensure you have the following installed:

  • Node.js (>= 16) & npm (or pnpm/yarn)
  • Vite (installed via package manager)
  1. Clone the Repository:
    git clone https://github.com/Sowrav14/CodeClock.git
    cd CodeClock
  2. Build the Extension:
    npm install
    npm run build
  3. Load the Extension in Chrome:
    • Open chrome://extensions/ in Chrome.
    • Enable Developer Mode (top-right corner).
    • Click Load Unpacked and select the dist folder inside the cloned repo.

Now, the extension is ready to use! 🎉

🧑‍💻 Usage Guide

  1. Open a Codeforces Problem Page – The stopwatch will appear in the sidebar.
  2. Start the Timer – Click to begin tracking.
  3. Solve the Problem – Work on your solution while the timer runs.
  4. Draw & Note - Navigate the bottom right corner for Drawing and Note taking dialog, use it for sketching the problem and taking note for the problem. You can also tag the problem for your convenient of tracking it later.
  5. Stop & Save – The extension saves the time taken automatically.
  6. View Statistics – Check your performance in the Profile Section of Codeforces.
  7. Problems Tracking - In profile section you also find the table of problems solved using CodeClock. You can see your saved notes for quick revision by filtering by tags.

👨‍💻 Developer Guide

Want to contribute or understand the code? Here's what you need:

📅 Roadmap

🔹 Detailed Statistics – More insights like per-topic and per-rating performance and speed analysis.
🔹 Real-time Database – Compare your solving time with other users.
🔹 Problem-wise Standings – View rankings based on solving speed.
🔹 Contest tracking – Track of time in realtime and virtual contest and show detailed statistics.

🤝 Contributing

Contributions are welcome!

How to Contribute:

  1. Fork the repository.
  2. Create a new branch: git checkout -b feature-name.
  3. Make your changes & commit: git commit -m "Add new feature".
  4. Push to your fork: git push origin feature-name.
  5. Create a Pull Request.

💬 Feedback & Support

Found a bug? Have a suggestion? Open an issue or reach out!

📧 Email: sowravvnath@gmail.com
LinkedIn: Sowrav Nath

About

CodeClock is a Chrome extension for Codeforces that lets you take rich notes, draw sketches, track solving time with a stopwatch, and tag problems. All data is saved per problem and visible in your profile to help you reflect and improve efficiently.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published