The Bookstore App is a web application that allows users to browse books, add books to a favorites list, and search for books using the Google Books API. Built with modern technologies like React and Redux, the app offers an intuitive interface with a smooth user experience.
. Book Display: Browse books across different categories (e.g., Fiction, History, and more). . Advanced Search: Search for books using keywords. . Favorites: Save your favorite books to a personal list. . Sign Up / Sign In: Register an account using email or log in with Google. . Pagination: Navigate through multiple pages for a better book browsing experience.
. React: For building dynamic and interactive user interfaces. . Redux: For global state management. . Firebase: For storing user data and handling authentication. . Google Books API: To fetch books from the Google Books library. . React Router: For navigation between pages. . CSS & Swiper: For designing the UI and enhancing user interaction.
-
Clone the Repository https://github.com/RubaMansour/reactProject.git
-
Navigate to the Project Directory cd reactProject
-
Install Dependencies
npm install -
Configure Firebase Set up your Firebase account and configure your app settings in firebase.js: 1. Create a new project on Firebase Console. 2. Create a web app and add Firebase configurations in firebase.js. 3. Enable "Email/Password Authentication" and "Google Authentication" in Firebase settings.
-
Run the App Once all dependencies are installed, you can run the app with: npm run dev
bookstore-app/
├── public/ │ ├── index.html │ └── ... ├── src/ │ ├── components/ │ │ ├── Navbar.js │ │ ├── Home.js │ │ └── ... │ ├── redux/ │ │ └── booksSlice.js │ ├── App.js │ ├── firebase.js │ └── index.js ├── .gitignore ├── package.json ├── README.md └── ...
-
Sign Up and Sign In:
. Users can sign up using email or log in with their Google account. . Once logged in, user data is stored in Firebase Firestore.
-
Display Books:
. The app uses the Google Books API to fetch book data based on the search keyword or selected category. . Books are displayed on the "Shop" page, with the ability to browse through multiple pages.
-
Add Books to Favorites:
. Users can add books to their favorites list using the "Add To Wishlist" button.
-
Navigation:
. The app uses React Router to navigate between pages, including the homepage, book details,
and shop pages.