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.




Top comments (0)