# robiul178/inboxdoller architecture

> Architecture diagram of the GitHub repository robiul178/inboxdoller, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/robiul178/inboxdoller
- Repository: https://github.com/robiul178/inboxdoller

## Overview

InboxDoller is a role-based task marketplace: users register or sign in, creators spend coins to post and manage tasks, workers find tasks and submit completed work, and administrators manage users and tasks. Users can buy coins by card and workers can request withdrawals; the README documents coin adjustments when tasks are added or completed. The route table exposes these role-specific dashboard areas. Some page implementations were not sampled, so links to their features are based on the route table or README rather than inferred internal calls.

Main entry points: [`src/main.jsx`](https://github.com/robiul178/inboxdoller/blob/main/src/main.jsx) (Route application), [`src/Components/CheckoutForm/CheckoutForm.jsx`](https://github.com/robiul178/inboxdoller/blob/main/src/Components/CheckoutForm/CheckoutForm.jsx) (Card checkout), [`src/Components/Pages/Dashboard/TaskCreator/AddNewTask/AddNewTask.jsx`](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/TaskCreator/AddNewTask/AddNewTask.jsx) (Create task), [`src/Components/AuthProvider/AuthProvider.jsx`](https://github.com/robiul178/inboxdoller/blob/main/src/Components/AuthProvider/AuthProvider.jsx) (Authentication provider)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_auth["Identity and access"]
  node_auth_provider["Authentication provider<br/>[AuthProvider.jsx]"]
  node_firebase["Firebase auth config<br/>[firebase.config.js]"]
  node_signin["Sign in<br/>[SingIn.jsx]"]
  node_signup["Registration and role choice<br/>[SingUp.jsx]"]
  node_private_route["Private route guard<br/>[PrivateRoute.jsx]"]
end

subgraph group_market["Task marketplace"]
  node_create_task["Create task<br/>[AddNewTask.jsx]"]
  node_creator_tasks["Manage creator tasks<br/>[MyTasks.jsx]"]
  node_task_listing["Browse task list<br/>[TaskList.jsx]"]
  node_task_details["Task details and completion<br/>[TaskDetails.jsx]"]
  node_submissions["Worker submissions<br/>[MySubmission.jsx]"]
end

subgraph group_wallet["Coins and payments"]
  node_coins["Coin balance<br/>[useCoin.jsx]"]
  node_purchase["Purchase coins<br/>[PurchaseCoin.jsx]"]
  node_checkout["Card checkout<br/>[CheckoutForm.jsx]"]
  node_stripe["Stripe payments"]
  node_payment_history["Payment history<br/>[PaymentHistory.jsx]"]
  node_withdrawals["Worker withdrawals<br/>[Withdrawals.jsx]"]
end

subgraph group_admin["Role dashboards"]
  node_dashboard["Role-based dashboard<br/>[Dashboard.jsx]"]
  node_creator_dash["Creator dashboard<br/>[TaskCreator.jsx]"]
  node_admin_dash["Admin dashboard<br/>[Admin.jsx]"]
  node_admin_manage["Manage users and tasks"]
  node_worker_dash["Worker dashboard<br/>[Workers.jsx]"]
end

subgraph group_site["Site navigation"]
  node_app["Route application<br/>[main.jsx]"]
  node_site_shell["Navbar and footer<br/>[Routes.jsx]"]
  node_home["Landing and job discovery<br/>[Home.jsx]"]
end

node_visitor(("Visitor"))
node_creator(("Task creator"))
node_worker(("Worker"))
node_administrator(("Administrator"))
node_api["Marketplace API"]

node_visitor -->|"opens"| node_app
node_app -->|"routes to"| node_site_shell
node_app -->|"routes to"| node_home
node_app -->|"routes to"| node_signin
node_app -->|"routes to"| node_signup
node_app -->|"provides auth"| node_auth_provider
node_auth_provider -->|"uses"| node_firebase
node_signin -->|"uses auth"| node_auth_provider
node_signup -->|"uses auth"| node_auth_provider
node_app -->|"guards dashboard"| node_private_route
node_private_route -->|"renders"| node_dashboard
node_app -->|"routes to"| node_creator_dash
node_app -->|"routes to"| node_admin_dash
node_app -->|"routes to"| node_worker_dash
node_app -->|"routes to"| node_create_task
node_app -->|"routes to"| node_creator_tasks
node_app -->|"routes to"| node_task_listing
node_app -->|"routes to"| node_task_details
node_app -->|"routes to"| node_submissions
node_app -->|"routes to"| node_purchase
node_app -->|"routes to"| node_payment_history
node_app -->|"routes to"| node_admin_manage
node_app -->|"routes to"| node_withdrawals
node_creator -.->|"creates"| node_create_task
node_create_task -.->|"posts task"| node_api
node_creator -.->|"manages"| node_creator_tasks
node_creator_tasks -->|"reads and updates"| node_api
node_worker -.->|"finds tasks"| node_task_listing
node_task_listing -.->|"opens task"| node_task_details
node_worker -.->|"views submissions"| node_submissions
node_create_task -->|"reduces balance"| node_coins
node_task_details -->|"credits completion"| node_coins
node_purchase -.->|"starts checkout"| node_checkout
node_checkout -->|"confirms card payment"| node_stripe
node_checkout -->|"records payment"| node_api
node_checkout -->|"adds coin balance"| node_api
node_payment_history -->|"reads history"| node_api
node_worker -.->|"requests withdrawal"| node_withdrawals
node_withdrawals -.->|"submits request"| node_api
node_administrator -.->|"manages accounts"| node_admin_manage
node_admin_manage -.->|"loads users and tasks"| node_api

click node_app "https://github.com/robiul178/inboxdoller/blob/main/src/main.jsx"
click node_site_shell "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Routes/Routes.jsx"
click node_home "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Home/Home.jsx"
click node_auth_provider "https://github.com/robiul178/inboxdoller/blob/main/src/Components/AuthProvider/AuthProvider.jsx"
click node_firebase "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Firebase/firebase.config.js"
click node_signin "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Authentication/SingIn/SingIn.jsx"
click node_signup "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Authentication/SingUp/SingUp.jsx"
click node_private_route "https://github.com/robiul178/inboxdoller/blob/main/src/Components/PrivateRoute/PrivateRoute.jsx"
click node_dashboard "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Dashboard.jsx"
click node_creator_dash "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/TaskCreator/TaskCreator.jsx"
click node_admin_dash "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Admin/Admin.jsx"
click node_admin_manage "https://github.com/robiul178/inboxdoller/tree/main/src/Components/Pages/Dashboard/Admin"
click node_worker_dash "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Workers/Workers.jsx"
click node_create_task "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/TaskCreator/AddNewTask/AddNewTask.jsx"
click node_creator_tasks "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/TaskCreator/MyTasks/MyTasks.jsx"
click node_task_listing "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Workers/TaskList/TaskList.jsx"
click node_task_details "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Workers/TaskList/TaskDetails/TaskDetails.jsx"
click node_submissions "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Workers/MySubmission/MySubmission.jsx"
click node_coins "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Hooks/useCoin.jsx"
click node_purchase "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/TaskCreator/PurchaseCoin/PurchaseCoin.jsx"
click node_checkout "https://github.com/robiul178/inboxdoller/blob/main/src/Components/CheckoutForm/CheckoutForm.jsx"
click node_payment_history "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/TaskCreator/PaymentHistory/PaymentHistory.jsx"
click node_withdrawals "https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Workers/Withdrawals/Withdrawals.jsx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auth_provider,node_firebase,node_signin,node_signup,node_private_route toneBlue
class node_create_task,node_creator_tasks,node_task_listing,node_task_details,node_submissions toneAmber
class node_coins,node_purchase,node_checkout,node_stripe,node_payment_history,node_withdrawals,node_api toneMint
class node_dashboard,node_creator_dash,node_admin_dash,node_admin_manage,node_worker_dash,node_creator,node_worker toneRose
class node_app,node_site_shell,node_home,node_visitor,node_administrator toneIndigo
```

## Components

### Identity and access

- [Authentication provider](https://github.com/robiul178/inboxdoller/blob/main/src/Components/AuthProvider/AuthProvider.jsx): `src/Components/AuthProvider/AuthProvider.jsx`
- [Firebase auth config](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Firebase/firebase.config.js): `src/Components/Firebase/firebase.config.js`
- [Sign in](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Authentication/SingIn/SingIn.jsx): `src/Components/Pages/Authentication/SingIn/SingIn.jsx`
- [Registration and role choice](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Authentication/SingUp/SingUp.jsx): `src/Components/Pages/Authentication/SingUp/SingUp.jsx`
- [Private route guard](https://github.com/robiul178/inboxdoller/blob/main/src/Components/PrivateRoute/PrivateRoute.jsx): `src/Components/PrivateRoute/PrivateRoute.jsx`

### Task marketplace

- [Create task](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/TaskCreator/AddNewTask/AddNewTask.jsx): `src/Components/Pages/Dashboard/TaskCreator/AddNewTask/AddNewTask.jsx`
- [Manage creator tasks](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/TaskCreator/MyTasks/MyTasks.jsx): `src/Components/Pages/Dashboard/TaskCreator/MyTasks/MyTasks.jsx`
- [Browse task list](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Workers/TaskList/TaskList.jsx): `src/Components/Pages/Dashboard/Workers/TaskList/TaskList.jsx`
- [Task details and completion](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Workers/TaskList/TaskDetails/TaskDetails.jsx): `src/Components/Pages/Dashboard/Workers/TaskList/TaskDetails/TaskDetails.jsx`
- [Worker submissions](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Workers/MySubmission/MySubmission.jsx): `src/Components/Pages/Dashboard/Workers/MySubmission/MySubmission.jsx`

### Coins and payments

- [Coin balance](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Hooks/useCoin.jsx): `src/Components/Hooks/useCoin.jsx`
- [Purchase coins](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/TaskCreator/PurchaseCoin/PurchaseCoin.jsx): `src/Components/Pages/Dashboard/TaskCreator/PurchaseCoin/PurchaseCoin.jsx`
- [Card checkout](https://github.com/robiul178/inboxdoller/blob/main/src/Components/CheckoutForm/CheckoutForm.jsx): `src/Components/CheckoutForm/CheckoutForm.jsx`
- **Stripe payments**
- [Payment history](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/TaskCreator/PaymentHistory/PaymentHistory.jsx): `src/Components/Pages/Dashboard/TaskCreator/PaymentHistory/PaymentHistory.jsx`
- [Worker withdrawals](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Workers/Withdrawals/Withdrawals.jsx): `src/Components/Pages/Dashboard/Workers/Withdrawals/Withdrawals.jsx`

### Role dashboards

- [Role-based dashboard](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Dashboard.jsx): `src/Components/Pages/Dashboard/Dashboard.jsx`
- [Creator dashboard](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/TaskCreator/TaskCreator.jsx): `src/Components/Pages/Dashboard/TaskCreator/TaskCreator.jsx`
- [Admin dashboard](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Admin/Admin.jsx): `src/Components/Pages/Dashboard/Admin/Admin.jsx`
- [Manage users and tasks](https://github.com/robiul178/inboxdoller/tree/main/src/Components/Pages/Dashboard/Admin): `src/Components/Pages/Dashboard/Admin`
- [Worker dashboard](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Dashboard/Workers/Workers.jsx): `src/Components/Pages/Dashboard/Workers/Workers.jsx`

### Site navigation

- [Route application](https://github.com/robiul178/inboxdoller/blob/main/src/main.jsx): `src/main.jsx`
- [Navbar and footer](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Routes/Routes.jsx): `src/Components/Routes/Routes.jsx`
- [Landing and job discovery](https://github.com/robiul178/inboxdoller/blob/main/src/Components/Pages/Home/Home.jsx): `src/Components/Pages/Home/Home.jsx`

### Other components

- **Visitor**
- **Task creator**
- **Worker**
- **Administrator**
- **Marketplace API**

## Connections

- Visitor → Route application: opens (evidence: `src/main.jsx`)
- Route application → Navbar and footer: routes to (evidence: `src/main.jsx`)
- Route application → Landing and job discovery: routes to (evidence: `src/main.jsx`)
- Route application → Sign in: routes to (evidence: `src/main.jsx`)
- Route application → Registration and role choice: routes to (evidence: `src/main.jsx`)
- Route application → Authentication provider: provides auth (evidence: `src/main.jsx`)
- Authentication provider → Firebase auth config: uses (evidence: `src/Components/AuthProvider/AuthProvider.jsx`)
- Sign in → Authentication provider: uses auth (evidence: `src/Components/Pages/Authentication/SingIn/SingIn.jsx`)
- Registration and role choice → Authentication provider: uses auth (evidence: `src/Components/Pages/Authentication/SingUp/SingUp.jsx`)
- Route application → Private route guard: guards dashboard (evidence: `src/main.jsx`)
- Private route guard → Role-based dashboard: renders (evidence: `src/main.jsx`)
- Route application → Creator dashboard: routes to (evidence: `src/main.jsx`)
- Route application → Admin dashboard: routes to (evidence: `src/main.jsx`)
- Route application → Worker dashboard: routes to (evidence: `src/main.jsx`)
- Route application → Create task: routes to (evidence: `src/main.jsx`)
- Route application → Manage creator tasks: routes to (evidence: `src/main.jsx`)
- Route application → Browse task list: routes to (evidence: `src/main.jsx`)
- Route application → Task details and completion: routes to (evidence: `src/main.jsx`)
- Route application → Worker submissions: routes to (evidence: `src/main.jsx`)
- Route application → Purchase coins: routes to (evidence: `src/main.jsx`)
- Route application → Payment history: routes to (evidence: `src/main.jsx`)
- Route application → Manage users and tasks: routes to (evidence: `src/main.jsx`)
- Route application → Worker withdrawals: routes to (evidence: `src/main.jsx`)
- Task creator → Create task: creates (evidence: `README.md`)
- Create task → Marketplace API: posts task
- Task creator → Manage creator tasks: manages (evidence: `src/Components/Pages/Dashboard/TaskCreator/MyTasks/MyTasks.jsx`)
- Manage creator tasks → Marketplace API: reads and updates (evidence: `src/Components/Pages/Dashboard/TaskCreator/MyTasks/MyTasks.jsx`)
- Worker → Browse task list: finds tasks
- Browse task list → Task details and completion: opens task (evidence: `src/main.jsx`)
- Worker → Worker submissions: views submissions
- Create task → Coin balance: reduces balance (evidence: `README.md`)
- Task details and completion → Coin balance: credits completion (evidence: `README.md`)
- Purchase coins → Card checkout: starts checkout
- Card checkout → Stripe payments: confirms card payment (evidence: `src/Components/CheckoutForm/CheckoutForm.jsx`)
- Card checkout → Marketplace API: records payment (evidence: `src/Components/CheckoutForm/CheckoutForm.jsx`)
- Card checkout → Marketplace API: adds coin balance (evidence: `src/Components/CheckoutForm/CheckoutForm.jsx`)
- Payment history → Marketplace API: reads history
- Worker → Worker withdrawals: requests withdrawal
- Worker withdrawals → Marketplace API: submits request
- Administrator → Manage users and tasks: manages accounts
- Manage users and tasks → Marketplace API: loads users and tasks (evidence: `src/Components/Pages/Dashboard/Admin/ManageUsers/ManageUsers.jsx`)
