Skip to content
This repository has been archived by the owner on Jun 5, 2023. It is now read-only.

vinhvn/shopify-frontend-challenge-w22

Repository files navigation

Presenting Spacestagram, image-sharing from the final frontier.

🔍 Preview

📱 Mobile

Mobile Preview

💻 Desktop

Desktop Preview

📚 Table of Contents

🚀 Features

The user may:

  • Load 5 photos at a time
  • Save liked photos to local storage
  • Search for a specific photo by date
  • View saved photos
  • Double click a photo to like/unlike the photo
  • Click on the heart icon to like/unlike a photo
  • Click on the link icon to go to the direct search page
  • Click on the outgoing icon to get the high definition photo
  • Animations have been added to improve the user experience
    • Loading photos
    • Liking a post
    • And more

🔧 Getting Started

You can clone this repository by using the command line:

git clone https://github.com/vinhvn/shopify-frontend-challenge-w22 app
cd app
yarn # npm i

Remember to install dependencies after cloning it locally.

Run Development Environment

yarn dev # npm run dev

Build for Production

yarn build # npm run build

🎨 Design

All designs, including a design system, were created prior to any development, with a mobile first approach, and are available on Figma.

👩‍💻 Technologies and Libraries Used

  • React
  • TypeScript
  • Date-fns
  • Styled Components
  • Twin.macro
  • Jest
  • NASA's APOD API

Bootstrapped with my Next.js template.

♿ Accessibility

This web application has a mobile design first principle and is fully responsive on mobile. It also has an accessibility score of 100 according to Google lighthouse. This was achieved using semantic elements and aria labels using a11yproject's checklist.

🧪 Testing

Unit tests have been written for all components using Jest. You can run all tests in watch mode by using the command line:

yarn test # npm run test

Alternatively, generate coverage by using the following:

yarn test:coverage # npm run test:coverage

📝 Notes

All components were developed from scratch and implemented based on the design system created for this challenge.