Skip to content

funfordima/book-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

  1. Screenshot:
  2. Deploy: https://funfordima.github.io/book-store/build/
  3. Done 29.03.2021

Objectives

  • Create a JS Band Store application. Which includes next functionality:
  • User can log in with username;
  • Browse books catalog;
  • Search book by title;
  • Filter book by price (dropdown options: 0 < price < 25, 25 < price < 50, price > 50);
  • Browse specific book details;
  • Add a specific book to cart;
  • Browse Cart with added books;
  • Make a purchase of added books;
  • For task implementation you must use:
    • React, Redux
    • Functional React components;
    • Create React App as a boilerplate;
    • eslint-config-airbnb config for ESLint;
    • Github pages;
    • Github project.
  • You should cover your code with unit tests. For testing, you should use Jest;
  • For running eslint and test you should use pre-commit hooks;
  • Yours web-application fields validation should be based on Validation provided in the Arch notes section;
  • Yours web-application should be based on Wireframes provided in the Arch notes section;

Scenarios

  • User goes to the JS Band store website;
  • If User unauthorized System redirects the user to the Login page (That's the only page available for unauthorized user);
  • User login with username, System return user token (API provide token), redirects User to the Book catalog and store token in LocalStorage and Application State;
  • User see the list of books (provided by Api); Search by book name, filter list by the price;
  • User navigate to the specific Book details clicking on View button;
  • User choose the needed count of books, sees the total price, and adds the book to the cart. Then User can navigate back to the catalog or go forward to the Cart;
  • User goes to the Cart, see order list and press 'Purchase' button;
  • System place order, show a modal window with ordered items and successful message, and clear the cart;
  • Then User sign out, System redirects the User to the Login screen.

Acceptance criteria

  • All listed functionality should be provided and work;
  • React should be used for task implementation;
  • Redux should be used as a state management ;
  • Only own created components should be used (you may use only styles from 3rd party libraries such as Bootstrap, etc...);
  • Only functional react components should be used;
  • Components should be placed in separated files (don't forget about modularity);
  • Code should be linted with eslint-config-airbnb;
  • Other routes should be unavailable and respond with not found UI;
  • Only /login and /not-found routes should be available for the unauthorized user, another else should be restricted;
  • Pull requests mechanism should be used for making changes into the repository;
  • The project should be deployed to the GitHub pages;
  • Tasks should be decomposed and defined in Github project board (at least 7 tasks);
  • Usage documentation should be provided;
  • Test coverage should be at least 50%;
  • Use Husky for pre-commit hooks and add linting and testing on pre-commit;

Project setup

  1. Install Node.js
  2. Fork this repository: book-store
  3. Clone your newly created repo: https://github.com/<%your_github_username%>/book-store/
  4. Go to folder book-store
  5. To install all dependencies use npm install
  6. To start app use npm run build (production mode) or npm run start (development mode)

About

JS Band Store is an application where user can select a book and buy it.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published