I’ve been looking for ideas to create a full-stack web application without much luck. Some ideas lead me to be better off using website builders such as Shopify for E-commerce that doesn’t feel as beneficial as an experience for the route I’m trying to go with by learning the MERN stack.
A recent trend lately has been me assisting my friend in finding her newest obsession in these animal plushies from this brand called Squishmallow. A large reason for my need of assistance is the crazy markup prices these go for in the aftermarket. These stuffed animals will go from 3 times to over 5 times their retail price. The most common place for these marked up listings comes from a website called Mercari.
An idea came to me that seemed like an easy solution at least conceptually to both my idea problem and the Squishmallow community’s problems. A marketplace that moderated and restricted user listings for Squishmallow to keep them at their retail price. My idea for the minimum viable product for this project was a marketplace that facilitates communication between people looking to sell or trade plushies at their retail price.
I will emphasize the reason that this idea correlates with my earlier points of not wanting to use Shopify for E-commerce is due to its idea to only allow listings to be discovered and connecting users. It is not bringing any transactions between users with Stripe or Shopify.
This in my opinion is enough to separate this project from the abundance of Yelp clones like the ones taught by Colt Steele in his Web Development Bootcamp, and provides enough technical changes and requirements to force me to pick up new skills and learn along the way.
A new approach in this project to how I usually work is the amount of planning I will be doing before touching any code, this is done on purpose to recreate a work environment.
And so, the first thing I will be planning is models. The shape of the objects I will be storing in a database and serving to my React frontend later on.
The first and most obvious will of course be the user’s schema which will consist of an id, username, password, email, an array of listings and some timestamps to know when they last logged in and joined the website.
Now for the listing’s schema we will need an id, title, description, price, tags, and once again timestamps for when they were created and last updated.
Lastly I decided to bring in tags to help provide an easier way for users to search through listings. They won’t need anything special though, and may not even warrant a collection in the database, but I still decided to add them as one.