# a-dot614/ai-productivity architecture

> Architecture diagram of the GitHub repository a-dot614/ai-productivity, 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/a-dot614/ai-productivity
- Repository: https://github.com/a-dot614/ai-productivity

## Overview

This is a Laravel-based AI productivity web application, not the Laravel framework itself. Users manage tasks, notes, calendar events, and personal productivity; AI features can generate and refine tasks and plans, while dashboards, analytics, reminders, and notifications support follow-through. Admins manage users, settings, and shared categories. The task and AI paths are supported by sampled controller code; other capabilities are represented from the file tree, so uncertain internal wiring is omitted.

Main entry points: [`routes/web.php`](https://github.com/a-dot614/ai-productivity/blob/main/routes/web.php) (Web routes), [`app/Http/Controllers/TaskController.php`](https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/TaskController.php) (Task controller), [`app/Http/Controllers/AIAssistantController.php`](https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/AIAssistantController.php) (AI assistant), [`app/Http/Controllers/NoteController.php`](https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/NoteController.php) (Notes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web experience"]
  node_routes["Web routes<br/>[web.php]"]
  node_auth["Authentication"]
end

subgraph group_work["Work management"]
  node_task_ui["Task screens"]
  node_task_controller["Task controller<br/>[TaskController.php]"]
  node_task_service["Task service<br/>[TaskService.php]"]
  node_task_repository["Task repository<br/>[TaskRepository.php]"]
  node_task_data[("Tasks and subtasks<br/>[Task.php]")]
  node_calendar["Calendar"]
  node_calendar_data[("Calendar events<br/>[CalendarEvent.php]")]
  node_notes["Notes<br/>[NoteController.php]"]
  node_note_service["Note service<br/>[NoteService.php]"]
  node_note_data[("Notes<br/>[Note.php]")]
end

subgraph group_intelligence["AI assistance"]
  node_ai_ui["AI assistant screens<br/>[index.blade.php]"]
  node_ai_controller["AI assistant"]
  node_ai_service["AI assistant service"]
  node_ai_provider["AI providers"]
  node_ai_vendor{{"AI provider"}}
  node_ai_history[("AI history<br/>[AIHistory.php]")]
end

subgraph group_insights["Insights and reminders"]
  node_dashboard["Dashboard and analytics"]
  node_productivity["Productivity insights"]
  node_reminders["Reminder processing"]
  node_reminder_service["Reminder service"]
  node_notifications["Notifications"]
  node_notification_data[("Notifications<br/>[Notification.php]")]
end

subgraph group_admin["Administration"]
  node_admin_controller["Admin console"]
  node_admin_data[("Users and settings<br/>[User.php]")]
end

node_user(("User"))
node_admin_user(("Administrator"))

node_user -->|"sends requests"| node_routes
node_admin_user -->|"sends requests"| node_routes
node_routes -->|"dispatches"| node_auth
node_routes -->|"dispatches"| node_task_controller
node_routes -->|"dispatches"| node_calendar
node_routes -->|"dispatches"| node_notes
node_routes -->|"dispatches"| node_ai_controller
node_routes -->|"dispatches"| node_dashboard
node_routes -->|"dispatches"| node_notifications
node_routes -->|"dispatches"| node_admin_controller
node_task_controller -->|"calls"| node_task_service
node_task_controller -->|"queries"| node_task_repository
node_task_controller -->|"updates"| node_task_data
node_task_controller -->|"renders"| node_task_ui
node_task_service -->|"uses"| node_task_repository
node_task_repository -->|"queries"| node_task_data
node_calendar -->|"manages"| node_calendar_data
node_notes -->|"calls"| node_note_service
node_notes -->|"accesses"| node_note_data
node_note_service -->|"manages"| node_note_data
node_ai_controller -->|"calls"| node_ai_service
node_ai_controller -->|"updates tasks"| node_task_service
node_ai_controller -->|"uses"| node_note_service
node_ai_controller -->|"renders"| node_ai_ui
node_ai_service -->|"selects provider"| node_ai_provider
node_ai_provider -.->|"calls"| node_ai_vendor
node_ai_service -->|"records history"| node_ai_history
node_dashboard -->|"uses"| node_productivity
node_reminders -->|"processes"| node_reminder_service
node_notifications -->|"manages"| node_notification_data
node_admin_controller -->|"manages"| node_admin_data

click node_routes "https://github.com/a-dot614/ai-productivity/blob/main/routes/web.php"
click node_auth "https://github.com/a-dot614/ai-productivity/tree/main/app/Http/Controllers/Auth"
click node_task_ui "https://github.com/a-dot614/ai-productivity/tree/main/resources/views/tasks"
click node_task_controller "https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/TaskController.php"
click node_task_service "https://github.com/a-dot614/ai-productivity/blob/main/app/Services/Task/TaskService.php"
click node_task_repository "https://github.com/a-dot614/ai-productivity/blob/main/app/Repositories/TaskRepository.php"
click node_task_data "https://github.com/a-dot614/ai-productivity/blob/main/app/Models/Task.php"
click node_calendar "https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/CalendarController.php"
click node_calendar_data "https://github.com/a-dot614/ai-productivity/blob/main/app/Models/CalendarEvent.php"
click node_notes "https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/NoteController.php"
click node_note_service "https://github.com/a-dot614/ai-productivity/blob/main/app/Services/Note/NoteService.php"
click node_note_data "https://github.com/a-dot614/ai-productivity/blob/main/app/Models/Note.php"
click node_ai_ui "https://github.com/a-dot614/ai-productivity/blob/main/resources/views/ai/index.blade.php"
click node_ai_controller "https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/AIAssistantController.php"
click node_ai_service "https://github.com/a-dot614/ai-productivity/blob/main/app/Services/AI/AIAssistantService.php"
click node_ai_provider "https://github.com/a-dot614/ai-productivity/blob/main/app/Services/AI/AIProviderFactory.php"
click node_ai_history "https://github.com/a-dot614/ai-productivity/blob/main/app/Models/AIHistory.php"
click node_dashboard "https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/DashboardController.php"
click node_productivity "https://github.com/a-dot614/ai-productivity/blob/main/app/Services/Productivity/ProductivityService.php"
click node_reminders "https://github.com/a-dot614/ai-productivity/blob/main/app/Console/Commands/ProcessReminders.php"
click node_reminder_service "https://github.com/a-dot614/ai-productivity/blob/main/app/Services/Reminder/ReminderService.php"
click node_notifications "https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/NotificationController.php"
click node_notification_data "https://github.com/a-dot614/ai-productivity/blob/main/app/Models/Notification.php"
click node_admin_controller "https://github.com/a-dot614/ai-productivity/tree/main/app/Http/Controllers/Admin"
click node_admin_data "https://github.com/a-dot614/ai-productivity/blob/main/app/Models/User.php"

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_auth,node_user toneBlue
class node_task_ui,node_task_controller,node_task_service,node_task_repository,node_task_data,node_calendar,node_calendar_data,node_notes,node_note_service,node_note_data toneAmber
class node_ai_ui,node_ai_controller,node_ai_service,node_ai_provider,node_ai_vendor,node_ai_history toneMint
class node_dashboard,node_productivity,node_reminders,node_reminder_service,node_notifications,node_notification_data toneRose
class node_admin_controller,node_admin_data,node_admin_user toneIndigo
```

## Components

### Web experience

- [Web routes](https://github.com/a-dot614/ai-productivity/blob/main/routes/web.php): `routes/web.php`
- [Authentication](https://github.com/a-dot614/ai-productivity/tree/main/app/Http/Controllers/Auth): `app/Http/Controllers/Auth`

### Work management

- [Task screens](https://github.com/a-dot614/ai-productivity/tree/main/resources/views/tasks): `resources/views/tasks`
- [Task controller](https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/TaskController.php): `app/Http/Controllers/TaskController.php`
- [Task service](https://github.com/a-dot614/ai-productivity/blob/main/app/Services/Task/TaskService.php): `app/Services/Task/TaskService.php`
- [Task repository](https://github.com/a-dot614/ai-productivity/blob/main/app/Repositories/TaskRepository.php): `app/Repositories/TaskRepository.php`
- [Tasks and subtasks](https://github.com/a-dot614/ai-productivity/blob/main/app/Models/Task.php): `app/Models/Task.php`
- [Calendar](https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/CalendarController.php): `app/Http/Controllers/CalendarController.php`
- [Calendar events](https://github.com/a-dot614/ai-productivity/blob/main/app/Models/CalendarEvent.php): `app/Models/CalendarEvent.php`
- [Notes](https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/NoteController.php): `app/Http/Controllers/NoteController.php`
- [Note service](https://github.com/a-dot614/ai-productivity/blob/main/app/Services/Note/NoteService.php): `app/Services/Note/NoteService.php`
- [Notes](https://github.com/a-dot614/ai-productivity/blob/main/app/Models/Note.php): `app/Models/Note.php`

### AI assistance

- [AI assistant screens](https://github.com/a-dot614/ai-productivity/blob/main/resources/views/ai/index.blade.php): `resources/views/ai/index.blade.php`
- [AI assistant](https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/AIAssistantController.php): `app/Http/Controllers/AIAssistantController.php`
- [AI assistant service](https://github.com/a-dot614/ai-productivity/blob/main/app/Services/AI/AIAssistantService.php): `app/Services/AI/AIAssistantService.php`
- [AI providers](https://github.com/a-dot614/ai-productivity/blob/main/app/Services/AI/AIProviderFactory.php): `app/Services/AI/AIProviderFactory.php`
- **AI provider**
- [AI history](https://github.com/a-dot614/ai-productivity/blob/main/app/Models/AIHistory.php): `app/Models/AIHistory.php`

### Insights and reminders

- [Dashboard and analytics](https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/DashboardController.php): `app/Http/Controllers/DashboardController.php`
- [Productivity insights](https://github.com/a-dot614/ai-productivity/blob/main/app/Services/Productivity/ProductivityService.php): `app/Services/Productivity/ProductivityService.php`
- [Reminder processing](https://github.com/a-dot614/ai-productivity/blob/main/app/Console/Commands/ProcessReminders.php): `app/Console/Commands/ProcessReminders.php`
- [Reminder service](https://github.com/a-dot614/ai-productivity/blob/main/app/Services/Reminder/ReminderService.php): `app/Services/Reminder/ReminderService.php`
- [Notifications](https://github.com/a-dot614/ai-productivity/blob/main/app/Http/Controllers/NotificationController.php): `app/Http/Controllers/NotificationController.php`
- [Notifications](https://github.com/a-dot614/ai-productivity/blob/main/app/Models/Notification.php): `app/Models/Notification.php`

### Administration

- [Admin console](https://github.com/a-dot614/ai-productivity/tree/main/app/Http/Controllers/Admin): `app/Http/Controllers/Admin`
- [Users and settings](https://github.com/a-dot614/ai-productivity/blob/main/app/Models/User.php): `app/Models/User.php`

### Other components

- **User**
- **Administrator**

## Connections

- User → Web routes: sends requests
- Administrator → Web routes: sends requests
- Web routes → Authentication: dispatches
- Web routes → Task controller: dispatches
- Web routes → Calendar: dispatches
- Web routes → Notes: dispatches
- Web routes → AI assistant: dispatches
- Web routes → Dashboard and analytics: dispatches
- Web routes → Notifications: dispatches
- Web routes → Admin console: dispatches
- Task controller → Task service: calls
- Task controller → Task repository: queries
- Task controller → Tasks and subtasks: updates
- Task controller → Task screens: renders
- Task service → Task repository: uses
- Task repository → Tasks and subtasks: queries
- Calendar → Calendar events: manages
- Notes → Note service: calls
- Notes → Notes: accesses
- Note service → Notes: manages
- AI assistant → AI assistant service: calls
- AI assistant → Task service: updates tasks
- AI assistant → Note service: uses
- AI assistant → AI assistant screens: renders
- AI assistant service → AI providers: selects provider
- AI providers → AI provider: calls
- AI assistant service → AI history: records history
- Dashboard and analytics → Productivity insights: uses
- Reminder processing → Reminder service: processes
- Notifications → Notifications: manages
- Admin console → Users and settings: manages
