Mini Amazon
During a course studying Database Systems, I worked with a small group of peers to construct a fully-functional database-driven website implementing the functionality of an online marketplace, hence the name "Mini Amazon." This website was created using Flask in Python and SQL for interaction with the database. A database schema was generated to model all of the information required for the intended functionalities of the website. Input fields were protected against SQL injection for added website security. The data that populates the database in the video below was generated individually for each category in the database schema in order to have relevant sample data. For example, prices were generated as a random value between $0 and $1000, photos were chosen randomly from a small selection of sample images, and names were generated randomly utilizing a name generator package.
The website allows users to create accounts and log in, hashing passwords for security, then both buy or sell products via a product search or inventory management features, respectively. Detailed product logs including price, quantity purchased, and date purchased among other information is accessible on a user's profile page, and equivalent information regarding product sales for users who also sell products is available as well. A comprehensive product search allows for filtering by various product metrics, such as price, rating, or category, and allows for sorting of search results by these same metrics. Products can be purchased directly from the product page, accessible from the search feature, or added to the cart, where a product's quantity can be edited and then purchased. All sellers that are selling a given product can be seen in a product's page, where information such as individual price and rating can be compared. A detailed order log is provided upon any purchase. Feedback and ratings can be given to any product or seller, then later updated or removed if the user wishes.
Below is a demonstration of the website, showcasing many of its features. There are still a couple of small bugs in the website demonstrated below, but the website as a whole functions as intended. As can clearly been seen by the video below, our team focused more on successfully implementing functionality in the back end rather than aesthetically developing the front end.