Zakaria Boudchiche
All projects
site2026·Drupal Developer — team at FORNET

Chambre des Représentants

Drupal development on the public website of the Chambre des Représentants, Morocco's lower house of parliament — a trilingual institutional portal publishing parliamentary business to the public.

  • Redesign and migration from Drupal 7 to Drupal 10
  • Public portal for a 395-seat parliament
  • Arabic, French, English, Spanish and Amazigh
  • Structured parliamentary data — members, commissions, sessions

The site

The Chambre des Représentants is the lower house of Morocco's parliament — 395 members elected by direct universal suffrage. Its public portal is where the institution publishes its work: the directory of members, the permanent commissions, the parliamentary agenda, legislative activity and news.

I worked on this site as part of the team at FORNET.

What makes a parliamentary portal different

Most of the difficulty is not technical. It comes from what the institution is.

The content model mirrors an institution, not a website. Members belong to groups and to commissions; commissions hold sessions; sessions produce documents; documents relate back to legislation. That's a graph of entities and relationships, and getting it wrong means editors fight the system every day. Modelling it properly in Drupal — entity types, fields, and the references between them — is most of the work.

Several languages, two of them outside the Latin script. Arabic, French, English, Spanish and Amazigh. Arabic is not an afterthought — it is an official language — so right-to-left layout is a first-class case rather than a stylesheet patch. Amazigh is written in Tifinagh, which needs its own font handling. Behind all of it sits a translation workflow the communications team can actually operate.

Publishing is a process with authority behind it. A parliament does not publish by one person clicking save. Content moderation states and role-based permissions have to reflect who is actually allowed to approve what.

The audience includes people who depend on it. Journalists, researchers, citizens looking up their representative. Accessibility and predictable performance are requirements, not polish.

Where I spent the time

  • Content modelling for members, commissions, sessions and legislative content
  • Multilingual configuration across content, interface and configuration
  • RTL handling in the theme layer
  • Editorial workflows, moderation states and permissions
  • Custom modules for requirements no contributed module covered
  • Performance work: caching strategy and query optimisation on listing pages

Note

This was agency work at FORNET, delivered by a team. This page describes the problems the project involved and the parts I worked on — not sole authorship, and nothing about the client's internal systems or infrastructure.

Drupal 7 → 10MigrationMultilingualGovernmentArabic RTL