Bookstream is a dynamic, feature-rich bookstore application designed to provide a seamless user experience. With its clean, responsive interface, powerful search capabilities, and secure payment processing, Bookstream is ideal for developers building or contributing to an online bookstore.
- Bookstream π
- User Authentication: Secure login and registration using JWT.
- Book Management: Comprehensive book management, including add, edit, and delete functionalities.
- Advanced Search: Powerful search functionality to filter books by various criteria.
- Secure Payment: Integrated secure payment processing for book purchases.
- Responsive Design: Optimized for mobile, tablet, and desktop.
- Frontend: Next.js, Tailwind CSS
- Backend: Node.js, Express
- Database: MongoDB
- Authentication: JSON Web Tokens (JWT)
-
Clone the repository:
git clone https://github.com/yashksaini-coder/BookStream.git
-
Install dependencies:
cd BookStream npm install
-
Create Environment Variables:
- Create a
.env
file (in backend workspace) by below command and add the following:
cd /backend cp .env.example .env
- and update your MongoDB URI and JWT secret key in this file.
MONGODB_URI=your_mongo_db_uri JWT_SECRET=your_jwt_secret NEXT_PUBLIC_PAYMENT_API_KEY=your_payment_api_key
- Create a
-
Run the application:
- back to parent directory
cd ../ npm run start
- This will start the application in production mode.
- you can also start backend and frontend by these commands:
-
npm run start:backend npm run start:frontend
Access the app at `http://localhost:3000`.
If you encounter issues, refer to the Common Issues section for troubleshooting steps.
When starting the server with npm start
, you may see:
Error: Could not find a production build in the '.next' directory.
Solution: Run npm run build
before starting the server.
You might encounter errors related to unescaped characters in JSX:
Error: `'` can be escaped with `'`, `‘`, `'`, `’`. react/no-unescaped-entities
Solution: Escape unescaped characters in your JSX or disable the ESLint rule in your configuration.
Navigate to the login page, enter your credentials, and upon successful login, youβll be redirected to the homepage.
In the book management section, fill out the form with book details (e.g., title, author, genre) to add a new book.
- Run the development server:
npm run dev
- This will start the application in production mode.
- you can also start backend and frontend by these commands:
-
- Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
- Edit and Update:
- Modify
app/page.tsx
. The page auto-updates as you edit.
- Modify
The roadmap outlines the upcoming features and improvements planned for Bookstream:
- Wishlist Integration: Allow users to create and manage a wishlist of books.
- Ratings & Reviews: Enable users to rate and review books.
- Admin Dashboard: Introduce an admin panel for better control over book management, users, and sales data.
- Book Recommendations: Implement personalized book recommendations based on user preferences and purchase history.
- Multilingual Support: Expand the platform to support multiple languages for a broader audience.
To learn more about Next.js, check out these resources:
The easiest way to deploy your Next.js app is with Vercel.
Visit the Next.js deployment documentation for more details.
We welcome contributions! Hereβs how to contribute:
- Fork the repository.
- Create your feature branch:
git checkout -b feature/YourFeature
- Commit your changes:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature/YourFeature
- Open a pull request.
Thanks to all contributors who have helped make this project better!
This project is licensed under the MIT License. See the LICENSE file for details.
Happy coding! π