# ramanovaris/profile-ifk architecture

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

## Overview

This is a public information website for UPTD Instalasi Farmasi Kabupaten Kotabaru, with a lightweight admin interface for managing news and users. Visitors can browse institutional information, service guidance, contact details, and published news; administrators can access dashboard, profile, news, and user pages. Sampled code shows news and user data are dummy records, and article submission only displays a message and navigates back—no persistence or authentication workflow is evidenced. The README describes only the Next.js starter; unsampled route implementations are represented by their exact tree paths, without inferred wiring.

Main entry points: [`src/app/(public)/page.tsx`](https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/page.tsx) (Home), [`src/lib/dummy-data.ts`](https://github.com/ramanovaris/profile-ifk/blob/main/src/lib/dummy-data.ts) (Dummy articles), [`src/app/(public)/kontak/page.tsx`](https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/kontak/page.tsx) (Contact information), [`src/app/(public)/berita/page.tsx`](https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/berita/page.tsx) (News listing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public information"]
  node_home["Home<br/>[page.tsx]"]
  node_profile["Institution profile<br/>[page.tsx]"]
  node_services["Service guidance<br/>[page.tsx]"]
  node_contact["Contact information<br/>[page.tsx]"]
end

subgraph group_news["News publishing"]
  node_news_list["News listing<br/>[page.tsx]"]
  node_news_detail["News detail<br/>[page.tsx]"]
end

subgraph group_admin["Admin interface"]
  node_admin_pages["Admin pages"]
  node_admin_news["News management"]
  node_admin_users["User management"]
  node_article_form["Article form<br/>[article-form.tsx]"]
end

subgraph group_data["Static data"]
  node_site_data["Site configuration<br/>[dummy-data.ts]"]
  node_article_data["Dummy articles<br/>[dummy-data.ts]"]
  node_user_data["Dummy users<br/>[dummy-data.ts]"]
end

node_visitor(("Visitor"))
node_administrator(("Administrator"))

node_visitor -->|"opens"| node_home
node_visitor -->|"opens"| node_profile
node_visitor -->|"opens"| node_services
node_visitor -->|"opens"| node_contact
node_visitor -->|"opens"| node_news_list
node_visitor -->|"opens"| node_news_detail
node_administrator -->|"opens"| node_admin_pages
node_administrator -->|"opens"| node_admin_news
node_administrator -->|"opens"| node_admin_users
node_home -->|"filters published"| node_article_data
node_home -->|"reads config"| node_site_data
node_news_list -->|"filters articles"| node_article_data
node_news_detail -->|"reads article"| node_article_data
node_contact -->|"reads config"| node_site_data
node_admin_users -->|"reads users"| node_user_data
node_admin_news -->|"uses form"| node_article_form

click node_home "https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/page.tsx"
click node_profile "https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/profil/page.tsx"
click node_services "https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/layanan/page.tsx"
click node_contact "https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/kontak/page.tsx"
click node_news_list "https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/berita/page.tsx"
click node_news_detail "https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/berita/%5Bslug%5D/page.tsx"
click node_admin_pages "https://github.com/ramanovaris/profile-ifk/tree/main/src/app/(admin)/admin"
click node_admin_news "https://github.com/ramanovaris/profile-ifk/tree/main/src/app/(admin)/admin/berita"
click node_admin_users "https://github.com/ramanovaris/profile-ifk/tree/main/src/app/(admin)/admin/pengguna"
click node_article_form "https://github.com/ramanovaris/profile-ifk/blob/main/src/components/admin/article-form.tsx"
click node_site_data "https://github.com/ramanovaris/profile-ifk/blob/main/src/lib/dummy-data.ts"
click node_article_data "https://github.com/ramanovaris/profile-ifk/blob/main/src/lib/dummy-data.ts"
click node_user_data "https://github.com/ramanovaris/profile-ifk/blob/main/src/lib/dummy-data.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_home,node_profile,node_services,node_contact toneBlue
class node_news_list,node_news_detail toneAmber
class node_admin_pages,node_admin_news,node_admin_users,node_article_form toneMint
class node_site_data,node_article_data,node_user_data toneRose
class node_visitor,node_administrator toneIndigo
```

## Components

### Public information

- [Home](https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/page.tsx): `src/app/(public)/page.tsx`
- [Institution profile](https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/profil/page.tsx): `src/app/(public)/profil/page.tsx`
- [Service guidance](https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/layanan/page.tsx): `src/app/(public)/layanan/page.tsx`
- [Contact information](https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/kontak/page.tsx): `src/app/(public)/kontak/page.tsx`

### News publishing

- [News listing](https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/berita/page.tsx): `src/app/(public)/berita/page.tsx`
- [News detail](https://github.com/ramanovaris/profile-ifk/blob/main/src/app/(public)/berita/%5Bslug%5D/page.tsx): `src/app/(public)/berita/[slug]/page.tsx`

### Admin interface

- [Admin pages](https://github.com/ramanovaris/profile-ifk/tree/main/src/app/(admin)/admin): `src/app/(admin)/admin`
- [News management](https://github.com/ramanovaris/profile-ifk/tree/main/src/app/(admin)/admin/berita): `src/app/(admin)/admin/berita`
- [User management](https://github.com/ramanovaris/profile-ifk/tree/main/src/app/(admin)/admin/pengguna): `src/app/(admin)/admin/pengguna`
- [Article form](https://github.com/ramanovaris/profile-ifk/blob/main/src/components/admin/article-form.tsx): `src/components/admin/article-form.tsx`

### Static data

- [Site configuration](https://github.com/ramanovaris/profile-ifk/blob/main/src/lib/dummy-data.ts): `src/lib/dummy-data.ts`
- [Dummy articles](https://github.com/ramanovaris/profile-ifk/blob/main/src/lib/dummy-data.ts): `src/lib/dummy-data.ts`
- [Dummy users](https://github.com/ramanovaris/profile-ifk/blob/main/src/lib/dummy-data.ts): `src/lib/dummy-data.ts`

### Other components

- **Visitor**
- **Administrator**

## Connections

- Visitor → Home: opens
- Visitor → Institution profile: opens
- Visitor → Service guidance: opens
- Visitor → Contact information: opens
- Visitor → News listing: opens
- Visitor → News detail: opens
- Administrator → Admin pages: opens
- Administrator → News management: opens
- Administrator → User management: opens
- Home → Dummy articles: filters published
- Home → Site configuration: reads config
- News listing → Dummy articles: filters articles
- News detail → Dummy articles: reads article
- Contact information → Site configuration: reads config
- User management → Dummy users: reads users
- News management → Article form: uses form
