Owns the Express server, SQLite schema, JWT auth flow, and the Socket.IO order-update pipeline that drives the live tracker.
We're students who built something real.
Bloom is a capstone project by BSIT students at STI College Lipa. It is a working floral commerce platform with real authentication, a real order pipeline, a real admin dashboard, and a real-time tracker built on Socket.IO. We treated this like a product instead of a slide deck.
Who actually built this
Four people, one academic term, one git history that proves the work is ours.
Designs the visual system, motion, and dark/light themes. Owns the bp-* primitives, accessibility audits, and the bouquet renderer styling.
Owns the 17 Express route modules, the order state machine, parameterized queries, rate limiting, and CSRF coverage on every mutating endpoint.
Drives Playwright coverage, writes the technical documentation, and runs accessibility checks against WCAG 2.1 AA targets.
Three rules we built around
A real product surface, not a mockup
The repository ships fifteen public pages, seventeen Express route modules, six SQLite models, four service layers, and a build pipeline that generates dynamic pages from a single index template. The whole system runs on Node 20 with better-sqlite3, Socket.IO, Helmet, JWT, and esbuild.
- JWT authentication with bcrypt password hashing and CSRF protection on mutating routes
- Real-time order status broadcast over Socket.IO rooms scoped per customer
- 3D bouquet customizer with persistent saved configurations
- Admin dashboard with order management, inventory, and analytics
- Service worker for offline-friendly catalog browsing
- Playwright end-to-end coverage and an ESLint configuration that actually runs
Bloom is an academic technical demonstration for STI College Lipa BSIT. No physical flowers are shipped and logistics are simulated. The platform exists to demonstrate full-stack engineering, real-time systems, and accessible product design. It is not a commercial business.