This is a solution to the Audiophile e-commerce website challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic projects.
Users should be able to:
- View the optimal layout for the app depending on their device's screen size
- See hover states for all interactive elements on the page
- Add/Remove products from the cart
- Edit product quantities in the cart
- Fill in all fields in the checkout
- Receive form validations if fields are missed or incorrect during checkout
- See correct checkout totals depending on the products in the cart
- Shipping always adds $50 to the order
- VAT is calculated as 20% of the product total, excluding shipping
- See an order confirmation modal after checking out with an order summary
- Bonus: Keep track of what's in the cart, even after refreshing the browser (
localStoragecould be used for this if you're not building out a full-stack app)
- Solution URL
- Download Node.js
- Download pnpm
- Clone the repo
- Run
pnpm installto install dependencies - Run
pnpm devto start the development server - Open http://localhost:3000 with your browser to see the result.
- React - JS library
- Next.js - React framework
- Typescript - For type checking
- [Tailwind] (https://tailwindcss.com/) - For page styles
- SCSS custom properties for ui components
- [classnames] (https://www.npmjs.com/package/classnames) for conditional styling
- [aos] (https://michalsnik.github.io/aos/) for animations
- [Zustand] (https://docs.pmnd.rs/zustand/) - For cart state management
- [Formik] (https://formik.org/) - For checkout form management
- [Zod] (https://zod.dev/) - For validation
- LinkedIn - Donato Di Zenzo
- Frontend Mentor - @dodiz
