# nithinthirthegowda/ai--project-idea-generator architecture

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

- Interactive diagram: https://gitdiagram.com/nithinthirthegowda/ai--project-idea-generator
- Repository: https://github.com/nithinthirthegowda/ai--project-idea-generator

## Overview

This Flask application helps students generate tailored academic project ideas, view implementation blueprints, and save favorites. The main flow accepts a student’s domain, skills, and difficulty, records the generation request, ranks project records, and renders recommendations. Students can manage their saved library; administrators can maintain the project catalog and view usage statistics. The frontend is server-rendered templates with JavaScript enhancements, backed by SQLite. The README documents these capabilities; database and model excerpts are partial, so uncertain internal call wiring is omitted.

Main entry points: [`app.py`](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/app.py) (Route controllers), [`models.py`](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py) (Model database access), [`static/js/main.js`](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/static/js/main.js) (Browser interactions), [`templates/generator.html`](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/templates/generator.html) (Generator form)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_home["Home page<br/>[index.html]"]
  node_generator["Generator form<br/>[generator.html]"]
  node_results["Recommendations<br/>[results.html]"]
  node_saved_page["Saved library<br/>[saved.html]"]
  node_admin_page["Admin dashboard<br/>[admin.html]"]
  node_client_js["Browser interactions<br/>[main.js]"]
end

subgraph group_routes["Flask application"]
  node_flask["Route controllers<br/>[app.py]"]
end

subgraph group_domain["Project services"]
  node_recommend["Recommendation ranking<br/>[models.py]"]
  node_saved_service["Saved project service<br/>[models.py]"]
  node_catalog_service["Catalog management<br/>[models.py]"]
  node_stats_service["Usage statistics<br/>[models.py]"]
  node_generation_log["Generation logging<br/>[models.py]"]
end

subgraph group_storage["SQLite storage"]
  node_db_module["Database setup<br/>[database.py]"]
  node_models_db["Model database access<br/>[models.py]"]
  node_sqlite[("Application database")]
end

node_student(("Student"))
node_admin_user(("Administrator"))

node_student -->|"submits requests"| node_flask
node_admin_user -->|"submits requests"| node_flask
node_flask -->|"renders"| node_home
node_flask -->|"renders"| node_generator
node_flask -->|"renders"| node_results
node_flask -->|"renders"| node_saved_page
node_flask -->|"renders"| node_admin_page
node_generator -->|"submits form"| node_flask
node_results -->|"enhanced by"| node_client_js
node_saved_page -->|"enhanced by"| node_client_js
node_admin_page -->|"enhanced by"| node_client_js
node_client_js -->|"sends AJAX"| node_flask
node_flask -->|"initializes schema"| node_db_module
node_flask -->|"requests matches"| node_recommend
node_flask -->|"records request"| node_generation_log
node_flask -->|"manages bookmarks"| node_saved_service
node_flask -->|"manages catalog"| node_catalog_service
node_flask -->|"requests metrics"| node_stats_service
node_recommend -->|"queries projects"| node_models_db
node_saved_service -->|"reads and writes"| node_models_db
node_catalog_service -->|"writes projects"| node_models_db
node_stats_service -->|"queries counts"| node_models_db
node_generation_log -->|"writes log"| node_models_db
node_db_module -->|"creates and seeds"| node_sqlite
node_models_db -->|"reads and writes"| node_sqlite

click node_home "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/templates/index.html"
click node_generator "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/templates/generator.html"
click node_results "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/templates/results.html"
click node_saved_page "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/templates/saved.html"
click node_admin_page "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/templates/admin.html"
click node_client_js "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/static/js/main.js"
click node_flask "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/app.py"
click node_recommend "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py"
click node_saved_service "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py"
click node_catalog_service "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py"
click node_stats_service "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py"
click node_generation_log "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py"
click node_db_module "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/database.py"
click node_models_db "https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py"

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_home,node_generator,node_results,node_saved_page,node_admin_page,node_client_js toneBlue
class node_flask toneAmber
class node_recommend,node_saved_service,node_catalog_service,node_stats_service,node_generation_log toneMint
class node_db_module,node_models_db,node_sqlite toneRose
class node_student,node_admin_user toneIndigo
```

## Components

### Web interface

- [Home page](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/templates/index.html): `templates/index.html`
- [Generator form](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/templates/generator.html): `templates/generator.html`
- [Recommendations](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/templates/results.html): `templates/results.html`
- [Saved library](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/templates/saved.html): `templates/saved.html`
- [Admin dashboard](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/templates/admin.html): `templates/admin.html`
- [Browser interactions](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/static/js/main.js): `static/js/main.js`

### Flask application

- [Route controllers](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/app.py): `app.py`

### Project services

- [Recommendation ranking](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py): `models.py`
- [Saved project service](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py): `models.py`
- [Catalog management](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py): `models.py`
- [Usage statistics](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py): `models.py`
- [Generation logging](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py): `models.py`

### SQLite storage

- [Database setup](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/database.py): `database.py`
- [Model database access](https://github.com/nithinthirthegowda/ai--project-idea-generator/blob/main/models.py): `models.py`
- **Application database**

### Other components

- **Student**
- **Administrator**

## Connections

- Student → Route controllers: submits requests
- Administrator → Route controllers: submits requests
- Route controllers → Home page: renders
- Route controllers → Generator form: renders
- Route controllers → Recommendations: renders
- Route controllers → Saved library: renders
- Route controllers → Admin dashboard: renders
- Generator form → Route controllers: submits form
- Recommendations → Browser interactions: enhanced by
- Saved library → Browser interactions: enhanced by
- Admin dashboard → Browser interactions: enhanced by
- Browser interactions → Route controllers: sends AJAX
- Route controllers → Database setup: initializes schema
- Route controllers → Recommendation ranking: requests matches
- Route controllers → Generation logging: records request
- Route controllers → Saved project service: manages bookmarks
- Route controllers → Catalog management: manages catalog
- Route controllers → Usage statistics: requests metrics
- Recommendation ranking → Model database access: queries projects
- Saved project service → Model database access: reads and writes
- Catalog management → Model database access: writes projects
- Usage statistics → Model database access: queries counts
- Generation logging → Model database access: writes log
- Database setup → Application database: creates and seeds
- Model database access → Application database: reads and writes
