7 → 1 Day-by-day lookups replaced by one week view
3× a day Automatic sync into a copy the center owns, plus a Sync button on every page
0 Changes made to the CRM. The console only reads

The situation

The center runs on a cloud CRM built for tutoring schools. It holds the students, classes, teachers and invoices, and it handles the basics. But it can only show one day's schedule at a time. Its search returns errors. It has no way to spot a teacher booked into two rooms at once, and no list of enrolled students with nothing on the timetable.

So staff rebuilt those views by hand. The registration sheet every family receives each term was typed out by hand too.

Replacing the CRM was on the table, but not yet. The center needed the views now, without a migration and without risking the system the front desk runs on.

What I built

A working map of an undocumented system. The CRM vendor publishes no API documentation. I mapped it by testing, read-only, and wrote down every trap I found: filters that are silently ignored, a search that always errors, and fields that crash the whole request if you ask for them. That reference is what keeps the console from breaking quietly later.

A console that fills the gaps. Each page exists because of a specific thing the CRM can't do:

A copy of the data they own. The console reads from a copy of the CRM kept in the center's own database. It refreshes three times a day and whenever someone clicks Sync. Pages load fast, the CRM never sees a write, and one setting switches the console back to reading the CRM live. The copy holds history back to late 2023, and it's the foundation if the center ever moves off the CRM.

No migration, no retraining, no risk to the system the front desk runs on. Just the views the staff were already building by hand.

A bilingual website rebuild. Alongside the console, I built three design directions for a new public site in English and Traditional Chinese, using only the programs, staff and events on their current site.

The result

Staff see the week, the clashes and the students who are drifting away on one screen, from data they already had. Registration sheets come out of the system instead of a typing session. And the center now owns a clean, current copy of its own records, which turns "should we replace the CRM?" into a decision they can make on their own schedule.