Skip to content

An Online Bookshop Web Application developed in MERN. πŸš€πŸ‘¨β€πŸ’»πŸ§‘β€πŸš€

License

Notifications You must be signed in to change notification settings

047pegasus/bookit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


bookit

β—¦ An Online Bookstore for all πŸ“–

β—¦ Developed with MERN and other cutting edge tools.

React Express MongoDB NodeJS HTML5 JavaScript SVG Axios JSON

GitHub license git-last-commit GitHub commit activity GitHub top language

bookit

πŸ“– Table of Contents


πŸ“ Overview

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.


πŸ“¦ Features


πŸ“‚ Repository Structure

└── bookit/
    β”œβ”€β”€ LICENSE
    β”œβ”€β”€ README.md
    └── bookit/
        β”œβ”€β”€ .gitignore
        β”œβ”€β”€ README.md
        β”œβ”€β”€ package-lock.json
        β”œβ”€β”€ package.json
        β”œβ”€β”€ public/
        └── src/

βš™οΈ Modules

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.

πŸš€ Getting Started

Dependencies

Please ensure you have the following dependencies installed on your system:

- ℹ️ NodeJS

- ℹ️ MongoDB Client

- ℹ️ Mongo Compass

πŸ”§ Installation

  1. Clone the bookit repository:
git clone https://github.com/047pegasus/bookit
  1. Change to the project directory:
cd bookit
  1. Install the dependencies:
npm install

πŸ€– Running Bookit:

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

πŸ›£ Roadmap

  • ℹ️ 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.

🀝 Contributing

Contributions are always welcome! Please follow these steps:

  1. Fork the project repository. This creates a copy of the project on your account that you can modify without affecting the original project.
  2. Clone the forked repository to your local machine using a Git client like Git or GitHub Desktop.
  3. Create a new branch with a descriptive name (e.g., new-feature-branch or bugfix-issue-123).
git checkout -b new-feature-branch
  1. Make changes to the project's codebase.
  2. 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.'
  1. Push your changes to your forked repository on GitHub using the following command
git push origin new-feature-branch
  1. 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.

πŸ“„ License

This project is licensed under the ℹ️ LICENSE-TYPE License. See the LICENSE-Type file for additional info.


πŸ‘ Acknowledgments

- ℹ️ 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

↑ Return


About

An Online Bookshop Web Application developed in MERN. πŸš€πŸ‘¨β€πŸ’»πŸ§‘β€πŸš€

Topics

Resources

License

Stars

Watchers

Forks