Additional Project
Rozana Spark Website
A full-stack inventory and e-commerce management platform built solo with Laravel 12 and
Livewire — combining an admin panel for inventory, orders, sales, and financial tracking
with a customer-facing webshop.
View Live Site
Technology Stack
Laravel 12
Livewire Volt
Livewire Flux
Laravel Fortify
SQLite
Pest (Testing)
Intervention Image
PHP 8.3
TailwindCSS
Context & Background
Rozana Spark is a decorative items business that needed a centralized digital platform to
replace manual stock tracking and scattered sales records. The goal was to build a
single system where the business owner could manage the full lifecycle of a product —
from supplier order through to final sale — while also giving customers a webshop to
browse and purchase items directly.
I built the entire platform solo, designing the database architecture, implementing
all business logic, and delivering both the admin panel and the customer-facing webshop
as a unified Laravel application.
Try It Yourself
The live site is open to explore. Log in with the admin account to access the full
admin panel — inventory, orders, sales, finance, and settings.
Admin login:
Email: admin@example.com
Password: admin
Realisations
The delivered platform covers the following implemented modules:
-
Authentication & Security: Full login system with two-factor
authentication (2FA) via Laravel Fortify, email verification, password recovery,
and rate-limited login (5 attempts per minute).
-
Role-Based Access Control: Binary admin/user distinction enforced
via custom
EnsureUserIsAdmin middleware protecting all
/admin/* routes.
-
Inventory Management: Full CRUD for items with photo upload,
quantity tracking, and categorization by color, type, supplier, and materials
(many-to-many). Filter and search across all attributes with a reusable
Livewire filter component.
-
Supplier Order Tracking: Create and manage supplier purchase
orders. Marking an order as "arrived" automatically creates a new item or
increments the existing item's stock count, and triggers a financial summary sync.
-
Sales Management: Record and manage completed sales. Deleting a
sale rolls back the item's inventory count automatically. Monthly revenue and
sale count summaries update in real time.
-
Expense Tracking: Log business expenses by month and year,
factored into the monthly financial calculations.
-
Finance Summary Engine: A
FinanceSummaryService
automatically calculates monthly profit as total sales minus expenses and order
costs — synced on every relevant create, update, or delete action.
-
Master Data Management: A generic
CrudManager
Livewire component handles CRUD for all lookup tables (colors, types, materials,
suppliers) from a single reusable implementation.
-
Customer Webshop: A public-facing product listing with filters
by type, color, and material, a shopping cart (one cart per user), and real-time
cart count updates via Livewire events.
-
Image Handling: Item photo upload and storage via Laravel
Storage, with Intervention Image for image processing.
-
Settings Management: A key-value settings store with an admin
UI for application-wide configuration.
-
Automated Testing: A Pest test suite covering authentication
flows, admin access control, and core business logic.
What I Learned — Hard Skills
- Full-stack Laravel development (MVC, Eloquent ORM, migrations, factories, seeders)
- Livewire Volt & Livewire Flux (reactive single-file components)
- Two-factor authentication with Laravel Fortify
- Role-based middleware and route protection
- Building generic CRUD components reusable across multiple entities
- Service-oriented business logic (FinanceSummaryService, CostCalculationService)
- Image upload and storage with Intervention Image
- Many-to-many relationships with pivot tables (item–material, order–material)
- Automated feature testing with Pest
What I Learned — Soft Skills
- Translating real business needs into a database and application architecture
- Solo project ownership — making every architectural decision independently
- Designing for two distinct audiences (admin vs. customer) in a single application
- Keeping code DRY and maintainable across a growing feature set
- Iterative development — building, testing, and refining sprint by sprint
My Role
I designed and built this entire platform solo — from the initial database schema through
to production deployment. Every module, from the financial summary engine to the
customer webshop cart, was designed, implemented, and tested by me. This project gave me
end-to-end ownership of a real-world application serving an actual business.