Discover, search, and display books effortlessly on Bookshelf's intuitive platform.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
Bookshelf is a web application for browsing books, with additional features such as the ability to add books to a shopping list, explore categories, view popular books, and support charitable foundations.
Note
The project is set up for automatic deployment to GitHub Pages using GitHub Actions by JamesIves (GitHub Pages Deployment Action).
The deployment action is configured to push production-ready code into the gh-pages
branch.
The "Bookshelf" project employs a diverse set of technologies and tools to create a seamless and engaging user experience.
- HTML: Markup language for structuring content.
- CSS: Styling language for presenting the project's visual aspects.
- JavaScript: Programming language for dynamic and interactive elements.
- Swiper: Utilized for creating a slider component for charity foundations.
- Firebase: Integrated for user authentication, providing a secure login system.
- Axios: HTTP client used to manage asynchronous operations and handle HTTP requests effectively.
- Notiflix: Notification library implemented to enhance user feedback.
- Node.js and npm: Used for managing project dependencies.
- Responsiveness: Designed to ensure optimal performance across various devices.
This diverse technological stack enables the "Bookshelf" project to deliver a feature-rich platform for book enthusiasts, offering functionalities such as browsing books, supporting charity foundations, managing shopping lists, and more.
GET /books/category-list
Returns a list of categories.
GET /books/top-books
Receives the first 5 books from the collection in each category.
GET /books/category
Parameter | Type | Description |
---|---|---|
category |
string |
Category name to get a list of books in this category |
Receives a collection of 20 books of a certain category.
GET /books/{id}
Parameter | Type | Description |
---|---|---|
id |
string |
Required. Id of book to fetch |
Receives complete information about the book identified by {id}
.
This section provides information on prerequisites and installation steps to set up the Bookshelf project locally.
Make sure you have the following installed:
- Clone the repository
git clone https://github.com/Valik3201/bookshelf.git
- Navigate to the project directory
cd bookshelf
- Install dependencies
npm ci
- Run the project in development mode:
npm run dev
Now you're ready to explore and contribute to Bookshelf locally!
Users can navigate through the platform using the following features:
- Ability to create an account and log in using Firebase.
- The homepage displays a list of book categories and best sellers within each category .
- Enables users to browse books based on categories.
- Users can add books to the shopping list.
- The shopping list is accessible for logged-in users.
- Clicking on a book provides users with detailed information in a modal window.
- Users can click on each foundation, opening a new page with the respective foundation's website for more information.
- Two themes available: light and dark.
- Responsiveness optimized for various devices.
- Pagination on the Shopping list page.
- Loader indicates ongoing asynchronous operations.
- Scroll Up button for quick navigation to the top of the page.
Contributions are welcome! If you have suggestions or improvements, feel free to fork the project, create a new branch, make your changes, and submit a pull request.
-
Fork the Project
-
Create your Feature Branch
git checkout -b feature/NewFeature
-
Commit your Changes
git commit -m 'Add some NewFeature'
-
Push to the Branch
git push origin feature/NewFeature
-
Open a Pull Request
-
Valentyn Chernetskyi - Team Lead
- Home Page
- Loader
- Authorization
-
Mateusz Firla - Scrum Master
- Header
- Dark Mode
-
- Header
- Mobile Menu
- Authorization
-
- Shopping List Page
- Books in localStorage
- Pagination
-
- Images & Icons
- Modal Window
- Book by ID
-
- Modal Window
- Book by ID
-
- Charity Foundations
- Scroll Up Button