# keepcoolch/dropzonefileexplorer architecture

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

## Overview

Dropzone File Explorer is a self-hosted PHP file manager with a vanilla-JavaScript browser UI and filesystem storage, using JSON metadata rather than a database. Users sign in, browse folders, then upload, search, manage, preview or edit files; they can also create ZIPs and share files or folders. Admins can manage users and folder permissions. The sampled code shows the browser calling the PHP API and the API handling file operations; README capabilities whose implementation was not sampled are represented at the documented subsystem level, without asserting internal call sequences.

Main entry points: [`index.php`](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/index.php) (Explorer interface), [`inc/config.php`](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/config.php) (File storage), [`inc/functions.php`](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php) (Browse and search), [`js/main.js`](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/js/main.js) (Explorer interactions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_explore["Browse and manage"]
  node_ui["Explorer interface<br/>[index.php]"]
  node_client["Explorer interactions<br/>[main.js]"]
  node_browse["Browse and search<br/>[functions.php]"]
  node_fileops["File operations<br/>[functions.php]"]
end

subgraph group_transfer["Upload and archives"]
  node_upload["Chunked uploads<br/>[functions.php]"]
  node_archives["ZIP handling<br/>[functions.php]"]
end

subgraph group_share["Preview and sharing"]
  node_preview["Preview and editor<br/>[functions.php]"]
  node_sharing["Share links<br/>[functions.php]"]
end

subgraph group_access["Identity and access"]
  node_auth["Authentication<br/>[login.php]"]
  node_permissions["Folder permissions<br/>[functions.php]"]
end

node_user(("File manager user"))
node_visitor(("Share visitor"))
node_config["Runtime configuration<br/>[config.php]"]
node_files[("File storage<br/>[config.php]")]
node_metadata[("JSON metadata<br/>[config.php]")]

node_user -->|"uses"| node_ui
node_visitor -->|"opens share"| node_ui
node_ui -->|"loads"| node_client
node_client -->|"requests API"| node_ui
node_ui -->|"dispatches API"| node_browse
node_ui -->|"dispatches API"| node_fileops
node_ui -->|"dispatches API"| node_upload
node_ui -->|"dispatches API"| node_archives
node_ui -->|"dispatches API"| node_preview
node_ui -->|"dispatches API"| node_sharing
node_browse -->|"reads"| node_files
node_fileops -->|"reads/writes"| node_files
node_upload -->|"writes"| node_files
node_archives -->|"reads/writes"| node_files
node_preview -->|"reads/writes"| node_files
node_sharing -->|"reads"| node_files
node_sharing -->|"reads/writes"| node_metadata
node_browse -->|"checks access"| node_permissions
node_fileops -->|"checks access"| node_permissions
node_ui -->|"requires login"| node_auth
node_auth -->|"reads/writes"| node_metadata
node_ui -->|"loads settings"| node_config
node_browse -->|"uses paths"| node_config

click node_ui "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/index.php"
click node_client "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/js/main.js"
click node_browse "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php"
click node_fileops "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php"
click node_upload "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php"
click node_archives "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php"
click node_preview "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php"
click node_sharing "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php"
click node_auth "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/login.php"
click node_permissions "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php"
click node_config "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/config.php"
click node_files "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/config.php"
click node_metadata "https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/config.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_ui,node_client,node_browse,node_fileops,node_user toneBlue
class node_upload,node_archives,node_files,node_metadata toneAmber
class node_preview,node_sharing toneMint
class node_auth,node_permissions toneRose
class node_visitor toneIndigo
class node_config toneTeal
```

## Components

### Browse and manage

- [Explorer interface](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/index.php): `index.php`
- [Explorer interactions](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/js/main.js): `js/main.js`
- [Browse and search](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php): `inc/functions.php`
- [File operations](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php): `inc/functions.php`

### Upload and archives

- [Chunked uploads](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php): `inc/functions.php`
- [ZIP handling](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php): `inc/functions.php`

### Preview and sharing

- [Preview and editor](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php): `inc/functions.php`
- [Share links](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php): `inc/functions.php`

### Identity and access

- [Authentication](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/login.php): `login.php`
- [Folder permissions](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/functions.php): `inc/functions.php`

### Other components

- **File manager user**
- **Share visitor**
- [Runtime configuration](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/config.php): `inc/config.php`
- [File storage](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/config.php): `inc/config.php`
- [JSON metadata](https://github.com/keepcoolch/dropzonefileexplorer/blob/main/inc/config.php): `inc/config.php`

## Connections

- File manager user → Explorer interface: uses
- Share visitor → Explorer interface: opens share
- Explorer interface → Explorer interactions: loads
- Explorer interactions → Explorer interface: requests API
- Explorer interface → Browse and search: dispatches API
- Explorer interface → File operations: dispatches API
- Explorer interface → Chunked uploads: dispatches API
- Explorer interface → ZIP handling: dispatches API
- Explorer interface → Preview and editor: dispatches API
- Explorer interface → Share links: dispatches API
- Browse and search → File storage: reads
- File operations → File storage: reads/writes
- Chunked uploads → File storage: writes
- ZIP handling → File storage: reads/writes
- Preview and editor → File storage: reads/writes
- Share links → File storage: reads
- Share links → JSON metadata: reads/writes
- Browse and search → Folder permissions: checks access
- File operations → Folder permissions: checks access
- Explorer interface → Authentication: requires login
- Authentication → JSON metadata: reads/writes
- Explorer interface → Runtime configuration: loads settings
- Browse and search → Runtime configuration: uses paths
