- 📖 Table of Contents
- 📍 Overview
- 📦 Features
- 📂 Repository Structure
- ⚙️ Modules
- 🚀 Getting Started
- 🛣 Roadmap
- 🤝 Contributing
- 📄 License
- 👏 Acknowledgments
Bookit is an online bookstore application developed using the MERN (MongoDB, Express.js, React, Node.js) stack. This web application allows users to list books for sale and purchase books from other users. The MongoDB database is deployed locally, and user authentication (login and signup) is powered by MongoDB Atlas.
└── bookit/
├── LICENSE
├── README.md
└── bookit/
├── .gitignore
├── README.md
├── package-lock.json
├── package.json
├── public/
└── src/
Src
File | Summary |
---|---|
App.js | Contains all Routes to the pages using React-Router along with a private route that encapsulates all other feature routes for logged in users. |
Contexts
File | Summary |
---|---|
user.context.js | Captures User context when user is logged in as well as contains signup and signin SDK methods from Realm in Mongo. |
Components
File | Summary |
---|---|
NavBar.css | Styling Sheet for Navbar |
NavBar.js | Navbar implementation for the App |
Backend
File | Summary |
---|---|
server.js | Actual Backend Logic; Houses all API endpoints and thier logic. |
Realm
File | Summary |
---|---|
constants.js | Realm SDK Application URI Connection String |
Pages
File | Summary |
---|---|
Profile.page.js | Profile Page for logged in user. |
Login.page.js | Login Page for user. |
UserListings.js | Page where user can biew all his/her made listings on the webstore. |
Listbook.css | Page where user can list a book by filling a simple form with details about the book. |
History.page.js | Page to atore all history and transactions made by user. |
Home.page.js | Default landing page for logged in users. |
Cart.page.js | Basic Cart functionality page. |
PrivateRoute.page.js | Component housing logic to redirect and route to home page if user is logged in. |
Reset.page.js | Page meant to reset user forgotten password. |
Signup.page.js | SignUp page for user. |
Dependencies
Please ensure you have the following dependencies installed on your system:
- ℹ️ NodeJS
- ℹ️ MongoDB Client
- ℹ️ Mongo Compass
- Clone the bookit repository:
git clone https://github.com/047pegasus/bookit
- Change to the project directory:
cd bookit
- Install the dependencies:
npm install
Before running make sure to set the APP_ID= "application-0-tgmfc" in "src/realm/constants.js".
Also make sure to login in to the application using given sample email id and password only for current time until next update to the app.
After that you are ready to roll the application!! ✅🚀
Email ID: tanishqoct11@gmail.com
Password: Test@123
In a terminal open two sessions and run each command group in a separate session.
npm start
cd src/backend
node server.js
ℹ️ Task 1: Fix Bug on Login/SignUp/Reset Page (problems due to improper documentation availability of New Realm SDK for MongoDB Apps)
ℹ️ Task 2: Fix Bug on Cart Page (error in app when deleting a bok from cart)
ℹ️ Task 3: Implement Book Cover addition feature while listing a book.
Contributions are always welcome! Please follow these steps:
- Fork the project repository. This creates a copy of the project on your account that you can modify without affecting the original project.
- Clone the forked repository to your local machine using a Git client like Git or GitHub Desktop.
- Create a new branch with a descriptive name (e.g.,
new-feature-branch
orbugfix-issue-123
).
git checkout -b new-feature-branch
- Make changes to the project's codebase.
- Commit your changes to your local branch with a clear commit message that explains the changes you've made.
git commit -m 'Implemented new feature.'
- Push your changes to your forked repository on GitHub using the following command
git push origin new-feature-branch
- Create a new pull request to the original project repository. In the pull request, describe the changes you've made and why they're necessary. The project maintainers will review your changes and provide feedback or merge them into the main branch.
This project is licensed under the ℹ️ LICENSE-TYPE
License. See the LICENSE-Type file for additional info.
- ℹ️ https://www.mongodb.com/
- ℹ️ https://www.mongodb.com/docs/realm/web/manage-email-password-users/
- ℹ️ https://www.mongodb.com/try/download/community
- ℹ️ https://www.mongodb.com/try/download/compass
- ℹ️ https://www.mongodb.com/try/download/shell