惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
U
Unit 42
MyScale Blog
MyScale Blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
量子位
IT之家
IT之家
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
Recent Announcements
Recent Announcements
V
Visual Studio Blog
G
Google Developers Blog
Last Week in AI
Last Week in AI
雷峰网
雷峰网
博客园 - 聂微东
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
博客园 - 司徒正美
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Finishing the e-commerce app I abandoned in 2023
Meer Hashaam Khan · 2026-05-30 · via DEV Community
Cover image for Finishing the e-commerce app I abandoned in 2023

Meer Hashaam Khan

GitHub “Finish-Up-A-Thon” Challenge Submission

This is a submission for the GitHub Finish-Up-A-Thon Challenge

What I Built

GlowStore — a full-stack MERN e-commerce store (React + Redux + Express + MongoDB).

Back in 2023 I built this as my university Web Engineering final project. I ran
out of time, handed in what I had, and never touched it again. When I reopened
it for this challenge I found something funny: the backend was basically
finished
— JWT auth, products, orders, reviews, search — but the React
frontend never actually talked to it.
It was a good-looking shell with fake
logic bolted on. So "finishing it" meant connecting the two halves and making it
a real store you can actually shop in.

Repo: https://github.com/hashaam-011/Web-Engineering

Demo

Before — the entire app was just a fake login screen. Typing anything (or
nothing) and clicking "Log in" flipped a boolean and "logged you in":

After — a working storefront with products from the database:

A real product detail page (was literally <h1>DetailsPages</h1> before):

You can run it yourself in two terminals (no database setup needed — it boots an
in-memory MongoDB and seeds itself):

cd backend && npm install && npm start   # http://localhost:4000
npm install && npm start                 # http://localhost:3000

Demo login: user@example.com / 123456 — or register a new account.

The Comeback Story

Here's what the project looked like before, and what I changed:

Before After
Login dispatched a boolean and ignored your credentials Real login/register against the API with JWT + bcrypt
Frontend never called the backend (no axios anywhere) Axios client with token injection; products load from MongoDB
Product details page was <h1>DetailsPages</h1> and wasn't routed Full details page (image, price, stock, rating) routed by slug
Cart was local-only; "checkout" button did nothing Persistent cart → checkout → real order placed and saved
Backend had a reviews endpoint the UI never used Product reviews: read them and post your own with a star rating
Only 3 routes; most of the app was unreachable Home, login, register, details, account, checkout, orders
Typos baked in (Regsiter, isLoggIn), console.log in render, logo linked to a random site Cleaned up, renamed, fixed scroll/header bugs
A live MongoDB password was committed in .env Removed from tracking, .env.example added

I tracked the whole revival in 30 small commits so the before → after journey
is visible in the history, from "stop tracking node_modules" to "add the orders
page."

My Experience with AI-Assisted Development

I leaned on AI assistance heavily to finish this. The most useful parts:

  • Mapping the gap fast. The first win was having the codebase read end-to-end and getting a precise list of what worked vs. what was fake — that turned a vague "it's unfinished" into a concrete checklist.
  • Wiring the integration layer. Generating the axios client, the Redux thunks for login/register, and the product/cart/order slices was where it saved the most time — lots of boilerplate that's easy to get subtly wrong.
  • Filling the missing pages. The checkout form, order summary math (items + shipping + tax), and the orders history page came together quickly.
  • Unblocking the environment. Docker wouldn't start on my machine, so instead of stalling I switched the backend to an in-memory MongoDB with auto-seeding — now anyone can clone and run it with zero setup.

The thing I'd tell other people reviving an old project: don't start by writing
code. Start by getting an honest map of what's actually there. Half of "finishing"
turned out to be deleting fake logic, not adding new features.