Inspiration
I wanted to challenge myself by building a highly flexible, multi-role e-commerce marketplace from scratch. Coming from a non-traditional programming background, my goal was to create a platform where a single user profile could seamlessly switch roles allowing someone to act as a buyer, a seller, or an administrator all under one unified email account.
What it does
FabShop is a responsive full-stack marketplace focused on user roles: Unified Accounts: Users can manage everything from one profile. A single email can handle admin actions, manage a seller dashboard, or buy products. Admin Controls: Administrators can track backend operations and oversee interactions between buyers and sellers to keep the marketplace healthy. Smart Dispute Prevention: Standard order completions don't require media uploads. However, if a user requests a refund or return, our system enforces a strict workflow requiring a clear explanation, 2 to 4 photos, and an unboxing video to fully validate the request.
How we built it
The web application is built on a JavaScript and Node.js environment. The responsive front-end handles both Light and Dark themes dynamically using standard HTML5, CSS variables (style.css), and localized script files (script.js).The server is powered by server.js and Node packages, keeping database secrets protected via a .env file. All relational tables and product schemas are structured directly using SQL on a Supabase database instance.
The Supabase Connection Issue
During development, I hit a frustrating bottleneck: my products in the remote Supabase database weren't loading, and the UI only rendered the 6 local placeholder images. After debugging the connection parameters with the desktop AI agent, I discovered the system had a strict 4-second timeout limit.The app was cutting off the request before the remote server could finish responding. Increasing this timeout fixed the bug instantly, and now the entire live inventory syncs perfectly with 16 products.
Challenges faced
As a beginner, managing asynchronous backend requests and structuring clean relational SQL tables was a steep learning curve. Figuring out server routing and diagnosing the database timeout under tight deadlines pushed me to learn a lot about backend debugging.
Accomplishments I'm proud of
I am incredibly proud of successfully troubleshooting complex network connection bugs to deliver a working, multi-role marketplace prototype with database synchronization.
What I learned
I learned how to design relational database schemas using SQL, how to manage server timeouts for reliable API communication, and how to effectively collaborate with AI tools to systematically solve backend bugs.
What's next
I plan to add automated tools to the admin dispute resolution panel and integrate an active payment gateway to turn this local prototype into a live marketplace.
Log in or sign up for Devpost to join the conversation.