ccfddl/ccf-deadlines
53.9
Adequate · 29 September 2026
9.4k
lines of production code
Rust
with JavaScript, Python
2
measurements over time
What this system is
This system is a conference deadline tracking platform for computer science venues, providing web, CLI, and browser extension interfaces to monitor submission dates and acceptance rates. It features a Rust-based frontend with a Cloudflare Worker backend for user authentication, favorites management, and email reminders. The platform aggregates historical data for major HCI conferences and supports batch calendar subscriptions and localized notifications.
Features
Added acceptance rates for CHI, CSCW, CSCWD, UbiComp, and UIST
The system now includes historical acceptance rate data for five major HCI conferences: CHI (2022–2026), CSCW (2018), CSCWD (2023), UbiComp (2016), and UIST (2022–2024). This new data allows users to see the selectivity of these venues based on submitted versus accepted paper counts.
_accept\rates/HI · high confidence
Introduce CCFDDL CLI for tracking conference deadlines
The \extensions/cli/ccfddl\ directory now contains a new command-line tool that fetches conference deadline data from a remote YAML source and displays upcoming submission deadlines. Users can filter results by conference, subcategory, and CCF rank, and view the output as a formatted table or JSON. The tool also supports generating iCal and RSS feeds, correctly handling timezones including US Pacific Time with daylight saving time adjustments.
extensions/cli/ccfddl · high confidence
Introduces Cloudflare Worker backend for GitHub sign-in, message wall, favorites, and email reminders
The CCFDDL platform now uses a new Cloudflare Worker (ccfddl-api) backed by a Cloudflare D1 database to handle core user features. Users can sign in via GitHub OAuth to manage per-edition conference favorites, which can be batch-subscribed to a personal calendar feed. A public message wall allows signed-in users to post, reply, and like messages with strict anti-spam limits. Additionally, users can opt in to receive localized (English/Chinese) email deadline reminders for their starred conferences, scheduled based on their local time zone.
worker · high confidence
New Python data models for conference deadlines
The CLI extension now includes a new Python module (models.py) that defines dataclasses for conference data, including Rank, Timeline, ConferenceYear, Conference, and Category. This module provides serialization/deserialization methods and a predefined list of computer science categories, enabling the CLI to parse and structure conference deadline information in Python.
python · high confidence
New batch calendar subscription and email reminder features
Users can now subscribe to multiple starred conferences at once via a new batch subscription modal that generates a single iCal link for selected editions, and an opt-in email reminder system that sends combined deadline notifications (7 and 1 day prior) to a verified GitHub email in the user's selected timezone and language.
src/components · high confidence
Behavioural changes
CCF DDL Tracker Chrome extension updated to v2.0 with Manifest V3 and redesigned UI
The CCF DDL Tracker Chrome extension has been updated to version 2.0, migrating to Manifest V3 and introducing a redesigned, more compact popup interface. Key changes include a bilingual UI (Chinese/English), new display settings for time format (12/24-hour) and date order, and an improved import flow from CCFDDL with a floating conference picker. The extension now uses a service worker for background tasks, maintains local-only storage, and features a refreshed icon and badge showing days remaining for the nearest deadline.
extensions/chrome · high confidence
Migration to Rust/Leptos with new CSS design system
The application has been rewritten using Rust and the Leptos framework, replacing the previous Vue-based entry point (index.html). This change introduces a comprehensive CSS variable system for theming (colors, spacing, typography) and updates the visual design, including a new initial loading state and refined GitHub authentication button styles.
public · high confidence
Optimized conference data loading with split JSON files
The site now uses a new data-loading pipeline that splits conference and acceptance-rate data into smaller, targeted JSON files (initial.json, history archives, and acceptance buckets) to reduce initial download sizes and improve load performance. The build script (build\_data.py) generates these split files alongside the original full JSON/YAML outputs, and the frontend loads specific groups on demand (e.g., acceptance history by conference title) with fallback to the full files if split files are missing. This change also introduces a YAML validation schema and pre-commit hook to enforce conference data structure, and adds browser and unit tests to verify the new loading behavior and data integrity.
scripts · high confidence
Project rewritten in Rust/Leptos with improved loading and validation
The application has been rewritten from a Vue.js stack to Rust using the Leptos framework, replacing the previous build tooling (babel.config.js) with a Trunk-based pipeline. This change introduces a persistent initial loading screen that remains visible while stylesheets and modules download, with a retry button and automatic recovery for stalled loads. Additionally, a pre-commit hook is now enforced to validate conference YAML files using PyYAML and jsonschema, ensuring data integrity before commits.
(repo-wide) · high confidence
Rewrote application frontend from Vue.js to Rust/Leptos
The frontend implementation has been completely rewritten, replacing the previous Vue.js stack (src/App.vue, src/main.js) with a Rust application using the Leptos framework (src/lib.rs, src/main.rs). This migration changes the underlying technology used to render the user interface, including the removal of the Vue-specific mounting logic and the introduction of a Leptos-based component structure.
src · high confidence
Dependencies
Rewrite project stack from Vue.js to Rust/Leptos and add CLI/API extensions
The project has been rewritten from a Vue.js 2 frontend to a Rust-based application using the Leptos framework, replacing the previous \package.json\ and \yarn.lock\ with \Cargo.toml\ and \Cargo.lock\. This change introduces a new Rust dependency set including Leptos 0.8.8, Thaw, and various WebAssembly bindings. Additionally, new dependency manifests are added for a Python CLI tool (\extensions/cli/pyproject.toml\, \requirements.txt\) using packages like \tabulate\ and \pyyaml\, and a Cloudflare Worker API (\worker/package.json\, \worker/package-lock.json\) using Wrangler 4.0.0.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 66 → 54 (-12.1)
- Rubric changed (rubric-2026.09.8 → rubric-2026.09.17) — scores are not directly comparable.
Lenses
- Code Health 83 → 37 (-46.4)
- Architecture 100 → 100 (+0.0)
- Maturity 73 → 77 (+4.1)
- Readiness 57 → 56 (-0.4)
- Security 73 → 90 (+16.5)
- Accessibility 71 → 70 (-0.4)
- Performance 100 (new)
Resolved (14)
- ConferenceTest.test_conference_yaml_schema (cognitive 22) (scripts/validate.py)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (11 lines × 2) (src/components/showtable.rs)
- Duplicated block (6 lines × 2) (src/components/showtable.rs)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- Off-boarding risk: anonymized user #1
- Workflow token permissions not restricted
New (56)
- Duplicated block (12 lines × 2) (src/components/message_wall.rs)
- Duplicated block (14 lines × 2) (extensions/cli/ccfddl/convert_to_ical.py)
- Duplicated block (18 lines × 2) (extensions/cli/ccfddl/convert_to_ical.py)
- Duplicated block (19–33 lines × 2) (extensions/cli/ccfddl/convert_to_ical.py)
- Duplicated block (5–8 lines × 2) (src/components/batch_subscription_modal.rs)
- Duplicated block (6 lines × 3) (src/components/email_reminders.rs)
- Duplicated block (7–10 lines × 3) (src/components/message_wall.rs)
- Duplicated block (8 lines × 2) (src/components/email_reminders.rs)
- Duplicated block (8 lines × 2) (src/components/favorites_timeline.rs)
- FileTooLong: components/message_wall.rs (src/components/message_wall.rs)
- FileTooLong: src/index.js (worker/src/index.js)
- FunctionTooLong: ccfddl::components::batch_subscription_modal::BatchSubscriptionModal (src/components/batch_subscription_modal.rs)
- FunctionTooLong: ccfddl::components::email_reminders::EmailReminderModal (src/components/email_reminders.rs)
- FunctionTooLong: ccfddl::components::favorites_timeline::FavoritesTimelineModal (src/components/favorites_timeline.rs)
- FunctionTooLong: ccfddl::components::header::Header (src/components/header.rs)
- FunctionTooLong: ccfddl::components::message_wall::MessageWallModal (src/components/message_wall.rs)
- FunctionTooLong: index.finishGithubLogin (worker/src/index.js)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 36 more
Changes since last survey
- 300 commits — 292 feature/other, 8 fixes
By area
- conference/SE — 40 commits
- conference/AI — 37 commits
- conference/SC — 34 commits
- conference/CG — 22 commits
- accept_rates/SC — 21 commits
- conference/DS — 21 commits
- conference/CT — 20 commits
- accept_rates/CT — 19 commits
- accept_rates/AI — 18 commits
- conference/DB — 15 commits
- accept_rates/SE — 9 commits
- conference/NW — 9 commits
- public/styles.css — 8 commits
- src/components — 8 commits
- accept_rates/DB — 7 commits
- (root) — 3 commits
- accept_rates/DS — 2 commits
- .github/workflows — 1 commit
- accept_rates/HI — 1 commit
- accept_rates/MX — 1 commit
Notable commits
- fix: Add RTAS historical regular paper deadlines and fix AM/PM errors (#2250)
- fix: Add VLDB 2021-2022 research statistics and fix 2024 rate arithmetic (#1838)
- fix: Fix ASP-DAC 2024 regular deadline and add 2021–2023 submissions (#2243)
- fix: Fix ASPLOS 2021–2024 regular abstract and submission deadlines (#2242)
- fix: Fix CVPR 2025 numeric acceptance rate and cite official program chairs (#1824)
- fix: Fix FPGA 2023–2024 deadline zones and add historical submissions (#2245)
- fix: Fix GitHub OAuth compatibility and refine favorites timeline (#2293)
- fix: Fix mobile header underline and account layout (#2459)
- change: Add 3DV historical regular registrations and submissions (#2430)
- change: Add ACML 2021, 2022 and 2025 conference-track acceptance rates (#1841)
- change: Add ACNS 2021-2026 full-paper acceptance rates from official proceedings (#1846)
- change: Add ADMA 2022 regular paper deadline (#2211)
- change: Add ALT 2021-2025 acceptance rates from program chairs' prefaces (#1894)
- change: Add APLAS 2021-2025 acceptance rates from official proceedings (#1849)
- change: Add ASE 2021 and pair 2022 regular abstract/full deadline (#2371)
- change: Add ASIACRYPT 2021-2025 acceptance statistics from official proceedings (#1843)
- change: Add ASIACRYPT 2022 and correct 2025 noon submission cutoff (#2326)
- change: Add ATVA 2021-2025 peer-reviewed paper acceptance rates (#1850)
- change: Add CAiSE 2022-2026 main-conference acceptance statistics (#1851)
- change: Add CCC 2021-2026 acceptance rates from official prefaces (#1891)
- …and 280 more
Architecture
- Unchanged — 0 containers · 1 contexts · 0 edges
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ccfddl/ccf-deadlines was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 29 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 908071ccfc6a5fe1a91d000f15b91676d3316c1e — the exact code this score is about.
- Scored under rubric-2026.09.17 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fbec9b1e08c2.