Top Project
The Andersons — Household Management Application
A full-stack web application built with Laravel & Livewire to centralize scheduling,
task management, meal planning, travel tracking, and expense management for a wealthy
household and its staff.
Download Final Report (PDF)
Technology Stack
Laravel 12
Livewire Flux
Laravel Fortify
Pusher (WebSockets)
SQLite
Pest (Testing)
Vite
PHP 8.2
TailwindCSS
Context & Background
Working as a team, our goal was to design and implement a comprehensive digital solution
for "The Andersons" — a wealthy
family that relies on a household staff of chefs, administrative assistants, and other
personnel to manage day-to-day operations.
The core problem was a lack of any centralized system: tasks, schedules, meals, trips, and
expenses were all managed separately or informally, leading to miscommunication and a
missing overview. Our application consolidates everything into a single platform with
role-based access for five distinct user types: Admin,
Staff, Chef, Family Member, and
The Andersons (heads of household).
Realisations
We delivered a working web application covering the following implemented modules:
-
Authentication & Security: Full login system with two-factor
authentication (2FA) via Laravel Fortify, password recovery via email, and role-based
middleware protecting every route.
-
Dashboard: A personalized overview displaying today's tasks (with
priority and time filters), upcoming trips with checkpoints, and upcoming dinner plans —
all adapted per user role.
-
Task Management: Staff can view, create, complete, and manage their
personal tasks. Family members and The Andersons get a read-only overview of all
household tasks for the day.
-
Invoice & Expense Management: Staff and Chefs upload receipts with
file attachments; Admins and The Andersons can approve, mark as paid, and filter all
household expenses. Full CRUD with status tracking (unpaid / paid).
-
Meal Planning: Admins and Chefs manage planned meals; all users can
join or cancel a dinner, add a guest, and view upcoming meal schedules. Chefs can
confirm when a meal is prepared and view consolidated allergy information.
-
Unavailability Management: Staff and Chefs register unavailability
periods with start/end times. The system automatically detects conflicts with existing
assigned tasks and blocks invalid entries.
-
Admin Panel: A tabbed management panel for Admins covering user
management (create, edit, deactivate/delete), role color customization, receipt
categories, task categories, locations, and task priorities — all protected by
password re-confirmation modals.
-
Real-time Notifications: A Pusher-powered WebSocket notification
system with an in-app notification bell, supporting task assignments, collaboration
requests, and task reminders.
-
Schedule Calendar: A visual calendar showing the household's full
schedule across days, weeks, and months.
-
Staff Availability Calendar: Admins can view all staff availability
and unavailability periods on a shared calendar.
-
Automated Testing: A Pest test suite covering authentication, admin
panel, invoice flows, meal access control, notification API, and smoke tests across all
major routes.
Key Diagrams: Use Case and ERD overviews.
Feature Prioritization — MoSCoW
We used the MoSCoW method to prioritize the 28 identified use cases. The
Must Have features formed the core of our implementation: login &
authentication, task management (personal and staff-wide), availability management,
trip and checkpoint tracking, meal planning and subscriptions, allergy management,
invoice management, and user administration. Should Have features
included account settings, schedule printing, and receipt printing.
Could Have covered collaboration request flows.
Won't Have for this iteration: multi-household support.
What I Learned — Hard Skills
- Full-stack Laravel development (MVC architecture, Eloquent ORM, migrations, seeders, factories)
- Livewire & Livewire Flux (reactive components without writing JavaScript)
- Role-based access control with custom middleware
- Two-factor authentication with Laravel Fortify
- Real-time WebSocket communication with Pusher & Laravel Echo
- Automated feature testing with Pest
- Task conflict detection algorithms (availability vs. task schedule overlap)
- File upload handling and PDF serving via Laravel Storage
What I Learned — Soft Skills
- Translating business requirements and analysis blueprints into working software
- Agile-style team collaboration and task division
- Thinking in user roles — designing different experiences for Admin, Staff, Chef, and Family
- Writing clear technical documentation and test coverage
- Iterative development — building, testing, and refining features sprint by sprint
Teamwork & My Role
This was a collaborative team project. My primary contributions were in the
invoice & expense management module (full CRUD, role-based
visibility, status tracking, file serving), the unavailability system
(including the task conflict detection logic), and the
admin panel (tabbed management UI with inline editing and password
re-confirmation). I also contributed to the shared database architecture, seeding
strategies, and the Pest test suite for the invoice flows.