https://github.com/satyam-software-developer/buybusy-i-react
buybusy-i created with reactjs for frontend web developemnt.
https://github.com/satyam-software-developer/buybusy-i-react
context-api css firbase-database git github react-router-dom react-spinner react-tostify reactjs
Last synced: 17 days ago
JSON representation
buybusy-i created with reactjs for frontend web developemnt.
- Host: GitHub
- URL: https://github.com/satyam-software-developer/buybusy-i-react
- Owner: satyam-software-developer
- License: mit
- Created: 2024-12-17T22:36:32.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-29T09:49:14.000Z (about 1 year ago)
- Last Synced: 2025-02-12T10:53:35.108Z (about 1 year ago)
- Topics: context-api, css, firbase-database, git, github, react-router-dom, react-spinner, react-tostify, reactjs
- Language: JavaScript
- Homepage: https://buybusy-i-react.vercel.app
- Size: 2.18 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Problem statement
- https://classroom.codingninjas.com/app/classroom/me/25434/content/694582/offering/11358835?leftPanelTabValue=PROBLEM
# π¦ BuyBusy-I β E-Commerce Web App
BuyBusy is an online shopping (eCommerce) web application built using React.js, Firebase, and Context API.
Users can create accounts, log in, add/remove items from their cart, modify item quantities, and place orders.
All user dataβincluding cart and order historyβpersists in Firebase, allowing users to revisit their purchase history anytime.
# π Installation & Running the Project
1. Download or clone the repository.
2. Open the project folder in your terminal.
3. Install required dependencies:
npm install
4. Start the development server:
npm start
5. Open the application in your browser:
π http://localhost:3000/
# β¨ Features
- Create a new user account (Sign Up)
- Log in to an existing account (Sign In)
- Add products to the cart
- Remove individual products or clear the entire cart
- Increase or decrease product quantity
- Purchase all products in the cart at once
- View complete order history with:
- Order date & time
- List of purchased items
- Total amount
- All data is permanently stored in Firebase
# π οΈ Tools & Libraries Used
- React.js
- Firebase (Auth + Firestore Database)
- Context API
- react-router-dom
- react-toastify (notifications)
- react-spinners (loading indicators)
- CSS
# β BuyBusy-I β E-Commerce Web App (React + Firebase)
BuyBusy-I is a full-stack E-Commerce Web Application built using React.js and Firebase. It allows users to browse products, manage shopping carts, place orders, and securely authenticate using Firebase Authentication.
The project demonstrates CRUD operations using Firestore along with proper state management, routing, reusable components, and clean code practices.
# π Objective
Build a fully functional e-commerce web application for customers to:
- Browse products
- Search & filter items
- Add/remove items in the cart
- Increase/decrease cart quantities
- Place orders
- Register & login securely
# π― Goal
Develop a modern E-Commerce platform that supports user authentication, product exploration, cart management, and order handling with Firebase acting as the backend.
# β
Features / Acceptance Criteria
β 1. Firebase CRUD Integration
The React app uses Firestore for:
- Storing all products
- Adding/removing items from user carts
- Updating product quantity
- Storing user orders
β 2. User Authentication
Using Firebase Authentication, users can:
- Register a new account
- Login with email/password
- Persist session
β 3. Routing
All pages handled using react-router-dom, including:
- /register
- /login
- /
- /cart
- /orders
β 4. Global State with useContext
The app uses:
- AuthContext β stores user login/logout state
- ProductContext β manages products, filters, and cart
β 5. React Hooks
Used everywhere:
- useState
- useEffect
- useContext
- useReducer
- Custom hooks (if created)
β 6. Clean Code & Documentation
Every component is well-structured, readable, modular, and commented.
β 7. 100% Original Project Code
No external copying.
Everything is written fresh for this project.
# π Bonus Features Included (Optional Enhancements)
## β Sidebar Filters
Filter products by:
- Category
- Price range
Search + Filters work together.
## β Loaders with react-spinners
Shows loading indicators during:
- Fetching products
- Fetching cart
- Updating orders
## β Toast Notifications (react-toastify)
Used for:
- Adding to cart
- Removing from cart
- Login/register success
- Error states
- Order placed
# π Firebase API Structure
/products
/usersCarts//myCart
/userOrders//orders
# π οΈ Tech Stack
Frontend
- React.js
- React Router
- useContext / useReducer / hooks
- CSS modules / Tailwind / own CSS (based on project)
Backend
- Firebase Firestore (CRUD database)
- Firebase Authentication
- Libraries
- react-toastify
- react-spinners
- Firebase SDK v9+
# π¦ Folder Structure
BuyBusy-I/
βββ src/
β βββ components/
β β βββ ProductCard.jsx
β β βββ Navbar.jsx
β β βββ Sidebar.jsx
β βββ pages/
β β βββ Home.jsx
β β βββ Cart.jsx
β β βββ Orders.jsx
β β βββ Login.jsx
β β βββ Register.jsx
β βββ context/
β β βββ AuthContext.js
β β βββ ProductContext.js
β βββ firebase/
β β βββ firebaseConfig.js
β βββ App.js
β βββ index.js
βββ public/
βββ README.md
βββ package.json
# π§© Core Functionalities
## π Home Page
- Displays all products
- Search bar (live filtering)
- Sidebar filter
- Add to cart button
## π Cart Page
- Shows all items added
- Increase/decrease quantity
- Remove product
- Place order
## π§Ύ Orders Page
- Lists all previous orders
- Shows order date
## π Authentication
- Register user
- Login user
- Persist session using Firebase
# π₯ Important Logic Notes
β Search + Filter Combination
A custom function handles:
search term β filter by name
price range β filter by min/max
categories β filter by category
All applied at the same time.
# π§ͺ Testing Expectations
Make sure the following works flawlessly:
- Login & Logout
- Register new user
- Add to cart
- Remove from cart
- Increase/decrease quantity
- Filter + search together
- Orders page shows correct data
- Toasts for success/error
- Loader during async operations
# π License
This project is created solely for educational & professional development purposes.
# π€ Contributing
Feel free to submit issues or pull requests.
# β€οΈ Acknowledgments
- Firebase Documentation
- React Documentation
- react-toastify
- react-spinners
# Author
Satyam Kumar