Skip to content

md-zeon/micro-earn-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

134 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MicroEarn - Client Side

Overview

The client side of MicroEarn is a responsive micro-tasking platform interface built with React.js and Tailwind CSS. It serves three primary user rolesβ€”Workers, Buyers, and Adminsβ€”allowing them to interact with tasks, submissions, and earnings through a user-friendly dashboard experience. The app integrates Firebase for authentication, uses React Router for seamless navigation, and communicates securely with the backend via Axios.

🌐 Live Site

URL: https://micro-earn-7be08.web.app/

πŸ‘€ Admin Credentials

Email: [email protected]
Password: Admin@1234


✨ Key Features

  • πŸ” Role-Based Authentication – Firebase authentication with Buyer, Worker, and Admin roles
  • πŸ“‹ Task Creation – Buyers can post tasks with descriptions, instructions, and required workers
  • 🨠 Task Discovery – Workers can browse tasks with filters by category, coins, deadline, etc.
  • πŸ“ Task Submission – Workers can submit proof with file upload and message
  • βœ… Buyer Review System – Buyers approve/reject submissions; coins awarded upon approval
  • πŸ“€ ImgBB Upload – Workers upload task proof/images via ImgBB API
  • πŸ’° Coin-Based Economy – Buyers buy coins with Stripe, Workers earn coins from tasks
  • πŸ’Έ Withdrawals – Workers can withdraw coins (20 coins = $1, min 200 coins); status = pending until admin approval
  • πŸ“Š Dashboards – Role-specific dashboards showing tasks, payments, coins, and submissions
  • πŸ“₯ Notifications – Real-time alerts for submission approvals, rejections, new tasks, and withdrawals
  • πŸ§‘β€πŸ’Ό Admin Panel – Manage users, tasks, and approve withdrawals
  • πŸ“„ Payment History – Buyers see purchase history; Workers see withdrawals
  • πŸ›‘οΈ Secure Routes – Route protection and role-based redirection
  • πŸ–ΌοΈ Profile Management – Edit name, profile photo, and track performance
  • πŸ“± Responsive UI – Fully responsive layout with TailwindCSS + DaisyUI
  • πŸ“ˆ Performance Analytics – Track total coins earned, tasks completed, and payment history
  • πŸͺͺ Form Validation – Clean forms using React Hook Form + custom validation
  • βš™οΈ Custom Hooks – All role and auth logic separated into reusable hooks

πŸ“‹ Feature Overview Table

Feature Description
Role-Based Authentication Separate login access for Workers, Buyers, and Admins
Task Creation Buyers can post detailed tasks with instructions and deadlines
Task Submission Workers can submit task proofs with image upload
Buyer Review System Buyers approve or reject submissions; status updates in real-time
Worker Earnings Earn coins per approved task; track coin balance
Coin-Based Economy Internal system where 20 coins = $1 for withdrawal
Stripe Payments Buyers purchase coins securely using Stripe
Withdrawals Workers can request to withdraw money after earning minimum coins
Admin Panel Manage users, tasks, and withdrawal requests
Notifications Bell-based alert system for submissions, approvals, and withdrawals

πŸ› οΈ Tech Stack

Frontend

React Vite TailwindCSS DaisyUI Firebase Stripe TanStack Query React Router Framer Motion React Hook Form

Backend

Express.js MongoDB Firebase Admin Stripe API dotenv


πŸ§ͺ Pages and Routes

Route Description
/ Homepage with banner, features, and top workers
/login User login page
/register User registration page
/dashboard Redirects based on user role
/dashboard/my-tasks Buyer: Manage own tasks
/dashboard/create-task Buyer: Post a task
/dashboard/payments Buyer: View payments
/dashboard/take-task Worker: Browse available tasks
/dashboard/my-submissions Worker: See submitted tasks
/dashboard/request-withdraw Worker: Submit a withdrawal request
/dashboard/withdrawals Worker: View withdrawal history
/dashboard/all-users Admin: View/manage users
/dashboard/all-tasks Admin: View/delete tasks
/dashboard/stats Admin: View platform stats
/dashboard/withdraw-requests Admin: Approve withdrawals

πŸ”‘ Environment Variables

Create a .env.local file in the root:

VITE_apiKey=your_firebase_api_key
VITE_authDomain=your_firebase_auth_domain
VITE_projectId=your_project_id
VITE_storageBucket=your_storage_bucket
VITE_messagingSenderId=your_messaging_id
VITE_appId=your_app_id
VITE_IMGBB_API_KEY=your_imgbb_api_key
VITE_API_URL=https://micro-earn-server.vercel.app
VITE_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key

πŸ› οΈ Installation

git clone https://github.com/Programming-Hero-Web-Course4/b11a12-client-side-md-zeon
cd b11a12-client-side-md-zeon
npm install

Run the development server:

npm run dev

🧾 Notes

  • Uses JWT from Firebase for secure API communication.
  • Fully responsive and mobile-friendly.
  • Includes loading states, error boundaries, and fallback UIs.
  • Integrated with backend server hosted at: https://micro-earn-server.vercel.app

πŸ§ͺ Testing

  • Tested manually across major routes and dashboard flows.
  • Protected routes tested for all roles.

πŸ‘₯ User Roles

πŸ‘· Workers

  • Browse and complete available tasks
  • Earn coins and withdraw real money
  • View task history and performance stats

πŸ’Ό Buyers

  • Create and manage tasks
  • Review and approve/reject submissions
  • Monitor task performance and payments

πŸ›‘οΈ Admins

  • Oversee the entire platform
  • Manage users, tasks, and withdrawal requests
  • Monitor overall platform statistics and earnings

πŸ“„ License

This project is for educational purpose only.

πŸ—‚οΈ Project Structure

micro-earn-client/
β”œβ”€β”€ public/                # Static assets (SVGs, video, favicon)
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ api/               # API utilities
β”‚   β”œβ”€β”€ assets/            # SVGs and images
β”‚   β”œβ”€β”€ components/        # Reusable UI components
β”‚   β”œβ”€β”€ contexts/          # React context providers
β”‚   β”œβ”€β”€ firebase/          # Firebase config
β”‚   β”œβ”€β”€ hooks/             # Custom React hooks
β”‚   β”œβ”€β”€ layouts/           # Page layouts
β”‚   β”œβ”€β”€ pages/             # Route pages (Home, About, Auth, Dashboard, etc.)
β”‚   β”œβ”€β”€ providers/         # App-level providers
β”‚   β”œβ”€β”€ Routes/            # Route protection and role-based routes
β”‚   └── index.css, main.jsx, App.jsx
β”œβ”€β”€ package.json           # Project metadata and dependencies
β”œβ”€β”€ vite.config.js         # Vite configuration
β”œβ”€β”€ firebase.json          # Firebase hosting config
β”œβ”€β”€ eslint.config.js       # ESLint configuration
└── README.md

Home Page Sections

The Home page (src/pages/Home/Home.jsx) features these main sections:

  • Hero – Landing banner and introduction
  • HowItWorks – Steps to get started
  • BestWorkers – Showcase of top workers
  • TestimonialSlider – User testimonials
  • WhyChooseUs – Platform benefits
  • FAQ – Frequently asked questions

🀝 Contributing

Contributions are welcome! Feel free to fork the repo and submit pull requests. Whether it's fixing bugs, improving documentation, or adding new features β€” all efforts are appreciated.

πŸ“¬ Contact

If you have any questions or feedback, feel free to reach out:

Developer: Zeanur Rahaman Zeon
Email: [email protected]
LinkedIn: https://www.linkedin.com/in/zeanur-rahaman-zeon

About

Frontend for MicroEarn, a micro-task and earning platform where users can earn rewards by completing tasks. Built with React, Tailwind CSS, and Firebase. Features role-based dashboards for Workers, Buyers, and Admins, real-time notifications, secure authentication, task submissions, and payment processing with Stripe.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages