The Bookstore is a website that allows us to: display a list of books, add a book and remove a selected book.
- bookstore-cms
- π Table of Contents
- π Bookstore
The Bookstore is a website that allows us to: display a list of books, add a book and remove a selected book.
I will need to build a website with two subpages:
- /books
- /categories
However, I will only need to implement the /books page (see the image below). The /categories page will stay empty in this MVP (will develop this page on the future).
I will start "Bookstore" website only with React code. Then I will be building the rest of it and learning Redux Toolkit for the whole week.
Here is the list of projects that will guide me through the steps described below. I will find details about each of the project requirements in the upcoming program activities.
- Project 1: Initialize project with components (React only).
- Project 2: Add reducers and actions.
- Project 3: Use Redux in React components.
- Project 4: Connect to API.
- Project 5: Styling.
- Deployment.
This is the first project of the Bookstore application. I will set up the environment and tools needed to develop a React application. In the following projects, I will develop the actual application.
-
Set-up linters on local environments.
-
Used correct flow GitFlow.
-
Documentation the project in a professional way on README file.
-
First, make sure I have Node.js installed on my local machine
-
Setup a new React application using Create React App
-
The application should run in the browser without errors
-
splitted UI into these components:
- BookStoreApp: the parent or root component. It holds two direct child components.
- Header: display the backstore heading text.
- BookStoreLogic: holds the application logic. It includes two direct child.
- BookstoreTodo: will take the userβs input.
- BookStoreList: serves as a container for the bookstore items.
- BookStoreItem: renders the individual bookstore item.
Install React Router V6 Setup router inside of Add 2 routes in this application, each should render a page component:
- /
- /categories
Create components inside of the /components directory:
- Contains individual book state, as well as a button to delete the book
- Contains a list to renders individual books
- Contains a form to create new books
- Contains a navigation to link to the 2 routes you created
Client Side / Front-End
Server Side / Back-End
Package, Library, Framework
Code Convention, Code Analysis
Version Control, CI/CD, Hosting Service
IDE, Desktop Apps, Other Tools
- display a list of books
- add a book
- remove a selected book
- single page apps (SPA)
- Click the following url for ... Live Demo ...
To get a local copy up and running, follow these steps.
In order to run this project you need:
- git version 2.38.x
- node.js version > 12.x
- IDE (visual studio code, etc)
- browser (chrome, firefox, edge, safari)
- install the dependencies
Clone this repository to your desired folder:
cd bookstore-cms
git [email protected]:fickryiman/bookstore-cms.git
Install this project with:
cd bookstore-cms
npm install
To run the project, execute the following command:
npm run build (production environment)
npm start (development environment)
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.
To run tests, run the following command: Run Github Actions Test
npm test
npx stylelint "**/*.{css,scss}"
npx eslint "**/*.{js,jsx}"
auto fix linter with --fix
npx stylelint "**/*.{css,scss}" --fix
npx eslint "**/*.{js,jsx}" --fix
You can deploy this project using: GitHub Pages Example:
[email protected]:fickryiman/bookstore-cms.git
π€ Fickry Bil Iman
- GitHub: @fickryiman
- Facebook: @fickry.bil.iman
- LinkedIn: fickry-bil-iman
- add login to user with social media auth or google auth
- create mobile version
Contributions, issues, and feature requests are welcome!
Feel free to check the https://github.com/fickryiman/bookstore-cms/issues.
If you like this project please follow me on my GitHub: @fickryiman or connect on my LinkedIn: @fickry-bil-iman.
First thing first, I would like to say Alhamdulillah, Thanks to my Families, Microverse and Micronaut's, Reviewer's, Thank you for all of the experiences, lesson and everythings.
This project is MIT licensed.