eBook Haven is a web application built to manage a collection of books. It allows users to upload, view, edit, and delete books along with their details.
- Frontend: React, React Router DOM, Axios for API calls, React Icons for iconography, Notistack for notifications.
- Backend: Node.js with Express for REST API, MongoDB with Mongoose for database management, Multer for file uploads.
- Styling: Tailwind CSS for utility-first CSS framework.
index.js: Entry point for Express server.routes/: Contains route handlers for CRUD operations.models/: Defines MongoDB schema using Mongoose.public/: Directory to store uploaded book PDFs.
src/:components/: Reusable React components.pages/: Main pages of the application.assets/: Contains images and other static assets.
-
CRUD Operations: Perform Create, Read, Update, and Delete operations on books.
-
File Upload: Upload PDF files for each book.
-
Responsive Interface: Displays books in a table format with options to view details, download PDFs, edit book details, and delete books.
-
Loading Indicator: Shows a loading spinner while fetching data from the backend.
Before you begin, ensure you have the following installed:
- Node.js & npm: Make sure Node.js and npm are installed on your machine.
- MongoDB: Ensure MongoDB is installed and running either locally or on a cloud service.
-
Clone the repository:
-
Navigate to repository:
cd eBook.com/ -
Install dependencies:
npm install express mongoose express cors multer
-
Set up environment variables: Create a connection file in the root of the project for backend configuration (e.g., MongoDB connection URL).
-
Start the backend server:
cd server/ npm start -
Start the frontend development server:
cd client/ npm run dev
- Upon starting the application, you will see a list of books displayed in a table format.
- Use the "Add Book" button to navigate to the form for adding new books. Each book entry provides options to view details, download the associated PDF, edit details, and delete the book.
Contributions are welcome! Please fork the repository and create a pull request with your improvements.😁😁




