# jahidulsec/nev-event-management architecture

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

- Interactive diagram: https://gitdiagram.com/jahidulsec/nev-event-management
- Repository: https://github.com/jahidulsec/nev-event-management

## Overview

SWiFT is Nevian’s event-management web app. Users sign in, create event proposals with budget and attachments, and submit them for approval; approvers update status, while notifications and email communicate progress. Dashboard areas also manage event types and approvers, employees, products, doctors, permissions, and notifications. Event records and related data use the database; attachments also involve local files. The sampled event action confirms notification and email dispatch, but other route-to-feature wiring and persistence details are not fully visible in the excerpts.

Main entry points: [`features/event/actions/event.ts`](https://github.com/jahidulsec/nev-event-management/blob/main/features/event/actions/event.ts) (Event actions), [`config/db.ts`](https://github.com/jahidulsec/nev-event-management/blob/main/config/db.ts) (Application database), [`features/event/components/form.tsx`](https://github.com/jahidulsec/nev-event-management/blob/main/features/event/components/form.tsx) (Proposal form), [`features/auth/components/login-form.tsx`](https://github.com/jahidulsec/nev-event-management/blob/main/features/auth/components/login-form.tsx) (Login)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and dashboard"]
  node_login["Login<br/>[login-form.tsx]"]
  node_session["Session handling<br/>[session.ts]"]
  node_dashboard["Dashboard<br/>[page.tsx]"]
  node_notificationui["Notification list"]
end

subgraph group_events["Event lifecycle"]
  node_eventform["Proposal form<br/>[form.tsx]"]
  node_eventactions["Event actions<br/>[event.ts]"]
  node_approval["Approval workflow"]
  node_typeapprover["Type approvers<br/>[type-approver.ts]"]
  node_eventviews["Event views<br/>[page.tsx]"]
  node_eventpreview["Preview and print"]
  node_eventprint["Print output"]
end

subgraph group_admin["Reference management"]
  node_employees["Employee management<br/>[employee.ts]"]
  node_products["Product management<br/>[product.ts]"]
  node_doctors["Doctor management<br/>[doctor.ts]"]
  node_permissions["Permissions<br/>[page.tsx]"]
end

subgraph group_services["Persistence and messaging"]
  node_notification["Notifications<br/>[notification.ts]"]
  node_database[("Application database<br/>[db.ts]")]
  node_email["Email delivery<br/>[email.ts]"]
  node_files[("Attachment files<br/>[file.ts]")]
end

node_user(("Web user"))
node_mailer(("Mail provider"))

node_user -->|"opens"| node_login
node_login -->|"creates session"| node_session
node_user -->|"opens"| node_dashboard
node_user -->|"submits proposal"| node_eventform
node_eventform -->|"creates or updates"| node_eventactions
node_eventform -->|"loads event types"| node_database
node_eventactions -->|"reads and writes"| node_database
node_eventactions -->|"manages attachments"| node_files
node_eventactions -->|"dispatches notices"| node_notification
node_eventactions -->|"sends email"| node_email
node_notification -->|"stores notices"| node_database
node_email -.->|"delivers messages"| node_mailer
node_user -->|"views events"| node_eventviews
node_eventviews -->|"opens preview"| node_eventpreview
node_eventpreview -->|"renders print view"| node_eventprint
node_user -->|"checks notices"| node_notificationui
node_user -->|"maintains staff"| node_employees
node_user -->|"maintains products"| node_products
node_user -->|"maintains doctors"| node_doctors
node_user -->|"manages permissions"| node_permissions
node_user -->|"configures approvers"| node_typeapprover
node_approval -->|"updates approval state"| node_database

click node_login "https://github.com/jahidulsec/nev-event-management/blob/main/features/auth/components/login-form.tsx"
click node_session "https://github.com/jahidulsec/nev-event-management/blob/main/lib/session.ts"
click node_dashboard "https://github.com/jahidulsec/nev-event-management/blob/main/app/dashboard/page.tsx"
click node_eventform "https://github.com/jahidulsec/nev-event-management/blob/main/features/event/components/form.tsx"
click node_eventactions "https://github.com/jahidulsec/nev-event-management/blob/main/features/event/actions/event.ts"
click node_approval "https://github.com/jahidulsec/nev-event-management/blob/main/features/event/actions/consultant-approval.ts"
click node_typeapprover "https://github.com/jahidulsec/nev-event-management/blob/main/features/event/actions/type-approver.ts"
click node_eventviews "https://github.com/jahidulsec/nev-event-management/blob/main/app/dashboard/events/page.tsx"
click node_eventpreview "https://github.com/jahidulsec/nev-event-management/blob/main/features/event/components/preview/event-status-section.tsx"
click node_eventprint "https://github.com/jahidulsec/nev-event-management/blob/main/features/event/components/print/print-container.tsx"
click node_notification "https://github.com/jahidulsec/nev-event-management/blob/main/features/notifications/actions/notification.ts"
click node_notificationui "https://github.com/jahidulsec/nev-event-management/blob/main/features/notifications/components/shared/notification-list.tsx"
click node_employees "https://github.com/jahidulsec/nev-event-management/blob/main/features/employee/actions/employee.ts"
click node_products "https://github.com/jahidulsec/nev-event-management/blob/main/features/product/actions/product.ts"
click node_doctors "https://github.com/jahidulsec/nev-event-management/blob/main/features/doctor/actions/doctor.ts"
click node_permissions "https://github.com/jahidulsec/nev-event-management/blob/main/app/dashboard/permission/page.tsx"
click node_database "https://github.com/jahidulsec/nev-event-management/blob/main/config/db.ts"
click node_email "https://github.com/jahidulsec/nev-event-management/blob/main/services/email.ts"
click node_files "https://github.com/jahidulsec/nev-event-management/blob/main/utils/file.ts"

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_login,node_session,node_dashboard,node_notificationui,node_user toneBlue
class node_eventform,node_eventactions,node_approval,node_typeapprover,node_eventviews,node_eventpreview,node_eventprint toneAmber
class node_employees,node_products,node_doctors,node_permissions toneMint
class node_notification,node_database,node_email,node_files toneRose
class node_mailer toneIndigo
```

## Components

### Access and dashboard

- [Login](https://github.com/jahidulsec/nev-event-management/blob/main/features/auth/components/login-form.tsx): `features/auth/components/login-form.tsx`
- [Session handling](https://github.com/jahidulsec/nev-event-management/blob/main/lib/session.ts): `lib/session.ts`
- [Dashboard](https://github.com/jahidulsec/nev-event-management/blob/main/app/dashboard/page.tsx): `app/dashboard/page.tsx`
- [Notification list](https://github.com/jahidulsec/nev-event-management/blob/main/features/notifications/components/shared/notification-list.tsx): `features/notifications/components/shared/notification-list.tsx`

### Event lifecycle

- [Proposal form](https://github.com/jahidulsec/nev-event-management/blob/main/features/event/components/form.tsx): `features/event/components/form.tsx`
- [Event actions](https://github.com/jahidulsec/nev-event-management/blob/main/features/event/actions/event.ts): `features/event/actions/event.ts`
- [Approval workflow](https://github.com/jahidulsec/nev-event-management/blob/main/features/event/actions/consultant-approval.ts): `features/event/actions/consultant-approval.ts`
- [Type approvers](https://github.com/jahidulsec/nev-event-management/blob/main/features/event/actions/type-approver.ts): `features/event/actions/type-approver.ts`
- [Event views](https://github.com/jahidulsec/nev-event-management/blob/main/app/dashboard/events/page.tsx): `app/dashboard/events/page.tsx`
- [Preview and print](https://github.com/jahidulsec/nev-event-management/blob/main/features/event/components/preview/event-status-section.tsx): `features/event/components/preview/event-status-section.tsx`
- [Print output](https://github.com/jahidulsec/nev-event-management/blob/main/features/event/components/print/print-container.tsx): `features/event/components/print/print-container.tsx`

### Reference management

- [Employee management](https://github.com/jahidulsec/nev-event-management/blob/main/features/employee/actions/employee.ts): `features/employee/actions/employee.ts`
- [Product management](https://github.com/jahidulsec/nev-event-management/blob/main/features/product/actions/product.ts): `features/product/actions/product.ts`
- [Doctor management](https://github.com/jahidulsec/nev-event-management/blob/main/features/doctor/actions/doctor.ts): `features/doctor/actions/doctor.ts`
- [Permissions](https://github.com/jahidulsec/nev-event-management/blob/main/app/dashboard/permission/page.tsx): `app/dashboard/permission/page.tsx`

### Persistence and messaging

- [Notifications](https://github.com/jahidulsec/nev-event-management/blob/main/features/notifications/actions/notification.ts): `features/notifications/actions/notification.ts`
- [Application database](https://github.com/jahidulsec/nev-event-management/blob/main/config/db.ts): `config/db.ts`
- [Email delivery](https://github.com/jahidulsec/nev-event-management/blob/main/services/email.ts): `services/email.ts`
- [Attachment files](https://github.com/jahidulsec/nev-event-management/blob/main/utils/file.ts): `utils/file.ts`

### Other components

- **Web user**
- **Mail provider**

## Connections

- Web user → Login: opens
- Login → Session handling: creates session
- Web user → Dashboard: opens
- Web user → Proposal form: submits proposal
- Proposal form → Event actions: creates or updates
- Proposal form → Application database: loads event types
- Event actions → Application database: reads and writes
- Event actions → Attachment files: manages attachments
- Event actions → Notifications: dispatches notices
- Event actions → Email delivery: sends email
- Notifications → Application database: stores notices
- Email delivery → Mail provider: delivers messages
- Web user → Event views: views events
- Event views → Preview and print: opens preview
- Preview and print → Print output: renders print view
- Web user → Notification list: checks notices
- Web user → Employee management: maintains staff
- Web user → Product management: maintains products
- Web user → Doctor management: maintains doctors
- Web user → Permissions: manages permissions
- Web user → Type approvers: configures approvers
- Approval workflow → Application database: updates approval state
