# nixhal33/redmine architecture

> Architecture diagram of the GitHub repository nixhal33/redmine, 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/nixhal33/redmine
- Repository: https://github.com/nixhal33/redmine

## Overview

Redmine is a Rails-based project-management web application. Users enter through the web routes to manage issues and projects, then use planning and collaboration features such as Gantt charts, calendars, time tracking, wikis, and forums. Query models provide a substantial internal layer for configurable filtering and listings. The route excerpt directly establishes several controller dispatches; other capability links are documented only at product level, so unsampled implementation relationships are not asserted.

Main entry points: [`config/routes.rb`](https://github.com/nixhal33/redmine/blob/master/config/routes.rb) (Web routes), [`app/controllers/issues_controller.rb`](https://github.com/nixhal33/redmine/blob/master/app/controllers/issues_controller.rb) (Issue management), [`app/models/issue_query.rb`](https://github.com/nixhal33/redmine/blob/master/app/models/issue_query.rb) (Issue queries), [`app/controllers/gantts_controller.rb`](https://github.com/nixhal33/redmine/blob/master/app/controllers/gantts_controller.rb) (Gantt planning)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web entry"]
  node_routes["Web routes<br/>[routes.rb]"]
  node_app_controller["Application controller"]
end

subgraph group_work["Work management"]
  node_issues["Issue management"]
  node_issue_data[("Issue records<br/>[issue.rb]")]
  node_issue_queries["Issue queries<br/>[issue_query.rb]"]
  node_query_core["Query framework<br/>[query.rb]"]
  node_time_queries["Time-entry queries"]
  node_projects["Project management"]
  node_repositories["Repositories"]
end

subgraph group_collab["Planning and collaboration"]
  node_gantt["Gantt planning"]
  node_gantt_ui["Gantt chart UI"]
  node_calendar["Calendar and reports"]
  node_time_tracking["Time tracking"]
  node_wiki["Wiki<br/>[wiki_controller.rb]"]
  node_forums["Forums and news"]
end

subgraph group_platform["Platform services"]
  node_mail_ingest["Mail handler<br/>[rdm-mailhandler.rb]"]
  node_search["Search indexing"]
  node_menus["Menu management<br/>[menu_manager.rb]"]
  node_webhooks["Webhook delivery<br/>[webhook_job.rb]"]
end

node_user(("User"))

node_user -->|"uses web app"| node_routes
node_routes -->|"dispatches"| node_issues
node_routes -->|"dispatches"| node_gantt
node_routes -->|"dispatches"| node_calendar
node_routes -.->|"dispatches"| node_repositories
node_routes -.->|"dispatches"| node_time_tracking
node_routes -.->|"dispatches"| node_wiki
node_routes -.->|"dispatches"| node_forums
node_routes -.->|"dispatches through"| node_app_controller
node_issues -.->|"reads and updates"| node_issue_data
node_issues -.->|"uses query"| node_issue_queries
node_issue_queries -.->|"extends query"| node_query_core
node_time_tracking -.->|"uses query"| node_time_queries
node_gantt -.->|"renders chart"| node_gantt_ui

click node_routes "https://github.com/nixhal33/redmine/blob/master/config/routes.rb"
click node_app_controller "https://github.com/nixhal33/redmine/blob/master/app/controllers/application_controller.rb"
click node_issues "https://github.com/nixhal33/redmine/blob/master/app/controllers/issues_controller.rb"
click node_issue_data "https://github.com/nixhal33/redmine/blob/master/app/models/issue.rb"
click node_issue_queries "https://github.com/nixhal33/redmine/blob/master/app/models/issue_query.rb"
click node_query_core "https://github.com/nixhal33/redmine/blob/master/app/models/query.rb"
click node_time_queries "https://github.com/nixhal33/redmine/blob/master/app/models/time_entry_query.rb"
click node_projects "https://github.com/nixhal33/redmine/blob/master/app/controllers/projects_controller.rb"
click node_repositories "https://github.com/nixhal33/redmine/blob/master/app/controllers/repositories_controller.rb"
click node_gantt "https://github.com/nixhal33/redmine/blob/master/app/controllers/gantts_controller.rb"
click node_gantt_ui "https://github.com/nixhal33/redmine/blob/master/app/javascript/controllers/gantt/chart_controller.js"
click node_calendar "https://github.com/nixhal33/redmine/blob/master/app/controllers/calendars_controller.rb"
click node_time_tracking "https://github.com/nixhal33/redmine/blob/master/app/controllers/timelog_controller.rb"
click node_wiki "https://github.com/nixhal33/redmine/blob/master/app/controllers/wiki_controller.rb"
click node_forums "https://github.com/nixhal33/redmine/blob/master/app/controllers/messages_controller.rb"
click node_mail_ingest "https://github.com/nixhal33/redmine/blob/master/extra/mail_handler/rdm-mailhandler.rb"
click node_search "https://github.com/nixhal33/redmine/blob/master/lib/plugins/acts_as_searchable/lib/acts_as_searchable.rb"
click node_menus "https://github.com/nixhal33/redmine/blob/master/lib/redmine/menu_manager.rb"
click node_webhooks "https://github.com/nixhal33/redmine/blob/master/app/jobs/webhook_job.rb"

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_routes,node_app_controller,node_user toneBlue
class node_issues,node_issue_data,node_issue_queries,node_query_core,node_time_queries,node_projects,node_repositories toneAmber
class node_gantt,node_gantt_ui,node_calendar,node_time_tracking,node_wiki,node_forums toneMint
class node_mail_ingest,node_search,node_menus,node_webhooks toneRose
```

## Components

### Web entry

- [Web routes](https://github.com/nixhal33/redmine/blob/master/config/routes.rb): `config/routes.rb`
- [Application controller](https://github.com/nixhal33/redmine/blob/master/app/controllers/application_controller.rb): `app/controllers/application_controller.rb`

### Work management

- [Issue management](https://github.com/nixhal33/redmine/blob/master/app/controllers/issues_controller.rb): `app/controllers/issues_controller.rb`
- [Issue records](https://github.com/nixhal33/redmine/blob/master/app/models/issue.rb): `app/models/issue.rb`
- [Issue queries](https://github.com/nixhal33/redmine/blob/master/app/models/issue_query.rb): `app/models/issue_query.rb`
- [Query framework](https://github.com/nixhal33/redmine/blob/master/app/models/query.rb): `app/models/query.rb`
- [Time-entry queries](https://github.com/nixhal33/redmine/blob/master/app/models/time_entry_query.rb): `app/models/time_entry_query.rb`
- [Project management](https://github.com/nixhal33/redmine/blob/master/app/controllers/projects_controller.rb): `app/controllers/projects_controller.rb`
- [Repositories](https://github.com/nixhal33/redmine/blob/master/app/controllers/repositories_controller.rb): `app/controllers/repositories_controller.rb`

### Planning and collaboration

- [Gantt planning](https://github.com/nixhal33/redmine/blob/master/app/controllers/gantts_controller.rb): `app/controllers/gantts_controller.rb`
- [Gantt chart UI](https://github.com/nixhal33/redmine/blob/master/app/javascript/controllers/gantt/chart_controller.js): `app/javascript/controllers/gantt/chart_controller.js`
- [Calendar and reports](https://github.com/nixhal33/redmine/blob/master/app/controllers/calendars_controller.rb): `app/controllers/calendars_controller.rb`
- [Time tracking](https://github.com/nixhal33/redmine/blob/master/app/controllers/timelog_controller.rb): `app/controllers/timelog_controller.rb`
- [Wiki](https://github.com/nixhal33/redmine/blob/master/app/controllers/wiki_controller.rb): `app/controllers/wiki_controller.rb`
- [Forums and news](https://github.com/nixhal33/redmine/blob/master/app/controllers/messages_controller.rb): `app/controllers/messages_controller.rb`

### Platform services

- [Mail handler](https://github.com/nixhal33/redmine/blob/master/extra/mail_handler/rdm-mailhandler.rb): `extra/mail_handler/rdm-mailhandler.rb`
- [Search indexing](https://github.com/nixhal33/redmine/blob/master/lib/plugins/acts_as_searchable/lib/acts_as_searchable.rb): `lib/plugins/acts_as_searchable/lib/acts_as_searchable.rb`
- [Menu management](https://github.com/nixhal33/redmine/blob/master/lib/redmine/menu_manager.rb): `lib/redmine/menu_manager.rb`
- [Webhook delivery](https://github.com/nixhal33/redmine/blob/master/app/jobs/webhook_job.rb): `app/jobs/webhook_job.rb`

### Other components

- **User**

## Connections

- User → Web routes: uses web app
- Web routes → Issue management: dispatches (evidence: `config/routes.rb`)
- Web routes → Gantt planning: dispatches (evidence: `config/routes.rb`)
- Web routes → Calendar and reports: dispatches (evidence: `config/routes.rb`)
- Web routes → Repositories: dispatches
- Web routes → Time tracking: dispatches
- Web routes → Wiki: dispatches
- Web routes → Forums and news: dispatches
- Web routes → Application controller: dispatches through
- Issue management → Issue records: reads and updates
- Issue management → Issue queries: uses query
- Issue queries → Query framework: extends query
- Time tracking → Time-entry queries: uses query
- Gantt planning → Gantt chart UI: renders chart
