October 9, 2026
Umrah & Hajj Travel Website with Partner Network.
Backend ยท FrontendA website, CMS, and package catalog for an Umrah & Hajj travel agency, with pilgrim registration, installment payments, and a partner (agent) network with referral trees.

Description
A complete web system for a travel agency that organizes Umrah, special Hajj, and halal tours. It combines a custom landing page, a lightweight WordPress-style CMS, a catalog of packages and departure dates, pilgrim (jamaah) registration with staged payments, and a partner program where agents bring in pilgrims through their own network.
Background
The agency sells mostly through agents and word of mouth. Packages, seats, payments, and agent referrals were tracked by hand, and their previous website could not be updated easily. The new system brings all of it into one place.
Goal
Give the agency a site that is easy to edit, a reliable record of every pilgrim and payment, and a clear view of which partner brought in whom.
Features
- Public site: custom-designed landing page, package catalog with schedules, gallery, articles, and a contact page with office map and WhatsApp.
- CMS: articles with categories, tags, scheduled publishing, and revisions (compare and restore), media library with WebP conversion, landing-section editor, redirects, and SEO (sitemap, feed, schema).
- Packages: prices, seats, itinerary, hotels, airlines, and bulk actions (show, draft, archive, featured, full seat).
- Pilgrims: registration by admin, required documents checklist, installment schedules (down payment, installments, settlement) with reminders and late status, receipts as PDF, and departure manifests in Excel.
- Partner network: partner accounts that log in with an ID, a network tree view, partner dashboard, and program reports per month, package, and top partners.
- Admin: role-based panel (super admin, admin, editor, finance, customer service), notifications, 2FA, legal pages for the Indonesian personal data law (UU PDP), and encrypted backups.
Technologies
- Laravel 13, Blade, and Bootstrap 5 / Tabler for the admin โ with no Node.js at all: every front-end asset is a static file in
public/. - Laravel Fortify with custom Blade views, spatie permissions, media library, and sitemap.
- maatwebsite/excel and dompdf for exports and receipts.
- Pest and Larastan (level 6) for tests and static analysis.
Technical Decisions
Money is always stored as integer rupiah, never floats, and every money flow has automated tests. Business values that the client had not decided yet (commission sizes, number of levels) were never guessed โ they live in configuration and were marked for the client.
The project was built in phases (foundation, CMS, catalog and registration, partner system, hardening). After review with the client, the automatic commission engine, wallets, and withdrawals were replaced with manual commissions, and online self-registration with registration by admin โ a simpler flow that matched how the agency actually works.
What I Learned
Building a feature is not always the right answer. Removing the commission engine made the system smaller, safer, and closer to the client’s real process.
Notes
The source code is private (client project).

Hey! I’m Fanny, the software engineer tending to this digital garden. You can read more about me, or subscribe by email.