The problem
Cron schedules look deceptively simple — five small fields — yet students routinely ship expressions that run at the wrong hour, skip weekends unintentionally, or fire far more often than intended, because there is no fast feedback loop between writing "0 9-17 * * 1-5" and understanding it. This project builds that feedback loop: a visual builder where each field is edited separately with its valid range shown, the full expression stays in sync, validation explains exactly which field is wrong, and a plain-language sentence says what the schedule means. Below it, the next eight run times are computed forward from the current moment. The second half of the app is a live scheduler: jobs are registered with a name and expression and fire against a virtual clock, so an hourly job can be observed end to end in about two minutes instead of an hour, with every firing recorded in a run-history table.
How it works
- The student edits any of the five cron fields or types the full expression; both stay in sync and validation runs on every keystroke.
- The parser (supporting *, */n, ranges, lists and combinations) validates each field against its range and reports the exact offending field on error.
- Valid expressions are rendered as a plain-language description plus the next 8 computed run times with countdowns.
- In the scheduler tab, jobs are registered with a name and expression; the virtual clock starts and each virtual minute is checked against every active job.
- When the virtual time matches a job's schedule, the run is logged with its scheduled and fired timestamps and a toast confirms it.
- Jobs can be paused, resumed, run manually or removed; the run history records everything for review.
- The preset pack demonstrates the builder on realistic schedules used in backups, reports and monitoring.
Tech stack:
- HTML5, CSS3, JavaScript (ES6, zero dependencies)
- Hand-written cron parser (*, */n, ranges, comma lists)
- Virtual-clock scheduler engine with run-history logging
- Single-file app — runs offline, no build step, no server
| Parameter | Value |
|---|---|
| App format | Single HTML file, runs offline (design) |
| Cron syntax | Standard 5-field; *, */n, a-b, a-b/n, comma lists (design) |
| Next-run lookahead | 8 runs, up to 1 year forward scan (design) |
| Virtual clock | 1 virtual minute per 2 real seconds (design) |
| Scheduler actions | Add, pause/resume, run-now, remove (design) |
| Browsers | Any modern browser (expected) |
| Dependencies | None (design) |
Project features
- [Visual field editor] Five fields (minute, hour, day-of-month, month, day-of-week) with valid ranges, per-field value summaries and two-way sync with the full expression.
- [Instant validation] Malformed expressions get a precise error naming the offending field and its allowed range, as you type.
- [Plain-language descriptions] Every valid expression is translated into a sentence like "Every day at 09:00", so the schedule's meaning is unambiguous.
- [Next-run calculator] The built-in parser computes the next 8 run times forward from now, each with a human "in X hours Ym" countdown.
- [Live virtual-clock scheduler] Jobs fire against a virtual clock (1 virtual minute = 2 real seconds), so hourly and daily schedules are observable in a demo.
- [Run history] Every firing is logged with job name, scheduled time, actual fire time and status, with one-click manual runs and history clearing.
- [Preset schedule pack] Six common schedules (every minute, every 15 minutes, daily 9 AM, business hours, monthly) load with one click.
What is included
- Complete single-file CronForge web app (builder, next-run calculator, scheduler, history)
- Six-schedule preset pack with explanations
- Project report PDF (scheduling concepts, cron syntax guide, parser design, testing notes)
- PPT presentation for final review
- Viva Q&A preparation document (cron fields, special strings, scheduling pitfalls, parser logic)
Limitations & prerequisites
- Standard 5-field cron only — seconds fields, @-special strings and timezone-aware scheduling are not implemented (listed as future scope).
- The virtual clock is a demonstration accelerator, not a production scheduler; it does not persist jobs across page reloads.
- Day-of-month and day-of-week follow standard cron OR-semantics when both are restricted, documented in the report.
- The parser validates ranges but not calendar impossibilities like February 30th — noted honestly in the limitations section.
- Jobs perform no real work on firing; the app demonstrates scheduling and logging, which is the project's stated scope.
Frequently Asked Questions
What cron syntax is supported?
The standard five fields with *, */n steps, ranges (9-17), stepped ranges and comma lists — covering everything in the preset pack and typical real-world schedules.
How does the next-run calculator work?
The parser walks forward minute by minute from the current time (up to a year ahead), testing each minute against all five fields, and returns the first 8 matches with countdowns.
Why a virtual clock?
Real schedules fire hourly or daily — unwatchable in a demo. The virtual clock advances one minute every two seconds, so an hourly job fires about two minutes after you add it.
Do jobs survive a page reload?
No — jobs and history live in memory for the session. Persistence via localStorage is listed as future scope in the report.
What happens on an invalid expression?
The validator names the exact field and its allowed range (e.g. "hour: '25' outside 0–23") instead of a generic error.
Is this project suitable for a final-year project?
Yes — for Computer Science and IT programs. It demonstrates parsing, scheduling algorithms and a working live system the student can explain and demo confidently. Suitable for B.E./B.Tech final-year projects in Computer Science and IT.
Components & software requirements
- HTML5, CSS3, JavaScript (ES6, zero dependencies)
- Hand-written cron parser (*, */n, ranges, comma lists)
- Virtual-clock scheduler engine with run-history logging
- Single-file app — runs offline, no build step, no server
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.