Overview
The Micro-Task and Earning Platform provides an innovative way for users to complete small tasks and earn rewards. The platform caters to three distinct roles:
- Worker: Completes tasks and earns rewards.
- Buyer: Creates tasks and manages payments.
- Admin: Oversees and manages the platform.
This project is built using the MERN stack to deliver a responsive, robust, and scalable experience for all users.
Admin Credentials
Live Site URL
Micro-Task Platform Live Site
GitHub Repository Links
Key Features
- Responsive Design: Fully optimized for mobile, tablet, and desktop.
- Role-Based Authorization: Secure access and features based on user roles (Worker, Buyer, Admin).
- Authentication: Email/password and Google login integration with token-based security.
- Worker Dashboard:
- View available tasks and submit for rewards.
- Track submissions and earnings.
- Withdraw rewards using multiple payment systems (Bkash, Rocket, Nagad).
- Buyer Dashboard:
- Create tasks with detailed descriptions and requirements.
- Review worker submissions and approve/reject with feedback.
- Manage coins and payment history.
- Admin Dashboard:
- Manage users, roles, and tasks.
- Handle withdrawal requests and monitor platform activity.
- Role-based notifications for all user actions.
- Dynamic Notifications: Real-time updates for task approval, payment, and submission actions.
- Secure Data Handling: Firebase config and MongoDB credentials secured using environment variables.
- Home Page Animation: Interactive hero section with a swiper slider and engaging design.
- Pagination: Implemented for submissions and task lists for improved user experience.
Installation and Setup
Prerequisites
- Node.js (v14+)
- MongoDB
- Firebase Project for Authentication
Steps
Clone the repositories:
git clone https://github.com/example-client-repo
git clone https://github.com/example-server-repo
Navigate to the client and server directories and install dependencies:
cd client
npm install
cd ../server
npm install
Configure environment variables:
- For the client:
- For the server:
Start the client and server:
# In client directory
npm start
# In server directory
npm run start
Deploy the application:
- Client: Deploy to Firebase or Netlify.
- Server: Deploy to a cloud service like Render or Heroku.
Dependencies
Client
- React.js
- React Router
- Firebase Authentication
- Swiper Slider
- react-toastify
- react-helmet-async
Server
- Node.js
- Express.js
- MongoDB (Mongoose)
- Stripe for Payments
- jsonwebtoken
- bcrypt
Additional Features
- Automated Email Notifications: Notify users for key actions like task approvals, payments, and withdrawals.
- Advanced Search and Filters: Filter tasks by type, deadline, reward amount, and status.
- Report System: Admin can handle invalid submissions with a streamlined reporting mechanism.
Challenges Addressed
- Implemented a secure token-based authentication system.
- Developed a scalable notification system with real-time updates.
- Optimized the platform for seamless role-based interactions.
Conclusion
This platform provides a user-friendly, feature-rich experience tailored to workers, buyers, and admins. It showcases a deep understanding of the MERN stack and modern web development practices.