work@hossein-assar.devReply within 24 hoursفارسی
Hossein AssarHossein AssarDesign & development
Back to projects
Academia · Personal research site

Jalal Kazempour — DTU

Nine years of research records rebuilt out of Google Sites into a site that reads like an academic document

Design · Build · Data migration
Jalal Kazempour — DTU

About the client

Jalal Kazempour is a Full Professor at the Technical University of Denmark, in the Department of Wind and Energy Systems, where he heads the Energy Markets and Analytics section. His site, jalalkazempour.com, is the public record of his research, his students and his teaching.

The problem

The site was a Google Sites page: nine pages, ten sub-pages, and nine years of news archives. Nothing could be maintained without opening and editing pages one at a time, the design was the same generic template thousands of other sites use, and years of research records were spread across pages that had to be kept in agreement by hand. Every new publication meant remembering which other pages also had to change.

Project scope & my role

A complete rebuild. Seven pages are live so far — home, publications, supervision, teaching, talks, projects and news — with more in progress. I designed and built all of it, and wrote the scripts that moved nine years of records across from the old site.

Key features

01A custom design, not a template: a bone-and-oxblood palette, one typeface throughout, and deliberate restraint — no cards, no rounded buttons, no gradients, no drop shadows. It reads as an academic document rather than a technology company’s landing page.
02Every page works with JavaScript switched off. The content is there whether or not scripts load, which matters for accessibility and for anyone reading on a poor connection.
03The fonts are served from the site itself rather than fetched from Google, so no visitor’s data leaves for a third party — a GDPR consideration for a European university.
04The content is moving into a system where the professor edits his own records — publications, supervision, talks, projects — through a form, without touching code. The structure and the import pipeline are built; moving the content across is underway.

Key challenges

Search across 88 supervision records

Typing a name, a topic, an institution or a co-supervisor filters the list as you type. It searches everything visible on the page, including collaborators named in the small print — and if a match sits inside a section that is collapsed, that section opens by itself.

Accents do not have to be typed

Typing “Sogaard” finds “Søgaard”; “Tintore” finds “Tintoré”. Danish letters need handling that the standard approach misses, so a visitor who cannot type the character still finds the person.

Numbers are calculated, never typed

The publication count, the funding total and the summer-school edition years are all worked out from the underlying records. They cannot quietly fall out of date when a record is added, because nobody maintains them.

Every migrated dataset has its own independent checker

Publications, news, supervision, talks and projects were each carried over from the old site by a script, and each has a second script that works the answer out separately and fails loudly if the two disagree. This caught real errors — including 96 news items that had silently been filed as having no date.

The mobile layout was measured, not eyeballed

Five layouts were built and measured with the real content at real screen widths before one was chosen, rather than picking whichever looked acceptable in a desktop browser window.

Outcome

Seven pages are live, and the records that used to be kept in agreement by hand are now derived from a single source — so the counts on the page cannot drift from the records behind them. The remaining content is being migrated into the editing system, after which the professor maintains the whole site himself.

Project screenshots

The Kazempour home page as delivered
01 — The home page as delivered
The Google Sites page the site replaced
02 — The Google Sites page it replaced
The publications page with its filters and derived counts
03 — Publications: filters by type, year and venue, with every count derived from the records
Supervision search matching an accented name
04 — “sogaard” typed, “Søgaard” matched: two of 88 records shown
Supervision search filtered to a single record
05 — The same search filtering live, down to the records that match
The talks page listing recorded lectures
06 — Talks, with slides and video attached to each entry
The EMA section page with study trip photographs
07 — The EMA section: a photo-led page alongside the record-led ones