CLiCScrape

Timetables without the clashes.

Open your courses in MMU CLiC, press Retrieve, and CLiCScrape builds up to five clash-free weekly plans from your filters. You do the clicking. It does the maths.

How it works

Set up once per trimester. Four steps from course list to timetable.

  1. Open CLiC

    Log in as usual and open Enroll by My Requirements for your trimester. The panel picks up your course list.

  2. Retrieve courses

    Tick your courses, open each Course Information page, and press Retrieve this course.

  3. Set filters

    Choose days to keep free, the earliest start, the latest end, and whether full classes count.

  4. Generate plans

    Get up to five random clash-free plans with the option numbers to pick. Then enrol yourself in CLiC.

Free days
Tick the weekdays you want completely free.
Time window
Set the earliest class start and the latest class end.
Open seats
On by default. Turn it off to include full sections.
Weekly grid
Every plan is drawn as a week, with option numbers and a Copy button.
No false plans
If nothing fits your filters, it says so instead of showing a plan that breaks them.
Careful parsing
Retrieve refuses to save when the option count or a time doesn't match the page, and tells you why.

Watch it work

From a bare course list to a finished timetable.

What it reads, and what it doesn't

CLiCScrape reads pages you already opened, and keeps what it reads in your browser's local extension storage.

What it reads

  • Course code, title and units
  • Each option's status and sections (LEC, TUT)
  • Days, times and rooms
  • Seats and meeting dates

What it never touches

  • Logins, passwords or credentials
  • Student names or student IDs
  • Any site other than clic.mmu.edu.my
  • Any server. Nothing is sent anywhere.
Read the full privacy policy

How it's built

JavaScript
A parser, a scheduler, a store and the panel, written as plain modules.
Manifest V3
Runs only on clic.mmu.edu.my.
Shadow DOM
The panel is isolated, so it can't clash with CLiC's own styles.
chrome.storage.local
Retrieved courses and your filters are saved locally, in your browser.
jsdom tests
CLiC-shaped pages, driven through the panel's buttons, with plan counts checked against an independent brute force.
Read the source on GitHub

Questions

Will it enrol me automatically?

No. It never logs in, clicks or enrols for you. You enrol yourself in CLiC using the option numbers shown in a plan.

Why is an option missing from my plans?

Greyed-out options are never used. If you are already enrolled in some classes, CLiC hides the real times of clashing sections behind "Time Conflict", so those options are left out. An option whose time can't be parsed is excluded rather than guessed.

Are the seat counts live?

They are as of the moment you pressed Retrieve. Press Retrieve again on each course before you enrol, because seats change while enrolment is open.

Something looks wrong, or CLiC changed.

A redesign of CLiC can stop the extension recognising a page. Open an issue on GitHub or email the developer and it will get looked at.

Add to Chrome