Giter VIP home page Giter VIP logo

p-react-challenge's Introduction

Welcome to the Pinkaloo Stack Showdown code challenge. This project was bootstrapped with Create React App.

This project uses Redux (https://redux.js.org) to manage the application state. The applicable reducers, actions, and selectors can be found in src/modules/index.js.

Rules

The file src/modules/mock_data.json itself should not be modified. Consider this to be immutable data coming from an API.

Tasks

  • Run the app using yarn start
  • Replace placeholder values in CampaignDetails component
    • Display total dollar amount of contributions for the campaign
    • Provide the campaign's goal progress to ProgressBar
  • Replace placeholder values in CampaignContributions component
    • Display the associated user avatar
    • Display the associated user name. Show both first_name and last_name if available
  • Sort campaign contributions by date. Newest contributions should display at the top
  • Add the ability to contribute to the selected campaign using the DonateForm component
    • Create an addContribution function in modules that accepts accepts amount and campaignId as input parameters and returns a redux action
    • Handle the created redux action in the app reducer and generate a full contribution using the amount and campaignId.
      • Example Contribution (all attributes required): { "id": 49, "amount": 12.51, "campaignId": "elastic", "date": "2019-08-15T03:00:00.000Z", "userId": 17 }
      • id should be auto-incremented using (contributions.length + 1), date should be the current datetime JSON formatted, userId should be derived from session.user.id.
      • The newly generated contribution should be appended to state.transactions in the action reducer
    • Decrease the user's available balance after successfully contributing
    • Show validation error in DonateForm component if user does not have the required funds to contribute
  • Prevent ProgressBar component from visually overflowing when progress > 1.0
  • Sort campaigns in CampaignNavigation by goal progress (total contributions / goal)
  • Resolve any generated warnings from Webpack & React that are displayed in the browser console

Extras

  • Optimize data lookup (e.g memoize selectors or restructure redux state)
  • Add your own feature to Stack Showdown!

Submitting

Via GitHub:

Via Email:

  • Remove the node_modules directory and send a .zip of the project directory to [email protected]

Available Scripts

In the project directory, you can run:

yarn start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

yarn test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

Learn More

You can learn more in the Create React App documentation.

To learn React, check out the React documentation.

p-react-challenge's People

Contributors

auginator avatar davisml avatar

Watchers

 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.