https://github.com/prat555/Shizuka_Sustainable_Ecommerce
Shizuka is a sustainable e-commerce platform built with React, Node.js and MongoDB, offering eco-friendly products with cart, wishlist and secure checkout. It combines ethical shopping with modern web tech to promote conscious consumerism.
https://github.com/prat555/Shizuka_Sustainable_Ecommerce
expressjs mongodb nodejs react sustainability vercel
Last synced: 6 months ago
JSON representation
Shizuka is a sustainable e-commerce platform built with React, Node.js and MongoDB, offering eco-friendly products with cart, wishlist and secure checkout. It combines ethical shopping with modern web tech to promote conscious consumerism.
- Host: GitHub
- URL: https://github.com/prat555/Shizuka_Sustainable_Ecommerce
- Owner: prat555
- Created: 2025-04-04T07:03:57.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-07T16:03:31.000Z (about 1 year ago)
- Last Synced: 2025-04-07T17:24:00.852Z (about 1 year ago)
- Topics: expressjs, mongodb, nodejs, react, sustainability, vercel
- Language: JavaScript
- Homepage: https://shizuka-san.vercel.app
- Size: 5.65 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Shizuka – Sustainable E‑Commerce Platform
Shizuka is a full‑stack e‑commerce app for eco‑friendly products. It offers a clean, fast shopping experience, user‑scoped cart and wishlist, and a Carbon Footprint Tracker to encourage sustainable choices.
    
## Key features
- Product browsing with categories, search, featured carousels
- User‑scoped Wishlist and Cart (persisted via backend)
- Buy Now, Add to Cart, and Wishlist actions require sign‑in (redirects to Login)
- Carbon Footprint Tracker (auth‑gated view; shows static demo data for now)
- Polished UI with Tailwind and a consistent gray background (custom `bg-gray-75`)
- Home hero uses an animated eco GIF; Login auto‑scrolls to top on navigation
## Tech stack
- Frontend: React 19, React Router, Tailwind CSS, React Icons, React Multi Carousel, Axios
- Auth: Firebase Authentication (Email/Password + Google)
- Backend: Node.js, Express, MongoDB, Mongoose, CORS, dotenv
## 📁 Project structure
```
Shizuka/
├─ public/
│ ├─ images/
│ └─ index.html
├─ src/
│ ├─ components/
│ ├─ pages/
│ ├─ utils/
│ └─ firebase.js
├─ backend/
│ ├─ config/
│ ├─ models/
│ ├─ routes/
│ └─ server.js
└─ README.md
```
## Auth behavior
- Actions that modify user data (Add to Cart, Wishlist, Buy Now) require authentication.
- If a guest clicks these, they are redirected to `/login`.
- The Login page auto‑scrolls to the top so the form is always visible.
- Carbon Tracker requires sign‑in; when signed in it shows static demo data (no backend writes yet).
## Available scripts
Frontend (root):
- `npm start` – start CRA dev server
- `npm run build` – build for production (note: current script moves build to `src/build`)
Backend (`backend/`):
- `npm start` – start Express server
- `npm run dev` – start with nodemon (if you have it installed)
## API overview
Base URL (dev): `http://localhost:5000`
Products
- `GET /products` – list products (supports `?category=` and `?search=`)
- `GET /products/featured` – featured products
- `GET /products/categories` – dynamic category list
Cart
- `POST /cart/add` – add/increase
- `POST /cart/update` – update quantity or remove (`quantity: 0`)
- `GET /cart/:userId` – get user cart
- `DELETE /cart/remove/:id` – remove item by productId
Wishlist
- `POST /wishlist/toggle` – add/remove
- `GET /wishlist/:userId` – get user wishlist
- `POST /wishlist/remove` – remove specific item
Carbon (experimental; prefixed with `/api/carbon`)
- `GET /api/carbon/profile`
- `GET /api/carbon/dashboard`
- `GET /api/carbon/activities`
- `POST /api/carbon/activity`
- `POST /api/carbon/goal`
- `GET /api/carbon/goals`
- `POST /api/carbon/purchase-impact`
## 📄 License
Licensed under the MIT License – see [LICENSE](./LICENSE).