An open API service indexing awesome lists of open source software.

https://github.com/denispianelli/audiophile-ecommerce-website

Frontend Mentor challenge
https://github.com/denispianelli/audiophile-ecommerce-website

frontend-mentor guru nextjs

Last synced: 2 months ago
JSON representation

Frontend Mentor challenge

Awesome Lists containing this project

README

        

# Frontend Mentor - Audiophile e-commerce website solution

This is a solution to the [Audiophile e-commerce website challenge on Frontend Mentor](https://www.frontendmentor.io/challenges/audiophile-ecommerce-website-C8cuSd_wx). Frontend Mentor challenges help you improve your coding skills by building realistic projects.

## Table of contents

- [Frontend Mentor - Audiophile e-commerce website solution](#frontend-mentor---audiophile-e-commerce-website-solution)
- [Table of contents](#table-of-contents)
- [Overview](#overview)
- [The challenge](#the-challenge)
- [Screenshots](#screenshots)
- [Desktop](#desktop)
- [Tablet](#tablet)
- [Smartphone](#smartphone)
- [Link](#link)
- [My process](#my-process)
- [Built with](#built-with)
- [Author](#author)

## Overview

### The challenge

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 (`localStorage` could be used for this if you're not building out a full-stack app)

### Screenshots

#### Desktop

![Desktop screenshot](./public/screenshots/desktop-screenshot.png)

#### Tablet

![Tablet screenshot](./public/screenshots/tablet-screenshot.png)

#### Smartphone

![Smartphone screenshot](./public/screenshots/smartphone-screenshot.png)

### Link

- Live Site URL: [https://nextjs-audiophile-ecommerce-website.vercel.app/](https://nextjs-audiophile-ecommerce-website.vercel.app/)

## My process

### Built with

- Semantic HTML5 markup
- CSS custom properties
- Flexbox
- CSS Grid
- Mobile-first workflow
- [React](https://reactjs.org/) - JS library
- [Next.js](https://nextjs.org/) - React framework
- [Tailwind CSS](https://tailwindcss.com/) - For styles
- [Shadcn/ui](https://ui.shadcn.com/) - Component library
- [Prisma](https://www.prisma.io/) - TypeScript ORM
- [Auth.js](https://authjs.dev/) - For authentication

## Author

- Website - [Denis Pianelli](https://www.denispianelli.dev/)
- LinkedIn - [denis-pianelli](https://www.linkedin.com/in/denis-pianelli/)