How syamsuddin/my-cloud works
my-cloud is a Windows Explorer-style web client for an existing Nextcloud instance; Nextcloud remains the file, account, quota, and permission authority. The principal workflow is an employee signing in, browsing and manipulating files through the Explorer UI, and receiving results from the Laravel BFF. The graph includes documented sharing, favorites, trash, search, and editor capabilities. Sampled source confirms selected service/controller calls; unsampled wiring is represented only where supported by the README and file tree.
Main entry points: bff.php API routes · Dav.php WebDAV adapter · AuthService.php Authentication · Ocs.php OCS adapter
Components 29
Explorer interface
- Vue application
resources/js/app.js - Explorer page
resources/js/pages/ExplorerPage.vue - Explorer state
resources/js/stores/explorer.js - API client
resources/js/api/client.js
BFF API
- API routes
routes/bff.php - File endpoints
app/Http/Controllers/Api/FileController.php - Share endpoints
app/Http/Controllers/Api/ShareController.php - Auth endpoints
app/Http/Controllers/Api/AuthController.php - Upload endpoints
app/Http/Controllers/Api/UploadController.php - Download endpoints
app/Http/Controllers/Api/DownloadController.php - Trash endpoints
app/Http/Controllers/Api/TrashController.php - Search endpoints
app/Http/Controllers/Api/SearchController.php - Editor endpoints
app/Http/Controllers/Api/EditorController.php
File workflows
- File operations
app/Services/Files/FileService.php - Sharing and favorites
app/Services/Files/ShareService.php - Trash operations
app/Services/Files/TrashService.php - Recursive search
app/Services/Files/SearchService.php - Chunked uploads
app/Services/Nextcloud/ChunkedUpload.php - ZIP downloads
app/Services/Files/ZipStreamer.php - Editor integration
app/Services/Files/EditorService.php
Nextcloud access
- WebDAV adapter
app/Services/Nextcloud/Dav.php - OCS adapter
app/Services/Nextcloud/Ocs.php - Nextcloud client
app/Services/Nextcloud/NcClient.php
Identity and audit
- Authentication
app/Services/Auth/AuthService.php - Account records
app/Models/NcAccount.php - Audit logging
app/Services/Audit/AuditLogger.php - Audit records
app/Models/AuditLog.php
Other components
- Employee
- Nextcloud server
Connections 37
- Employee → Vue application: uses
- Vue application → Explorer page: renders
- Explorer page → Explorer state: updates state
- Explorer page → API client: requests data
- API client → API routes: sends API calls
- API routes → File endpoints: dispatches files
- API routes → Share endpoints: dispatches sharing
- API routes → Auth endpoints: dispatches login
- API routes → Upload endpoints: dispatches uploads
- API routes → Download endpoints: dispatches downloads
- API routes → Trash endpoints: dispatches trash
- API routes → Search endpoints: dispatches search
- API routes → Editor endpoints: dispatches editor
- File endpoints → File operations: calls
- File operations → WebDAV adapter: reads and writes
- Share endpoints → Sharing and favorites: calls
- Sharing and favorites → OCS adapter: manages shares
- Trash endpoints → Trash operations: calls
- Trash operations → WebDAV adapter: manages trash
- Search endpoints → Recursive search: calls
- Recursive search → WebDAV adapter: searches nodes
- Upload endpoints → Chunked uploads: calls
- Chunked uploads → WebDAV adapter: transfers chunks
- Download endpoints → WebDAV adapter: streams files
- Download endpoints → ZIP downloads: builds ZIP
- ZIP downloads → WebDAV adapter: reads files
- Editor endpoints → Editor integration: calls
- Editor integration → OCS adapter: opens editor
- WebDAV adapter → Nextcloud client: sends requests
- OCS adapter → Nextcloud client: sends requests
- Nextcloud client → Nextcloud server: WebDAV and OCS
- Auth endpoints → Authentication: calls
- Authentication → OCS adapter: authenticates
- Authentication → Account records: persists account
- Authentication → Audit logging: records login
- File operations → Audit logging: records actions
- Audit logging → Audit records: writes entries