A school-based promotional product catalog connecting student sellers with buyers through WhatsApp.
Digital Product Catalog · Direct WhatsApp Ordering
Student Sellers
Curated 10-Digit NISN
Admin Moderation
Two-Stage Edit Review
WhatsApp Order
Direct Buyer → Seller
Context, Purpose & Scope
Web Development & UI/UX · Developer & UI/UX Designer
SiswaMart was created to give student entrepreneurs at SMKN 11 Bandung a dedicated digital space to promote their products—ranging from snacks and heavy meals to beverages and desserts—to fellow students, teachers, and the wider school community.
Rather than operating as an online checkout or integrated payment marketplace, SiswaMart functions as a promotional product catalog. Visitors explore product details, check whether items are ready stock or pre-order, read buyer reviews, and message the student seller directly on WhatsApp to arrange in-person school pickup.
SiswaMart is a promotional product catalog, not an integrated payment marketplace. The website displays verified product listings and seller profiles, while order coordination and payment happen directly between buyer and seller on WhatsApp.
My Role & Responsibilities
I worked on SiswaMart across UI/UX design, frontend Blade and Tailwind implementation, and core Laravel backend workflows.
UI/UX & Visual Design
- Defined the interface layout, color tokens, typography pairing (Fredoka and Plus Jakarta Sans), and tactile card borders suited for a friendly school catalog.
- Designed the user flows for public buyers, student sellers, and school administrators to keep daily tasks straightforward on both desktop and mobile screens.
Frontend Implementation
- Built responsive views using Laravel Blade components, Tailwind CSS v4, and Alpine.js for category filtering, modal dialogs, and status tabs.
- Created consistent status indicators for product stock (Tersedia, Pre-Order, Habis), store availability (Buka / Tutup), and moderation states.
Backend & Moderation Logic
- Implemented role-based routes and controllers for Public, Penjual (Seller), and Admin workspaces with MySQL relational models.
- Developed the WhatsApp redirection and click-logging endpoint, two-stage product edit moderation workflow, guest review profanity filter, and PDF/Excel report exports.
From scattered school promotions to a structured catalog.
Informal & Fragmented Discovery
Student sellers previously promoted their products through scattered chat messages and temporary status updates, making it difficult for buyers around school to see what was available each day.
Existing Challenges
- 01Product photos, prices, and availability (Ready Stock vs. Pre-Order) were buried across group chats and expiring social media stories.
- 02Buyers had no central directory to browse by category, compare student products, or check whether a student seller's store was currently open or closed.
- 03Operating within a school environment required teacher/admin oversight so that seller accounts are verified, product edits are reviewed before going live, and public comments stay respectful.
- 04Introducing a commercial payment gateway or shipping checkout would add unnecessary fees and friction for face-to-face school transactions.
Core User Needs
- NEED 01Buyers need a single, login-free catalog to discover available food, snacks, and drinks at school.
- NEED 02Student sellers need a dedicated workspace to manage product listings, update stock status, and share their WhatsApp contact.
- NEED 03School administrators need structured moderation controls to verify student identities (NISN) and review product changes before publication.
Centralized Catalog + WhatsApp Handoff
Designed and developed a web-based promotional catalog with a direct WhatsApp ordering handoff, supported by dedicated Student Seller and School Admin workspaces.
Product Approach
- 01Built an open public product catalog with keyword search, category filters (Dessert, Makanan Berat, Minuman, Snack), price range filtering, and store open/close badges.
- 02Implemented a Direct-to-WhatsApp ordering flow (`GET /produk/{slug}/whatsapp`) that logs promotional click interest and opens a pre-filled WhatsApp chat with the seller.
- 03Created a Student Seller dashboard (`/penjual`) to manage product listings, toggle store availability, track product views and WhatsApp clicks, and export recap reports.
- 04Engineered a School Admin moderation panel (`/admin`) featuring curated 10-digit NISN seller registration, two-stage product edit moderation, and automated guest review filtering.
User & School Benefits
- BENEFIT 01Zero checkout friction: buyers go from product discovery to direct WhatsApp conversation in one click.
- BENEFIT 02Safe school governance: live products stay intact while proposed edits (`pending_changes`) await admin approval.
- BENEFIT 03Structured visibility: student sellers gain a permanent showcase and exportable PDF/Excel promotional reports.
System flow from student seller listing to WhatsApp conversation.
SiswaMart separates public product discovery and school moderation from payment settlement—routing order intent directly into WhatsApp so student sellers and buyers can coordinate in-person school pickup.
Curated Seller Onboarding & Two-Stage Product Edit Moderation
Student Sellers
Workspace (/penjual)
- ·Verified 10-digit NISN student account
- ·Submits products & proposes edits
- ·Toggles store status (Buka / Tutup)
SiswaMart Catalog
Laravel + MySQL Core
- ·Two-Stage Product Edit Moderation
- ·Stores active listing + pending_changes
- ·Filters guest reviews (CommentModerationService)
Product Discovery
Open Public Directory
- ·Category, keyword & price filtering
- ·Stock badges (Tersedia / PO / Habis)
- ·Zero login required for buyers
WhatsApp Handoff
GET /produk/{slug}/whatsapp
- ·Logs click to produk_views_logs
- ·Generates pre-filled order message
- ·Redirects directly to wa.me/{seller}
Buyers
School Community
- ·Students, teachers & school staff
- ·Coordinate pickup & COD on WhatsApp
- ·Leave moderated public product ratings
SiswaMart intentionally excludes in-app shopping carts, escrow wallets, and third-party payment gateways. The web application serves strictly as a verified promotional catalog; once a buyer clicks Pesan via WhatsApp, order confirmation and COD payment happen directly between buyer and student seller on WhatsApp.
Verified platform capabilities illustrated through functional UI compositions.
Each card below pairs a verified feature from the SiswaMart codebase with an interactive or schematic UI composition built directly with HTML, CSS, and React.
Product Catalog
Open public directory displaying student-made products with clear pricing, stock availability (Tersedia, Pre-Order, Habis), and promotional labels.
Product Categories
Structured category browsing (Makanan Berat, Minuman, Snack, Dessert) combined with keyword search and minimum/maximum price filters.
Seller Profiles
Dedicated student seller identities linked to verified 10-digit NISN records, displaying store name, class/major, and real-time store Open/Closed status.
Product Management
Seller workspace (`/penjual`) to submit new products, stage edits or deletion requests, monitor view and WhatsApp click counts, and download PDF/Excel reports.
Admin Moderation
School Admin panel (`/admin`) with side-by-side review of staged product edits (`pending_changes`), seller onboarding, and automated guest review profanity filtering.
WhatsApp Contact Integration
Direct-to-WhatsApp handoff (`GET /produk/{slug}/whatsapp`) that logs promotional click interest before opening `wa.me` with a pre-formatted order message.
Mobile Companion App Integration (In Progress)
Connecting a cross-platform mobile companion app to the existing Laravel Sanctum `/api/v1` endpoints so students can browse the catalog and manage seller status from an installable mobile client.
Time-Range Promotional Analytics
Expanding seller dashboard charts with weekly and monthly comparisons of product page views versus WhatsApp order clicks.
Visual system, design tokens, and component principles.
The interface was designed around an approachable, tactile visual language suited for a school canteen and student entrepreneurship directory while keeping product information easy to scan. The diagrams below document the actual design tokens and component rules used in SiswaMart without relying on browser screenshots.
Friendly, rounded character for headings and product prices.
Clean geometric legibility for descriptions, tables, and forms.
Button & Status Badge Hierarchy
Interactive controls in SiswaMart use solid structural outlines and immediate hover/press offset feedback so students on mobile or desktop always know which action is primary.
Top badges immediately answer whether the item is Ready Stock or Pre-Order and whether the student seller's store is currently Open (`Buka`).
Consistent aspect-ratio product framing paired with a category tag (`Makanan Berat`, `Minuman`, `Snack`, `Dessert`) keeps multi-row grids aligned.
High-contrast Rupiah pricing and verified student store attribution help buyers compare options within seconds during school break times.
Each card concludes with a clear action that logs promotional interest and opens WhatsApp—avoiding multi-step cart modals.
Six-stage editorial engineering timeline.
Built with Laravel, PHP 8.3, Blade components, Tailwind CSS v4, Alpine.js, and MySQL, with backend workflows tailored to school governance and shared-hosting deployment.
Planning
Analyzed how student sellers at SMKN 11 Bandung promote products daily and defined a promotional catalog model instead of a complex payment gateway.
- →Role boundaries: Public Buyer, Student Seller (/penjual), School Admin (/admin)
- →Relational MySQL schema for users, penjual, kategori, produk, ulasan, and produk_views_logs
- →Direct-to-WhatsApp order handoff specification (ADR-001)
UI/UX Design
Established the tactile design system, evolving from an early warm orange concept into a structured slate-blue and warm-gold palette with clear status badges.
- →Color token hierarchy (#3F6A96 primary, #1F3550 ink border, #F2B84B accent)
- →Typography scale pairing Fredoka display headings with Plus Jakarta Sans body copy
- →Product card anatomy prioritizing stock status, store availability, price, and WhatsApp CTA
Frontend Implementation
Translated the design system into modular Laravel Blade views, Tailwind CSS v4 utility tokens, and lightweight Alpine.js interactive states.
- →Responsive public catalog grid, category filter pills, and price range search
- →Seller product management table with status tabs (Aktif, Menunggu Moderasi, Ditolak)
- →Admin side-by-side product diff viewer and seller onboarding forms
Backend Development
Built role-protected controllers, curated 10-digit NISN seller onboarding, and the two-stage product edit moderation workflow.
- →Two-Stage Product Edit Moderation via pending_action and pending_changes (JSON)
- →Curated student seller registration with 10-digit NISN validation
- →Laravel Breeze session auth + Laravel Socialite Google OAuth matching
Feature Integration
Connected WhatsApp redirection tracking, automated guest review profanity filtering, and dependency-free PDF/Excel report exports.
- →Direct-to-WhatsApp click tracker (GET /produk/{slug}/whatsapp)
- →CommentModerationService with leetspeak normalization and dictionary filtering
- →DomPDF A4 summaries and custom OpenXML XlsxWriter multi-sheet exports
Testing & Refinement
Verified role middleware boundaries, applied rate limiting on public endpoints, and prepared Laravel Sanctum REST API routes for mobile companion expansion.
- →Rate throttling on product views, WhatsApp redirects, and guest review submissions
- →Shared-hosting deployment optimization and storage symlink verification
- →REST API (/api/v1) readiness for ongoing mobile companion integration
Verified repository stack & architectural layers.
Every technology below is verified directly against the SiswaMart codebase—organized by its exact role in the application rather than decorative icon grids.
Backend & Database
Role-based web routing, Eloquent ORM models, two-stage product edit moderation, and relational database architecture.
Frontend & UI
Server-rendered Blade templates, custom CSS design tokens, and lightweight client-side interactivity.
Authentication & API
Curated school session authentication, Google OAuth email matching, and token-based REST API endpoints (`/api/v1`).
Reporting & Utilities
Printable A4 Landscape PDF summaries and dependency-free multi-sheet `.xlsx` spreadsheet generation with formula-injection protection.
What I learned designing and building SiswaMart.
Building SiswaMart taught me how to align interface design and backend rules with the way students and teachers actually interact at school.
The most interesting backend challenge was designing Two-Stage Product Edit Moderation (`pending_action` and `pending_changes` JSON) so student sellers could edit prices or descriptions without hiding their currently approved product from the public catalog while waiting for admin review.
Choosing a login-free public catalog paired with a Direct-to-WhatsApp button removed unnecessary account creation and payment gateway friction, matching how students naturally coordinate COD pickup at school.
Working across the full Laravel stack—from MySQL migrations and Eloquent relationships to reusable Blade components and custom OpenXML `.xlsx` generation—strengthened my ability to connect UI clarity with reliable server-side rules.
In future iterations, I plan to complete the mobile companion client powered by the `/api/v1` Sanctum endpoints and add date-range filtering to the seller promotional analytics dashboard.
Designing around real habits: Using a Direct-to-WhatsApp promotional flow instead of a complex checkout kept the platform practical and familiar for daily school transactions.
Staged moderation without downtime: Implementing Two-Stage Product Edit Moderation (`pending_changes` and `pending_action`) showed me how to maintain admin oversight without hiding a seller's active listing every time they update a price or description.
Cohesive UI across roles: Translating color, border, and typography tokens into reusable Blade components helped keep the public catalog, seller dashboard, and admin workspace visually consistent.