Блог пользователя itsR0sen

Автор itsR0sen, история, 11 месяцев назад, По-английски

Hey everyone!

I’m excited to share something I’ve been working on — a Chrome extension called Daily CF. It’s built to make your Codeforces practice more focused, consistent, and effortless by recommending daily personalized problems right inside the Codeforces interface.

What is Daily CF?

Daily CF is a minimal, integrated extension that adds a new section named “→ CF Daily” to your Codeforces sidebar. Every day, it suggests a small set of problems tailored to your current rating and problem history — so you can start solving instantly without wasting time deciding what to do next.

Key Features

Daily Personalized Problem Set Each day, Daily CF selects a fresh batch of unsolved problems near your current rating range using the Codeforces API. You can also refresh manually anytime with the “Find” button.

24-Hour Smart Caching Fetched problems are saved locally for 24 hours. When the date changes, the extension automatically refreshes the problem list — ensuring you get a new set every day.

Manual Refresh & Timestamp

You can manually update your list anytime using the refresh button. A small timestamp (e.g., “Last: 2:05 PM”) is shown beside the title, so you always know when your problems were last generated.

Seamless Integration

The table blends naturally into the Codeforces UI — matching its fonts, colors, and layout — making it look like an official built-in feature rather than an external add-on.

How It Works

  1. content.js runs on your Codeforces homepage and injects the “CF Daily” problem table.
  2. It fetches problems using the official Codeforces REST API.
  3. watcher.js runs on your submissions pages, detects accepted problems, and updates the stored data accordingly.
  4. Problems are refreshed automatically once per day or manually upon request.

Why I Built This

As a regular problem solver, I often spend more time choosing problems than solving them. Daily CF removes that friction — it ensures that every time I open Codeforces, I’m just one click away from solving something new and meaningful.

Feedback and Future Plans

I’d love to hear your thoughts and feedback — what works well, and what could be improved. If enough people find it useful, I plan to publish Daily CF officially on the Chrome Web Store and continue improving it with new features.

Final Words

Daily CF is not just another tool — it’s a small step toward building a disciplined practice routine. No setup, no searching, just progress. Happy coding, and see you on the leaderboard!

Here is the GitHub Repository. Do check out!

— itsR0sen

  • Проголосовать: нравится
  • +16
  • Проголосовать: не нравится

»
11 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by itsR0sen (previous revision, new revision, compare).

»
11 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

is it in the chrome extension store? I did not find it out

»
11 месяцев назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

Daily CF – Chrome Extension

Repository: Daily CF on GitHub Author: itsR0sen


Overview

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.


Key Features

  • 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.

Project Structure (as per repository)

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)

Manual Installation Guide (Chrome)

Follow these detailed steps to install Daily CF manually from the GitHub source.

Step 1: Download the Extension Files

  1. Open the repository: Daily CF – GitHub
  2. Click the green Code button and select Download ZIP.
  3. Extract the downloaded ZIP file to a folder of your choice (for example: Documents/DailyCF).
  4. Confirm that the extracted folder includes the file manifest.json at its root.

Step 2: Access Chrome’s Extensions Page

  1. Open Google Chrome.
  2. In the address bar, enter:

    chrome://extensions/
    

    Press Enter to navigate to the extensions management page.

Step 3: Enable Developer Mode

  1. On the extensions page, locate the toggle labeled Developer mode (usually at top-right).
  2. Switch Developer mode to ON. This enables additional options: Load unpacked, Pack extension, Update.

Step 4: Load the Unpacked Extension

  1. Click the Load unpacked button.
  2. A file-browser dialog will appear. Navigate to the folder where you extracted the extension (the folder containing manifest.json).
  3. Select that folder and click Open (or the equivalent).
  4. Chrome will install the extension. If successful, you will see Daily CF listed among installed extensions.

Step 5: Verify Installation

  1. Ensure that the extension Daily CF appears in the list and is Enabled (toggle is switched on).
  2. Check the Chrome toolbar: the extension’s icon (from the icons/ folder) should appear.
  3. To pin it: click the puzzle-piece icon (Extensions menu) → find Daily CF → click the pin icon.

Step 6: Watch Visual Tutorial (Optional)

For a clear, step-by-step installation walkthrough, view the video tutorial at: Click this for Youtube Video


Usage Instructions

  1. Navigate to Codeforces using Chrome.
  2. On a supported page (e.g., problem set, user profile, submission page), Daily CF will automatically inject its panel.
  3. The panel displays your “Problem of the Day”. Click the link in the panel to open the problem.
  4. After 24 hours, a new problem will be selected and displayed automatically.
  5. If you change pages or reload the browser, the panel will refresh accordingly.

Development Notes

  • 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 under content_scripts in manifest.json.
  • To adjust problem selection logic (e.g., rating range, tags), review the code in content.js and watcher.js.

Future Enhancements

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.

License

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

»
11 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by itsR0sen (previous revision, new revision, compare).

»
11 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

now, just make an extension that fixes the ui. its absolute dog water

»
11 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

It is very useful. Thx for this extension

»
11 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

well done bro

»
10 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by itsR0sen (previous revision, new revision, compare).

»
10 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Good job!

»
10 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

why is it not available on edge???

»
10 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

It is very useful. Thank you for this extension! I really appreciate your effort.

»
7 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Nice work Rosen!