# septiawanajip/dewakoding-project-management architecture

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

- Interactive diagram: https://gitdiagram.com/septiawanajip/dewakoding-project-management
- Repository: https://github.com/septiawanajip/dewakoding-project-management

## Overview

DewaKoding Project Management is a Laravel/Filament application for project teams to organize projects, members, ticket workflows, and epics. The main workflow is to configure a project and its statuses, create and assign tickets, then track progress on boards and timelines while discussing work through comments. Separate product branches provide analytics, spreadsheet import/export, notifications, role administration, Google sign-in, and an external client portal. The map combines README capabilities with the available tree and sampled code; unsampled route and model wiring is intentionally not inferred.

Main entry points: [`app/Filament/Resources/Tickets/TicketResource.php`](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Tickets/TicketResource.php) (Ticket Management), [`app/Models/Project.php`](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Models/Project.php) (Projects And Members), [`app/Filament/Resources/TicketComments/TicketCommentResource.php`](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/TicketComments/TicketCommentResource.php) (Ticket Comments), [`app/Http/Controllers/Auth/GoogleController.php`](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Http/Controllers/Auth/GoogleController.php) (Google Sign-In)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_work["Project Work"]
  node_admin["Filament Admin"]
  node_project["Projects And Members<br/>[Project.php]"]
  node_workflow["Statuses And Epics"]
  node_tickets["Ticket Management<br/>[TicketResource.php]"]
  node_exchange["Ticket Import Export"]
end

subgraph group_insights["Tracking And Reports"]
  node_board["Kanban Board<br/>[ProjectBoard.php]"]
  node_timeline["Project Timelines"]
  node_analytics["Team Analytics<br/>[Leaderboard.php]"]
end

subgraph group_access["Access And Clients"]
  node_external["Client Portal"]
  node_login["Google Sign-In"]
  node_roles["Roles And Permissions<br/>[RoleResource.php]"]
  node_useradmin["User Administration<br/>[UserResource.php]"]
end

subgraph group_collab["Collaboration"]
  node_comments["Ticket Comments"]
  node_commentform["Comment Form"]
  node_notifications["Notifications"]
  node_notificationui["Notification Admin"]
  node_mail["Email Service"]
end

subgraph group_platform["Application Platform"]
  node_database[("Application Database")]
end

node_team(("Project Team"))
node_client(("Client"))
node_google["Google OAuth"]

node_team -->|"uses"| node_admin
node_admin -->|"manages"| node_project
node_project -->|"configures"| node_workflow
node_project -->|"organizes"| node_tickets
node_team -->|"creates and assigns"| node_tickets
node_tickets -->|"supports discussion"| node_comments
node_team -->|"submits comments"| node_commentform
node_commentform -->|"creates"| node_comments
node_comments -->|"triggers notices"| node_notifications
node_notifications -.->|"sends assignment email"| node_mail
node_team -->|"tracks work"| node_board
node_board -->|"displays progress"| node_tickets
node_team -->|"views schedule"| node_timeline
node_timeline -->|"visualizes dates"| node_tickets
node_team -->|"reviews contributions"| node_analytics
node_team -->|"imports or exports"| node_exchange
node_client -->|"views portal"| node_external
node_team -->|"signs in"| node_login
node_login -.->|"authenticates with"| node_google
node_team -->|"manages accounts"| node_useradmin
node_team -->|"configures access"| node_roles
node_project -->|"persists"| node_database
node_tickets -->|"persists"| node_database
node_comments -->|"persists"| node_database
node_notifications -->|"stores notices"| node_database
node_login -->|"looks up and saves users"| node_database
node_roles -->|"stores access rules"| node_database

click node_admin "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Projects/ProjectResource.php"
click node_project "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Models/Project.php"
click node_workflow "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Projects/RelationManagers/TicketStatusesRelationManager.php"
click node_tickets "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Tickets/TicketResource.php"
click node_comments "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/TicketComments/TicketCommentResource.php"
click node_commentform "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Livewire/TicketCommentForm.php"
click node_notifications "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Services/NotificationService.php"
click node_notificationui "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Notifications/NotificationResource.php"
click node_board "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Pages/ProjectBoard.php"
click node_timeline "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Pages/ProjectTimeline.php"
click node_analytics "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Pages/Leaderboard.php"
click node_exchange "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Projects/RelationManagers/TicketsRelationManager.php"
click node_external "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Livewire/ExternalDashboard.php"
click node_login "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Http/Controllers/Auth/GoogleController.php"
click node_roles "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Roles/RoleResource.php"
click node_useradmin "https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Users/UserResource.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_admin,node_project,node_workflow,node_tickets,node_exchange,node_client toneBlue
class node_board,node_timeline,node_analytics toneAmber
class node_external,node_login,node_roles,node_useradmin toneMint
class node_comments,node_commentform,node_notifications,node_notificationui,node_mail toneRose
class node_database,node_team,node_google toneIndigo
```

## Components

### Project Work

- [Filament Admin](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Projects/ProjectResource.php): `app/Filament/Resources/Projects/ProjectResource.php`
- [Projects And Members](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Models/Project.php): `app/Models/Project.php`
- [Statuses And Epics](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Projects/RelationManagers/TicketStatusesRelationManager.php): `app/Filament/Resources/Projects/RelationManagers/TicketStatusesRelationManager.php`
- [Ticket Management](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Tickets/TicketResource.php): `app/Filament/Resources/Tickets/TicketResource.php`
- [Ticket Import Export](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Projects/RelationManagers/TicketsRelationManager.php): `app/Filament/Resources/Projects/RelationManagers/TicketsRelationManager.php`

### Tracking And Reports

- [Kanban Board](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Pages/ProjectBoard.php): `app/Filament/Pages/ProjectBoard.php`
- [Project Timelines](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Pages/ProjectTimeline.php): `app/Filament/Pages/ProjectTimeline.php`
- [Team Analytics](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Pages/Leaderboard.php): `app/Filament/Pages/Leaderboard.php`

### Access And Clients

- [Client Portal](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Livewire/ExternalDashboard.php): `app/Livewire/ExternalDashboard.php`
- [Google Sign-In](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Http/Controllers/Auth/GoogleController.php): `app/Http/Controllers/Auth/GoogleController.php`
- [Roles And Permissions](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Roles/RoleResource.php): `app/Filament/Resources/Roles/RoleResource.php`
- [User Administration](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Users/UserResource.php): `app/Filament/Resources/Users/UserResource.php`

### Collaboration

- [Ticket Comments](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/TicketComments/TicketCommentResource.php): `app/Filament/Resources/TicketComments/TicketCommentResource.php`
- [Comment Form](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Livewire/TicketCommentForm.php): `app/Livewire/TicketCommentForm.php`
- [Notifications](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Services/NotificationService.php): `app/Services/NotificationService.php`
- [Notification Admin](https://github.com/septiawanajip/dewakoding-project-management/blob/main/app/Filament/Resources/Notifications/NotificationResource.php): `app/Filament/Resources/Notifications/NotificationResource.php`
- **Email Service**

### Application Platform

- **Application Database**

### Other components

- **Project Team**
- **Client**
- **Google OAuth**

## Connections

- Project Team → Filament Admin: uses
- Filament Admin → Projects And Members: manages
- Projects And Members → Statuses And Epics: configures
- Projects And Members → Ticket Management: organizes
- Project Team → Ticket Management: creates and assigns
- Ticket Management → Ticket Comments: supports discussion
- Project Team → Comment Form: submits comments
- Comment Form → Ticket Comments: creates
- Ticket Comments → Notifications: triggers notices
- Notifications → Email Service: sends assignment email
- Project Team → Kanban Board: tracks work
- Kanban Board → Ticket Management: displays progress
- Project Team → Project Timelines: views schedule
- Project Timelines → Ticket Management: visualizes dates
- Project Team → Team Analytics: reviews contributions
- Project Team → Ticket Import Export: imports or exports
- Client → Client Portal: views portal
- Project Team → Google Sign-In: signs in
- Google Sign-In → Google OAuth: authenticates with
- Project Team → User Administration: manages accounts
- Project Team → Roles And Permissions: configures access
- Projects And Members → Application Database: persists
- Ticket Management → Application Database: persists
- Ticket Comments → Application Database: persists
- Notifications → Application Database: stores notices
- Google Sign-In → Application Database: looks up and saves users
- Roles And Permissions → Application Database: stores access rules
