Giter Club home page Giter Club logo

reaktor-assignment's Introduction

Warehouse App

Project assigment for Reaktor's junior position.
Open app on Heroku »

Table of Contents

About The Project

A responsive frontend React web application. Instructions for the assignment can be found at https://www.reaktor.com/junior-dev-assignment/

List Of Features

  • Three categories of products to display: gloves, facemasks and beanies.
  • List of products can be viewed with an infinitely scrolling page. Enjoy thousands of products!

Built With

Getting Started

Installation

After cloning or downloading the project, install the dependencies with npm install.

Running

Start the project on localhost port 3000 with npm run dev.
Build and serve the project on localhost port 5000 with npm run bns.

Usage

Click a category on the navigation bar on the left side to view a product list.

Major Components

Use Init Data

App component uses the useInitData-hook to initialize data. Categories are stored in config.ts from which the category slice of Redux state gets its initial state. Once all the products are stored and an useEffect fires, the hook finds all different manufacturers and stores those in the state. Tracking those with another useEffect, the hook then sends a dispatch to get their availability/stock data from another api endpoint.

Products Reducer

Products reducer has two async actions, one for fetching products by category and one for fetching availability by manufacturer.

Once the GetProducts function gets a response, it maps all the returned products so that their availability status is set to loading.

The GetAvailability function runs until it gets a valid response from the api and proceeds turning that data into a record with product ids as keys and Availability enums as values before sending a dispatch to store it.

Roadmap

  • Add a search and filters to find specific products.
  • Endless scroll hook could use some cleaning up.

Contact

[email protected]

Acknowledgements

reaktor-assignment's People

Contributors

marimetsola avatar

Watchers

James Cloos avatar  avatar

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.