TaskFlow is a modern, full-stack micro-tasking platform that connects businesses ("Buyers") with a global workforce ("Workers"). Buyers post simple tasks, and Workers earn real money by completing them. The platform features role-based dashboards, secure payments, and a real-time leaderboard system.
- Earn Money: Browse and complete tasks to earn coins.
- Real-time Withdrawals: Convert coins to cash and withdraw securely.
- Submission Tracking: Track the status of your work (Pending, Approved, Rejected).
- Leaderboard: Compete with other workers to appear on the Top Earners list.
- Post Tasks: Create tasks with specific requirements and download limits.
- Manage Submissions: Review worker submissions and Approve or Reject task proofs.
- Wallet System: Purchase coins to fund your tasks.
- User Management: Manage all users, change roles, and handle user deletions.
- Task Oversight: Monitor all posted tasks and submissions.
- Blog Management: Create, edit, and delete blog posts for the platform.
- System Controls: Manage platform settings and withdrawals processing.
- Blog System: Integrated blog for company news and updates.
- Legal Compliance: Dedicated pages for Privacy Policy, Terms, and Data Deletion instructions.
- Secure Contact: Contact form with email integration.
TaskFlow is built with bleeding-edge web technologies for performance and scalability.
| Category | Technology |
|---|---|
| Frontend | Next.js 16 (React), TailwindCSS |
| UI Components | Radix UI, Shadcn/UI |
| Backend | Next.js API Routes (Serverless), GraphQL (Apollo Server) |
| Database | MongoDB (Mongoose ODM) |
| Auth | Firebase Authentication |
| State Mgmt | TanStack Query, Apollo Client, Redux |
| Animations | Framer Motion |
| Icons | Lucide React |
Follow these steps to set up the project locally.
- Node.js (v18+)
- pnpm (recommended) or npm
- MongoDB URI
- Firebase Project Credentials
-
Clone the repository
git clone https://github.com/Injamhossan/task-flow.git cd task-flow -
Install dependencies
pnpm install # or npm install -
Set up Environment Variables Create a
.env.localfile in the root directory and add the following:# Database MONGODB_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/taskflow # Firebase Auth NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id # Email Service (New) EMAIL_USER=your_email@gmail.com EMAIL_PASS=your_app_password # Stripe (Optional) STRIPE_SECRET_KEY=your_stripe_secret
-
Run the development server
pnpm dev
-
Open in Browser Visit
http://localhost:3000to see the app running.
src/
├── app/ # Next.js App Router pages & API routes
│ ├── api/ # Backend API endpoints (Blogs, Users, Admin, Contact)
│ ├── blog/ # Public blog pages
│ ├── dashboard/ # Protected dashboard routes (Admin/Buyer/Worker)
│ └── page.jsx # Landing page
├── components/ # Reusable React components
│ ├── Dashboard/ # Role-specific dashboard widgets
│ ├── ui/ # Shadcn/UI & Radix components
│ └── ...
├── lib/ # Utilities & Database connection
├── models/ # Mongoose Database Schemas (User, Task, Blog, etc.)
└── auth/ # Firebase configurationContributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
Made with ❤️ by Injamhossan
