I have always loved being creative, finding hobbies in painting, sketching, and graphic design. Similarly, I am very interested in full-stack development and web design. This project serves to combine both of my interests in the form of an e-commerce shop.
Uzmas.Art.Shop.Demo.mp4
- 'Add to cart functionality' with Stripe checkout
- 'Add to favourites' functionality - can be saved to account if signed in or within session otherwise
- Paintings page with ability to add to cart, 'like', filter based on category/price, and click on any given painting for more info
- Individual painting page that shows corresponding category, buttons to add to cart/favourites, and reviews for that product
- User can only add a review when they are signed in
- Users can edit/delete their own reviews
- Commission request form for users to send me emails
- Autocomplete search bar with search results page (once you click on the search icon)
- Sign in functionality and favourites list on account page
- Used React.js, Next.js, and Styled-Components for building the front-end of the application with improved server side rendering
- Stored users, paintings, categories, orders, favourites, and reviews info in MongoDB using Mongoose and HTTP requests
- NextAuth.js with Google Provider to sign users in
- Used MongoDB adapter to store data about users, accounts, sessions, etc.
- EmailJS for sending commission request emails with my specified template
- Leveraged React Toastify library for displaying success and failure alerts to user
- Implemented filter options on painting page using React-Select library