The Bookstore is an app that displays a list of books and allows you to add and remove books from that list. Built with HTML, CSS, JavaScript, and React.

  • By Roberto Andres Condezo Monge
  • Last update: Mar 12, 2022
  • Comments: 4

Bookstore

The Bookstore is an app that displays a list of books and allows you to add and remove books from that list.

screenshot

Built With

- Major languages:

  • JavaScript
  • HTML
  • CSS

- Frameworks used:

  • React

- Technologies used:

  • npm
  • Webpack

Learning objectives

  • Understand the concept of state management.
  • Use store, actions and reducers in React.
  • Connect React and Redux.
  • Connect an existing API via Redux and use the data to display something in a UI.

Live Demo

Bookstore Live Demo Link

Getting Started

  • In order to see the app in your browser you must click on the link "Live Demo"

  • To get a local copy up and running follow these simple example steps:

Prerequisites

  • Node
  • npm

Setup

  • Clone the repository and install the dependencies:

$ git clone https://github.com/andres-condezo/bookstore.git

$ cd bookstore

$ npm Install


Available Scripts

In the project directory, you can run:

$ npm start

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

The page will reload when you make changes.
You may also see any lint errors in the console.

$ npm test

Launches the test runner in the interactive watch mode.\

$ npm run build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

$ npm run eject

Note: this is a one-way operation. Once you eject, you can't go back!

If you aren't satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.

Authors

👤 Andrés Condezo Monge

🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

Show your support

Give a ⭐️ if you like this project!

Acknowledgments

📝 License

This project is MIT licensed.

Github

https://github.com/andres-condezo/bookstore

Comments(4)

  • 1

    ## Bookstore Milestone 1: Initialize project

    Bookstore Milestone 1: Initialize project

    Hi there :wave:

    Thanks for taking the time to review my project.


    Changes

    In this milestone:

    • I Initialized React app with CRA.
    • I structured my application files using a "feature folder" approach and I used the "ducks" pattern for my Redux files.
    • I Added React Router and set up two Routes, Links, and pages for the app's navigation (books page and categories page).

    Get Started

    Visit live demo : • Bookstore Live Demo Link

    or:

    Clone the repository : • $ git clone https://github.com/andres-condezo/bookstore.git$ cd bookstore$ git checkout initialize_project$ npm install$ npm start


    Any comment or suggestion will be thankfully received.

  • 2

    Bookstore Milestone 4: Styling


    Bookstore Milestone 4: Styling

    Hi there :wave:

    Thanks for taking the time to review my project.


    Changes

    In this milestone I:

    • Updated my component styles in order to match Zeplin's design.

    Get Started

    Visit live demo : • Bookstore Live Demo Link

    or:

    Clone the repository : • $ git clone https://github.com/andres-condezo/bookstore.git$ cd bookstore$ git checkout styling$ npm install$ npm start


    Milestone 4 README file:

    README.md


    Any comment or suggestion will be thankfully received.

  • 3

    Bookstore Milestone 3: Connect API


    Bookstore Milestone 3: Connect API

    Hi there :wave:

    Thanks for taking the time to review my project.


    Changes

    In this milestone I:

    • Refactored "add book" and "remove book" functions to persist changes in the server.
    • Refactored the redux code using thunk middleware to make async requests to the API.

    Get Started

    Visit live demo : • Bookstore Live Demo Link

    or:

    Clone the repository : • $ git clone https://github.com/andres-condezo/bookstore.git$ cd bookstore$ git checkout connect-api$ npm install$ npm start


    Milestone 3 README file:

    README.md


    Any comment or suggestion will be thankfully received.

  • 4

    Bookstore Milestone 2: Add remove books


    Bookstore Milestone 2: Add remove books

    Hi there :wave:

    Thanks for taking the time to review my project.


    Changes

    In this milestone i:

    • Implemented Redux to manage the states in the app.
    • Implemented Add book and remove book function.

    Get Started

    Visit live demo : • Bookstore Live Demo Link

    or:

    Clone the repository : • $ git clone https://github.com/andres-condezo/bookstore.git$ cd bookstore$ git checkout add-remove-books$ npm install$ npm start


    Milestone 2 README file:

    README.md


    Any comment or suggestion will be thankfully received.