Repository: Daily CF on GitHub Author: itsR0sen
Daily CF is a Chrome extension developed to enhance the problem-solving workflow on the Codeforces platform. It automatically suggests a new problem each day based on the user’s history and rating range, presenting it directly in the Codeforces interface. This effectively removes the need to decide what to solve each day and streamlines practice into a quick, habitual step.
- Daily automatic selection of a relevant problem from Codeforces.
- Seamless integration into Codeforces pages (problem set, submission pages, etc.).
- Implements local caching to avoid repeat suggestions within a 24-hour window.
- Minimal overhead and clean UI integration—built for efficiency.
- Configurable via extension source to adjust rating range, problem filters, and supported pages.
Daily CF/
│
├── manifest.json # Configuration for Chrome extension: version, permissions, content scripts
├── content.js # Injects UI into Codeforces pages and coordinates daily problem logic
├── watcher.js # Monitors submission pages to detect accepted problems and update state
├── popup.html # Popup UI (optional interface when toolbar icon is clicked)
├── popup.js # Script associated with popup.html for user actions/settings
├── icons/ # Folder containing icon files used for toolbar, extension listing
│ ├── icon16.png
│ ├── icon48.png
│ └── icon128.png
└── README.md # Documentation file (this document)
Follow these detailed steps to install Daily CF manually from the GitHub source.
- Open the repository: Daily CF – GitHub
- Click the green Code button and select Download ZIP.
- Extract the downloaded ZIP file to a folder of your choice (for example:
Documents/DailyCF). - Confirm that the extracted folder includes the file
manifest.jsonat its root.
-
Open Google Chrome.
-
In the address bar, enter:
chrome://extensions/Press Enter to navigate to the extensions management page.
- On the extensions page, locate the toggle labeled Developer mode (usually at top-right).
- Switch Developer mode to ON. This enables additional options: Load unpacked, Pack extension, Update.
- Click the Load unpacked button.
- A file-browser dialog will appear. Navigate to the folder where you extracted the extension (the folder containing
manifest.json). - Select that folder and click Open (or the equivalent).
- Chrome will install the extension. If successful, you will see Daily CF listed among installed extensions.
- Ensure that the extension Daily CF appears in the list and is Enabled (toggle is switched on).
- Check the Chrome toolbar: the extension’s icon (from the
icons/folder) should appear. - To pin it: click the puzzle-piece icon (Extensions menu) → find Daily CF → click the pin icon.
For a clear, step-by-step installation walkthrough, view the video tutorial at: Click this for Youtube Video
- Navigate to Codeforces using Chrome.
- On a supported page (e.g., problem set, user profile, submission page), Daily CF will automatically inject its panel.
- The panel displays your “Problem of the Day”. Click the link in the panel to open the problem.
- After 24 hours, a new problem will be selected and displayed automatically.
- If you change pages or reload the browser, the panel will refresh accordingly.
- When you make changes to the source code (e.g., content.js, watcher.js), revisit
chrome://extensions/and click the Reload (🔄) icon beside Daily CF to apply updates. - For debugging, navigate to a Codeforces page, right-click → Inspect → open the Console tab to view logs emitted by the extension scripts.
- To support additional Codeforces URLs or alter where the panel appears, modify the
"matches"field undercontent_scriptsinmanifest.json. - To adjust problem selection logic (e.g., rating range, tags), review the code in
content.jsandwatcher.js.
Planned enhancements include:
- A user interface for selecting preferred rating range or problem tags.
- Tracking the history of daily problems solved and providing statistics.
- Theme support (light/dark mode) to match Codeforces UI.
- Publishing the extension to the Chrome Web Store for automatic updates and easier installation.
This project is provided under an open-source license for educational and personal usage. You may modify and redistribute the extension provided that you credit the original author: itsR0sen