Case Study.
OFFIQ.
An office-equipment store built end to end: storefront, payments, and an admin panel that actually runs the business.
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.
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.
- Wrote the storefront in EJS with Tailwind and Alpine.js, server-rendered, no SPA overhead.
- Integrated Razorpay for payments and Google Auth for login.
- Built a wallet ledger so refunds land somewhere instead of vanishing.
- Gave admins graphical sales insight plus PDF/Excel report export.
- Deployed to AWS EC2 and kept it running.
- ✓ 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)
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.