https://github.com/redoy49/fresh-farmers
A subscription box service platform for personalized monthly grocery delivery, including fresh vegetables and fruits.
https://github.com/redoy49/fresh-farmers
ecomerce-website firebase mongodb react subscription-box tailwindcss
Last synced: 3 months ago
JSON representation
A subscription box service platform for personalized monthly grocery delivery, including fresh vegetables and fruits.
- Host: GitHub
- URL: https://github.com/redoy49/fresh-farmers
- Owner: redoy49
- Created: 2025-06-25T06:27:10.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-25T10:50:40.000Z (about 1 year ago)
- Last Synced: 2025-08-23T14:59:24.539Z (11 months ago)
- Topics: ecomerce-website, firebase, mongodb, react, subscription-box, tailwindcss
- Language: JavaScript
- Homepage: https://subscription-box-df504.web.app
- Size: 2.36 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ฅฌ FreshFarmers โ Subscription Box Service Platform
FreshFarmers is a full-featured subscription box platform that allows users to browse and subscribe to curated monthly grocery boxes, including fresh vegetables, fruits, and other essentials. The platform is designed to save time and provide high-quality products delivered directly to your doorstep.
---
## ๐ Live Website
๐ [Visit Live Site](https://subscription-box-df504.web.app)
---
## ๐ฏ Project Purpose
The goal of FreshFarmers is to simplify grocery shopping for busy individuals through:
- Personalized monthly subscription boxes
- Convenient delivery on the 1st of each month
- Easy management of subscription preferences
- Seamless and secure user experience
---
## ๐ Technologies Used
### ๐งฉ Frontend:
- React
- React Router DOM
- Tailwind CSS
- DaisyUI
- Swiper.js (for homepage slider)
- React Toastify
- React Icons
- React Helmet for dynamic titles
### ๐ Authentication:
- Firebase Authentication (Email/Password + Google)
- Firebase's updateProfile() for user info editing
### ๐ Data:
- Static JSON-based service listings
- Hosted images via ImgBB/PostImages
### ๐ Deployment:
- Client: Firebase Hosting
---
## โจ Key Features
- ๐ Fully responsive layout for mobile, tablet, and desktop
- ๐งญ Dynamic navigation bar showing user profile image and logout option when logged in
- ๐ค Protected routes with persistent authentication (Profile, Subscription Details, Blog)
- ๐ User info update capability using Firebase updateProfile()
- ๐งพ Subscription box browsing with detailed view and review/rating submission
- ๐จ Interactive banner slider implemented with Swiper.js
- ๐ Dynamic page titles for SEO and UX via React Helmet
- ๐ Show/hide password toggle on registration and login forms
- ๐ Light/Dark theme toggle using DaisyUI
- ๐ Success and error notifications via SweetAlert2 and React Toastify
- ๐งช Functional "Forgot Password" page with email pre-fill and redirect
- ๐ Custom 404 page with user-friendly messaging
---
## ๐ฆ Dependencies
- `react`
- `react-router-dom`
- `tailwindcss` + `daisyui`
- `swiper`
- `firebase`
- `react-toastify`
- `react-icons`
- `react-helmet`
- `sweetalert2`
- `aos` *(for animation)*
---
## ๐ ๏ธ How to Run Locally
### Step 1: Clone the Repository
```bash
git clone https://github.com/redoy49/freshfarmers-client.git
cd freshfarmers-client
```
### Step 2: Install Dependencies
```bash
npm install
```
### Step 3: Create a .env File
```env
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id
```
### Step 4: Run the App
```bash
npm run dev
```
---
## ๐ Relevant Links
๐ด **Live Website**: https://subscription-box-df504.web.app
๐ **GitHub Repo**: https://github.com/redoy49/freshfarmers-client
---
## ๐ Notes
โ
Firebase & API credentials are stored securely in `.env`
โ
SweetAlert2 and React Toastify are used for all user notifications
โ
Password validation includes uppercase, lowercase, and minimum length rules
โ
Authentication state persists on page reloads for private routes
โ
Review and rating system implemented on subscription details page
โ
Profile page allows users to securely update their display name and photoURL
โ
Includes custom 404 page and loading spinners
โ
Dynamic page titles improve UX and SEO
---
## ๐ค Author
๐ง **Email**: mdredoyhasan49@gmail.com
๐ฆ **Twitter**: [@mdredoyhasan49](https://twitter.com/mdredoyhasan49)