A responsive book management dashboard built using Vue.js. This project allows users to manage a collection of books with features like search, sort, add, edit, delete, and image upload. It utilizes a Node.js backend with Express.js and supports JWT-based user authentication.
- Vue.js: JavaScript framework for building user interfaces.
- Bootstrap 5: For responsive and sleek UI components.
- Vue Toastification: For user notifications (success, error messages).
- Axios: For making HTTP requests to the backend API.
- Node.js: JavaScript runtime for backend development.
- Express.js: Minimal and flexible Node.js web application framework.
- MongoDB: NoSQL database for storing book details.
- Multer: Middleware for handling file uploads (images).
- JWT: JSON Web Token for secure user authentication.
-
User Authentication:
- Secure login and registration using JWT.
- Protected routes for the dashboard.
-
Book Management:
- Add a new book with details (title, author, genre, price, ISBN, and image upload).
- Edit existing book details.
- Delete a book from the collection.
- View a list of all books with search and sort functionalities.
-
Search and Sort:
- Real-time search by book title using debounced input.
- Sort by price (low to high) or title (alphabetical order).
- Option to reset sorting to the default order.
Follow the steps below to run this project locally.
Make sure you have the following installed:
- Node.js (version 16+)
- npm (Node Package Manager)
- MongoDB (local or cloud instance)
-
Clone the repository and navigate to the backend folder:
git clone https://github.com/Pratheesh18/Online-Book-Store.git cd Backend npm install npm start
-
Navigate to the frontend directory:
cd simple-books npm install npm run dev