Git Product home page Git Product logo

folathecoder / audiophile Goto Github PK

View Code? Open in Web Editor NEW
32.0 2.0 10.0 12.82 MB

An online store built with React, Next.js, Redux Toolkit, Styled Components, Heroku-Hosted API, React Hook Forms, and TypeScript ๐Ÿฑโ€๐Ÿ๐Ÿคž

Home Page: https://audiophilic.vercel.app/

JavaScript 0.03% TypeScript 99.97%
nextjs react redux-toolkit redux styled-components heroku vercel typescript react-hook-form yup-validation toastify schema-org

audiophile's Introduction

Audiophile eCommerce Web Application

Audiophile is a online store that sells luxury and branded audio gadgets ranging from earphones, speakers, to headsets. The main aim of this web application is to present the products in the most user-friendly format and keeping accessibility in mind.

Tech Stack

Frontend Stack: React, Next JS, & TypeScript

React Libraries: Styled Components, Redux, Redux Toolkit, React HookForm, Yup Validation, React Toastify, & Axios

Deployment: Heroku, Netlify, & Vercel

Tools: Google Rich Results Test, Schema Generator, PhotoShop, Canva, Lighthouse, GT Metrix, FireFox Developer Tools, Trello, Git, Redux DevTools, WAVE Accessibility Tool, & VS Code Editor

Run Locally

Run this application into your local environment by forking the repository and enter the following commands in your local terminal

Clone the project

  git clone https://github.com/folathecoder/audiophile.git

Go to the project directory

  cd audiophile

Install dependencies

  npm install

Start the server

  npm run dev

Screenshot

Audiophile website overview

SEO

Schema markup were dynamically rendered on all product pages using a function that takes in the product data as an argument and returns a customized JSON-LD.

  helpers/schemaGenerator.ts
  export const productSchemaGenerator = (product): object => {
  const productName = convertToUpperCase(product.name);

  return {
    "@context": "https://schema.org/",
    "@type": "Product",
    name: `${productName}`,
    image: `https://audiophilic.vercel.app/${product.image.desktop}`,
    description: `${product.description}`,
    brand: "Audiophile",
    sku: `${product.id}`,
    offers: {
      "@type": "Offer",
      url: `https://audiophilic.vercel.app/product/${product.slug}`,
      priceCurrency: "USD",
      price: `${product.price}`,
      priceValidUntil: "2023-08-02",
      availability: "https://schema.org/InStock",
      itemCondition: "https://schema.org/NewCondition",
    },
  };
};

This function is called before products are pre-rendered at build time.

Results of Schema markup implementation

Audiophile website overview

Audiophile website overview

Lessons Learned

This project is one of frontendmentor.io's GURU challenges. I have been taking up challenges on their platform for almost a year, since I started my coding journey, and I remember looking at this particular project, wondering when I will be skilled enough to execute it. Well! Now I know! ๐Ÿ˜Ž

This project is by far one of the hardest projects I have ever executed. It was both challenging and full of learning/unlearning of new TypeScript, React & Next JS concepts.

๐Ÿ”— Social Links

portfolio

linkedin

twitter

Authors

audiophile's People

Contributors

folathecoder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

audiophile's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.