Skip to content

Repository files navigation

T-Files 內部檔案管理系統

網站位置:https://tschool-student-files.yuchenglin1029.chatgpt.site

介紹

T-Files 是學生會內部使用的檔案管理系統,用來集中保存學生會的各種檔案、連結與資料夾。成員可以在系統中一同整理資料、搜尋內容、管理版本及設定共享權限,檔案擁有者與具有編輯權限的成員可以管理其他成員的檢視或編輯權限。

功能

帳號

  • 使用 Google 的帳號登入系統 (只接受@tschool.tp.edu.tw的信箱)
  • 可自訂顯示名稱
  • 登入狀態有效期限為 7 天
  • 使用者可手動登出
  • 系統可區分一般成員與管理員

管理員系統

目前系統可以區分一般成員與管理員,但管理員後台尚未建立

預計提供:

  • 查看及搜尋使用者
  • 審核新帳號
  • 啟用或停用帳號
  • 管理使用者角色
  • 查看系統操作紀錄
  • 處理違規或異常內容

管理員可以執行的檔案操作及限制,需在功能設計完成後補充

檔案管理

  • 點右下角加號上傳檔案
  • 可上傳任意檔案格式
  • 單一檔案大小上限為 100 MB
  • 檔案名稱為選填,不填則使用原始檔名
  • 可填寫檔案說明
  • 可一次選擇並上傳多個檔案
  • 選取檔案後,畫面左下角會顯示上傳確認清單
  • 在上傳確認清單中點選個別檔案,可以:
    • 修改檔案名稱
    • 填寫或修改檔案說明
    • 從待上傳清單移除檔案
    • 查看檔案的上傳目的地
    • 查看檔案目前的存取權
    • 查看上傳狀態
  • 上傳確認清單下方提供:
    • 加入檔案
    • 加入資料夾
    • 管理存取權
    • 確認上傳
  • 點選「加入資料夾」後,可以:
    • 勾選要設定的檔案
    • 全選目前可以設定的檔案
    • 選擇已建立的資料夾
    • 將檔案放在檔案庫最上層
    • 可分批選取檔案,將不同檔案設定到不同資料夾
  • 點選「管理存取權」後,可以:
    • 勾選要設定存取權的檔案
    • 全選目前可以設定的檔案
    • 對選取的檔案加入指定成員
    • 分別設定成員為可檢視或可編輯
    • 將一般存取權設為限制或所有已登入成員
    • 將設定套用至所有選取的檔案
  • 上傳確認清單可繼續加入其他檔案
  • 上傳確認清單可收合或展開
  • 系統會依序處理清單中的檔案
  • 系統會顯示:
    • 待確認
    • 上傳中
    • 上傳完成
    • 上傳失敗
    • 結果待確認
  • 上傳期間如果發生連線中斷,會提醒使用者重新整理並確認結果,避免重複上傳
  • 上傳完成後可以修改檔案名稱及說明
  • 具有編輯權限的成員可以替換已上傳的檔案
  • 可以下載目前版本的檔案
  • 系統會依照檔案格式顯示 PDF、JPG、PNG、CSV、ZIP 等類型
  • 檔案清單會顯示檔案容量
  • 點選檔案可以查看:
    • 檔案名稱
    • 檔案說明
    • 擁有者
    • 建立時間
    • 最近更新時間
    • 目前版本
  • 具有編輯權限的成員可以:
    • 修改檔案名稱
    • 修改檔案說明
    • 替換檔案
    • 移動檔案
    • 管理存取權
    • 將檔案移到垃圾桶
    • 查看及還原版本紀錄
  • 檔案存取權分為:
    • 擁有者
    • 可編輯
    • 可檢視
  • 一般存取權分為:
    • 限制
    • 所有已登入成員
  • 設定為「限制」時:
    • 只有擁有者和指定成員可以開啟
    • 所在資料夾授予的權限仍會繼承
    • 其他已登入成員仍可在清單看到基本資料
    • 沒有存取權的成員不能開啟或下載
  • 設定為「所有已登入成員」時:
    • 所有已登入的學校成員都可以檢視
    • 指定成員仍會保留原本設定的編輯權限
  • 指定成員時:
    • 可使用學校信箱或顯示名稱搜尋
    • 只能加入已登入過系統的學校成員
    • 可設定為可檢視或可編輯
    • 可移除已加入的成員
  • 可編輯的成員可修改、移動、刪除及管理存取權
  • 擁有者固定保有完整權限
  • 分享網址本身不會授予存取權
  • 取得分享網址的使用者仍須登入,並且本身具有存取權
  • 可以勾選單一或多個項目
  • 可以全選目前清單中的項目
  • 選取項目後可以:
    • 下載 ZIP
    • 刪除
    • 移動
    • 共享
  • 垃圾桶內選取項目後可以:
    • 批次還原
    • 批次永久刪除
  • 批次操作會分別顯示每個項目的成功或失敗結果
  • 檔案、連結及資料夾都會保存版本紀錄
  • 版本紀錄包含:
    • 版本編號
    • 操作類型
    • 建立時間
    • 目前版本標示
    • 檔案版本的檔案容量
  • 具有編輯權限的成員可以:
    • 查看版本紀錄
    • 下載指定的檔案版本
    • 還原指定版本
  • 還原舊版本時會建立一個新版本,不會刪除原本的版本紀錄

連結管理

  • 點右下角加號新增連結
  • 網址只接受 httphttps
  • 可設定連結名稱和說明
  • 具有存取權的成員可以開啟連結
  • 沒有存取權的成員不會看到完整網址
  • 擁有編輯權限的成員可修改:
    • 連結名稱
    • 連結說明
    • 連結網址
  • 點選連結可查看:
    • 連結名稱
    • 連結說明
    • 擁有者
    • 建立時間
    • 最近更新時間
    • 目前版本
  • 具有編輯權限的成員可以:
    • 編輯連結
    • 查看及還原版本紀錄
    • 移動連結
    • 管理存取權
    • 將連結移到垃圾桶

資料夾管理

  • 點右下角加號新增資料夾
  • 可在資料夾內:
    • 上傳檔案
    • 發表連結
    • 建立子資料夾
  • 可返回上一層
  • 可將檔案、連結或資料夾移到其他資料夾
  • 可將內容移回檔案庫最上層
  • 資料夾不能移到自己或自己的子資料夾內
  • 只有具有目的地資料夾編輯權限的成員才能將內容移入
  • 資料夾的存取權會套用至資料夾內的內容
  • 具有編輯權限的成員可以在資料夾內建立及管理內容

搜尋

  • 可搜尋檔案、連結與資料夾
  • 可依照名稱搜尋
  • 可依照說明搜尋
  • 可搜尋不同資料夾內的檔案及連結
  • 搜尋不會改變原本的存取權
  • 沒有存取權的內容只會顯示基本資料

檔案庫

全部

  • 顯示系統中尚未刪除的檔案、連結與資料夾
  • 所有已登入成員都可以看見項目的基本資料
  • 沒有存取權的項目會顯示「限制存取」
  • 沒有存取權的成員不能開啟、下載或修改內容
  • 可以逐層進入具有存取權的資料夾
  • 資料夾會排列在檔案及連結之前

檔案專區

  • 只顯示檔案
  • 顯示所有資料夾中的檔案
  • 不需要逐一進入資料夾尋找檔案
  • 沒有存取權的檔案只會顯示基本資料

連結專區

  • 只顯示連結
  • 顯示所有資料夾中的連結
  • 不需要逐一進入資料夾尋找連結
  • 沒有存取權的連結不會顯示完整網址

我的上傳紀錄

  • 顯示目前帳號建立的內容
  • 包含檔案、連結及資料夾

垃圾桶

  • 顯示自己擁有或具有編輯權限的已刪除項目
  • 具有編輯權限的成員可以還原內容
  • 具有編輯權限的成員可以永久刪除內容
  • 永久刪除會一併移除檔案內容、版本紀錄及共享設定
  • 永久刪除後無法還原

專案目錄

路徑 用途
cloud/ 正式網站目前使用的雲端版程式
cloud/app/ 網頁頁面、使用者介面及 API
cloud/lib/ 帳號、權限、寄信、密碼及 ZIP 等共用功能
cloud/db/ 雲端版資料庫結構
cloud/drizzle/ D1 資料庫遷移檔案
cloud/scripts/ 雲端版測試程式及測試清單
src/ 專案早期的 Express 本機版程式
test/ Express 本機版測試
scripts/ 本機測試及開發工具
SECURITY.md 系統資安政策及上線前檢查事項
cloud/README.md 雲端版本的環境設定及測試說明
docs/部署與維護手冊.md Debian、PostgreSQL、Nginx、PM2、Cloudflare 與 SMTP 的部署及維護說明

正式網站使用 cloud/ 版本。修改正式網站功能時,應以 cloud/ 內的程式為主。

本機開發

前置需求

  • Git
  • Node.js 22.13 或更新版本
  • npm

下載專案

git clone https://github.com/tschoolsu/852.git
cd 852/cloud

安裝套件

npm ci

設定環境變數

向專案維護者取得開發環境使用的 .dev.vars,並放入 cloud/ 資料夾。

.dev.vars 可能包含登入及工作階段所需的設定,不得提交到 GitHub。環境變數的用途請參考 cloud/README.md

啟動開發網站

npm run dev

第一次建立完整的本機 D1 測試環境時執行:

npm run build
npx wrangler d1 migrations apply site-creator-d1 --local --config dist/server/wrangler.json
npm start

執行測試

npm run lint
npm run build
npm run test:access
npm run test:auth
npm audit --omit=dev

測試使用本機 D1 及 R2,不會修改正式網站的帳號、檔案或資料庫。

About

內部檔案管理器

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages