# nagarjunabande8-vk/earnify architecture

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

- Interactive diagram: https://gitdiagram.com/nagarjunabande8-vk/earnify
- Repository: https://github.com/nagarjunabande8-vk/earnify

## Overview

Earnify is a Flask freelancing marketplace. Clients and freelancers sign up or log in, clients post jobs, freelancers browse and apply, and clients review applicants and update application status; dashboards expose each role’s activity. The sampled backend shows MySQL queries and MongoDB profile creation, while the README documents the relational schema and portfolio storage. Routes render Jinja templates, with static assets supporting the frontend. Several workflow details are documented but their complete route implementations were not sampled, so edges reflect only visible or documented relationships.

Main entry points: [`app.py`](https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py) (Flask routes), [`templates`](https://github.com/nagarjunabande8-vk/earnify/tree/main/templates) (Jinja templates), [`schema.sql`](https://github.com/nagarjunabande8-vk/earnify/blob/main/schema.sql) (Relational schema), [`config.py`](https://github.com/nagarjunabande8-vk/earnify/blob/main/config.py) (Environment config)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_marketplace["Marketplace workflows"]
  node_accounts["Signup and login<br/>[app.py]"]
  node_job_create["Job posting<br/>[app.py]"]
  node_job_browse["Job browsing<br/>[app.py]"]
  node_applications["Job applications<br/>[app.py]"]
  node_applicant_review["Applicant review<br/>[app.py]"]
  node_dashboards["Role dashboards<br/>[app.py]"]
end

subgraph group_backend["Web application"]
  node_flask["Flask routes<br/>[app.py]"]
  node_config["Environment config<br/>[config.py]"]
end

subgraph group_data["Data stores"]
  node_mysql_schema["Relational schema<br/>[schema.sql]"]
  node_mysql[("MySQL")]
  node_mongo[("MongoDB profiles")]
end

subgraph group_frontend["User interface"]
  node_templates["Jinja templates"]
  node_styles["Responsive styles<br/>[style.css]"]
  node_browser_js["Browser interactions<br/>[script.js]"]
end

node_user(("Marketplace users"))

node_user -->|"signs up or logs in"| node_accounts
node_accounts -->|"submits credentials"| node_flask
node_flask -->|"loads settings"| node_config
node_flask -->|"reads and writes"| node_mysql
node_flask -->|"creates profile"| node_mongo
node_user -->|"posts jobs"| node_job_create
node_job_create -->|"routes job creation"| node_flask
node_user -->|"browses jobs"| node_job_browse
node_job_browse -->|"routes job search"| node_flask
node_user -->|"applies to jobs"| node_applications
node_applications -->|"routes applications"| node_flask
node_user -->|"reviews applicants"| node_applicant_review
node_applicant_review -->|"updates status"| node_flask
node_user -->|"views activity"| node_dashboards
node_dashboards -->|"requests dashboard"| node_flask
node_flask -->|"renders pages"| node_templates
node_mysql_schema -->|"defines tables"| node_mysql
node_templates -.->|"uses styles"| node_styles
node_templates -.->|"uses interactions"| node_browser_js

click node_accounts "https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py"
click node_job_create "https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py"
click node_job_browse "https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py"
click node_applications "https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py"
click node_applicant_review "https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py"
click node_dashboards "https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py"
click node_flask "https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py"
click node_config "https://github.com/nagarjunabande8-vk/earnify/blob/main/config.py"
click node_mysql_schema "https://github.com/nagarjunabande8-vk/earnify/blob/main/schema.sql"
click node_templates "https://github.com/nagarjunabande8-vk/earnify/tree/main/templates"
click node_styles "https://github.com/nagarjunabande8-vk/earnify/blob/main/static/css/style.css"
click node_browser_js "https://github.com/nagarjunabande8-vk/earnify/blob/main/static/js/script.js"

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_accounts,node_job_create,node_job_browse,node_applications,node_applicant_review,node_dashboards,node_user toneBlue
class node_flask,node_config toneAmber
class node_mysql_schema,node_mysql,node_mongo toneMint
class node_templates,node_styles,node_browser_js toneRose
```

## Components

### Marketplace workflows

- [Signup and login](https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py): `app.py`
- [Job posting](https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py): `app.py`
- [Job browsing](https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py): `app.py`
- [Job applications](https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py): `app.py`
- [Applicant review](https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py): `app.py`
- [Role dashboards](https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py): `app.py`

### Web application

- [Flask routes](https://github.com/nagarjunabande8-vk/earnify/blob/main/app.py): `app.py`
- [Environment config](https://github.com/nagarjunabande8-vk/earnify/blob/main/config.py): `config.py`

### Data stores

- [Relational schema](https://github.com/nagarjunabande8-vk/earnify/blob/main/schema.sql): `schema.sql`
- **MySQL**
- **MongoDB profiles**

### User interface

- [Jinja templates](https://github.com/nagarjunabande8-vk/earnify/tree/main/templates): `templates`
- [Responsive styles](https://github.com/nagarjunabande8-vk/earnify/blob/main/static/css/style.css): `static/css/style.css`
- [Browser interactions](https://github.com/nagarjunabande8-vk/earnify/blob/main/static/js/script.js): `static/js/script.js`

### Other components

- **Marketplace users**

## Connections

- Marketplace users → Signup and login: signs up or logs in (evidence: `README.md`)
- Signup and login → Flask routes: submits credentials (evidence: `app.py`)
- Flask routes → Environment config: loads settings (evidence: `app.py`)
- Flask routes → MySQL: reads and writes (evidence: `app.py`)
- Flask routes → MongoDB profiles: creates profile (evidence: `README.md`)
- Marketplace users → Job posting: posts jobs (evidence: `README.md`)
- Job posting → Flask routes: routes job creation (evidence: `README.md`)
- Marketplace users → Job browsing: browses jobs (evidence: `README.md`)
- Job browsing → Flask routes: routes job search (evidence: `app.py`)
- Marketplace users → Job applications: applies to jobs (evidence: `README.md`)
- Job applications → Flask routes: routes applications (evidence: `README.md`)
- Marketplace users → Applicant review: reviews applicants (evidence: `README.md`)
- Applicant review → Flask routes: updates status (evidence: `app.py`)
- Marketplace users → Role dashboards: views activity (evidence: `README.md`)
- Role dashboards → Flask routes: requests dashboard (evidence: `app.py`)
- Flask routes → Jinja templates: renders pages (evidence: `app.py`)
- Relational schema → MySQL: defines tables (evidence: `README.md`)
- Jinja templates → Responsive styles: uses styles
- Jinja templates → Browser interactions: uses interactions
