/Athena

Primary LanguageJavaScript

🚀 Welcome to Athena - A shopping website application!

Front End Project

Tech Stack

react

React

  • In order to implement a responsive, single-page application capable of dynamically rendering with third-party API data, we utilized React Context and Hooks.

node

Nodejs

  • Despite being a front-end capstone that explicitly placed back-end implementation out of scope, used Nodejs to utilize Express.

express

Express

  • Simplified API requests by implementing a proxy server in Express.js that adds authentication while forwarding requests to an existing RESTful API.

css

CSS

  • Aside from being the sole technology used for the aesthetic styling of this application:
    • All styling, including functional implementations like the modals and image gallery, were written solely with CSS.
    • The use of Grid made the overlay button functionality and precise placement of static assets accessible and simple.
    • Flexbox was instrumental in handling the wealth of dynamic data being delivered to the page.

jest

Jest

  • Each of the 4 contributors took independent ownership over the development of each module present in the application, which introduced the need for rigorous, automated testing.
  • React Testing Library kept our efforts and tests focused on the user experience while making it possible to test the vast amount of interactions and dynamic components in our application.

Webpack

Webpack

  • Webpack was our solution to elegantly handle our numerous static assets, implement JSX, and harness ES6 in this project.

Demo

app demo

Set up Instructions

How to host this single page application on your local machine.

  1. Make sure you've pulled the version you want to run (see Git Workflow)

  2. Make a copy of the file server/config/config.example.js and rename to config.js

  3. Assign the API_KEY variable to your GitHub token

  4. Install dependencies

    npm install
  5. In one terminal, build the webpack bundle

    npm run watch
  6. In another terminal, start the server

    npm start
  7. Visit localhost:3000 in the browser


App Components

The application has 3 main component:

Overview

Developed by Logan Qiu

  • Gallery

  • Product Information image

  • Product Description image

Related Items

Developed by Sheri Tsao

  • Related List
  • Outfit List image

Ratings & Reviews

Developed by Ran An

  • Rating Summary
  • Review List image