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.


































