Welcome to the Online Bookstore Web Application! This project is a web-based platform where users can browse, search, and purchase books online, offering a seamless and user-friendly experience for book lovers.
- Frontend: React.js, Tailwind CSS
- Backend: Node.js, Express.js
- Database: MongoDB
- State Management: Redux (Optional based on the project setup)
- Authentication: JSON Web Tokens (JWT)
- API Requests: Axios
- Deployment: (Mention if deployed, e.g., Heroku, Vercel)
-
User Authentication:
- Sign up, login, and logout functionalities using JWT.
- Password hashing with bcrypt for secure user authentication.
-
Book Browsing and Searching:
- Users can view books from various categories.
- Search functionality to find books by title, author, or genre.
-
Book Details:
- Detailed view of each book, including the bookβs title, author, price, and description.
- Add to cart option for easy purchasing.
-
Shopping Cart:
- Users can add books to the shopping cart and update or remove them before checkout.
-
Checkout Process:
- Secure checkout process with order summary and payment gateway integration (Stripe/PayPal).
-
Admin Dashboard:
- Admins can manage the inventory by adding, updating, or deleting books.
- Track user orders and monitor sales data.
-
User Reviews and Ratings:
- Users can leave reviews and rate books they have purchased.
-
FAQ Section:
- Includes common questions and answers to help users navigate the platform.
Make sure you have the following installed:
- Node.js (version X.X.X)
- MongoDB (local instance or MongoDB Atlas)
-
Clone the repository:
git clone https://github.com/Harsh1428rao/bookstore-app.git
-
Navigate to the project directory:
cd bookstore-app -
Install dependencies for both the client and server:
# For the backend cd backend npm install # For the frontend cd ../frontend npm install
-
Backend Configuration:
In thebackendfolder, create a.envfile and add the following:MONGO_URI=<your-mongodb-connection-string> JWT_SECRET=<your-secret-key>
-
Frontend Configuration:
In thefrontendfolder, create a.envfile for environment-specific variables (like API URL if needed).
-
Start the backend server:
cd backend npm start -
Start the frontend client:
cd frontend npm run dev
Open your browser and go to http://localhost:3000 to see the application in action.
bookstore-app/
β
βββ backend/
β βββ controllers/
β βββ models/
β βββ routes/
β βββ config/
β βββ server.js
β
βββ frontend/
β βββ src/
β β βββ components/
β β βββ pages/
β β βββ redux/
β β βββ App.js
β βββ index.js
β
βββ README.md
Contributions, issues, and feature requests are welcome! Feel free to check the issues page or make a pull request.
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.