PROJECT · 2023

OFFIQ.

An office-equipment store built end to end: storefront, payments, and an admin panel that actually runs the business.

OFFIQ: screenshot
ROLE
Solo · full stack
STACK
Node.js · MongoDB · EJS · Alpine.js
TIME
4 weeks
STATUS
Live · demo data
overview

OFFIQ is a feature-rich e-commerce platform for office equipment, built without a framework doing the heavy lifting, using Node.js, MongoDB, EJS, Tailwind and Alpine.js, hosted on AWS EC2. It serves both sides of the transaction: customers get browsing, wishlists, a wallet and secure checkout; admins get stock control, graphical sales insight and downloadable reports.

the problem

Building a real store means the boring parts are the hard parts: refunds, coupons, invoices, stock going negative, a payment that half-succeeds. I wanted to build every one of those myself rather than let a platform hide them.

approach
  1. Wrote the storefront in EJS with Tailwind and Alpine.js, server-rendered, no SPA overhead.
  2. Integrated Razorpay for payments and Google Auth for login.
  3. Built a wallet ledger so refunds land somewhere instead of vanishing.
  4. Gave admins graphical sales insight plus PDF/Excel report export.
  5. Deployed to AWS EC2 and kept it running.
what it does
  • ✓ User authentication and authorization
  • ✓ Category-based product browsing with filters and sorting
  • ✓ Secure payments via Razorpay integration
  • ✓ Google Authentication for user login
  • ✓ Admin panel with graphical insights and stock management
  • ✓ Wallet system for refunds and balance tracking
  • ✓ Coupon management for discounts
  • ✓ Wishlist for saving favourite products
  • ✓ Invoice generation and sales reports (PDF / Excel)
process shots
v.1
v.2
v.3
v.4
outcome

My first real step into web development, built to learn e-commerce rather than to sell anything: the storefront is live but runs on demo data. Working through payments, refunds, coupons, stock and invoicing end to end taught me what an e-commerce system actually has to handle underneath the product grid.