Git Product home page Git Product logo

camera-trap-webapp's Introduction

camera-trap-webapp

Branching strategy

  1. master: main development branch. No CI workflow connected.
  2. dev: connedted to dev CI workflow. Will merge into uat when ready for User Acceptance Testing.
  3. dev-[personID]: personal working branch. Only the creator can commit to this branch. Will merge into dev when complete. Should be deleted once merged into dev.
  4. feature-[featureID]: feature working branch. Will merge into dev when complete. Should be deleted once merged into dev.
  5. issue-[issueID]: issue working branch. Will merge into dev when complete. Should be deleted once merged into dev.
  6. uat: user acceptance testing branch. Will merge into prod when ready.
  7. prod: production version.

lint 及 autoformat 規則

開發環境為 vscode 基本設定都加入在 .vscode 需安裝以下套件

  • vetur
  • prettier

Develop

  • run npm run serve

Generate icon sprite

  • save icon to /assets/icons and /assets/icons-2x
  • compass compile

Build

  • run npm run build

Setting

vue.config.js

pages

  • Split function & routes by page

css

  • use compass

devServer

  • set server port 3000

Folders

pages

  • Add folder by vue.config.js setting

SASS

  • global styles in app.sass
  • Use individual sass file by every page
  • import bootstrap variables, mixins, functions, utilities and grid

camera-trap-webapp's People

Contributors

trashmai avatar oahehc avatar diabloevagto avatar kelp404 avatar ajanelson avatar rwu823 avatar moogoo78 avatar soysen avatar

Stargazers

許守傑 Shou-Chieh Hsu (Jason) avatar

Watchers

 avatar  avatar Chihjen Ko avatar James Cloos avatar  avatar  avatar tinym avatar Ai-Lin Liou avatar

camera-trap-webapp's Issues

3.1 計畫管理

  • 3.1.1 檢查登入人員權限,若為計畫管理員,則顯示「計畫管理」按鈕
  • 3.1.1 點選「計畫管理」帶入 3.1.2,載入目前計畫基本資訊
  • 修正資料 and/or 上傳封面照片後,點選「儲存設定」後存檔
  • 目前使用 projectTitle mapping, 應改用 project id, 待 API response 加入對應資料
  • edit route 改用 project id, 待 API response 加入對應資料
  • managerRoles 範圍待確認

Related to TaiBIF/camera-trap-api#12
Related to #13

3.2 計畫管理(編輯設定)

  • 3.2.1 檢查登入人員權限,若為「計畫管理員」則顯示「+新增欄位」
    • /ctp-user/me 可拿到
    • API will run access control and check project_roles.roles: ProjectInitiator & ProjectManager
  • 3.2.2 (b) 可調順序 (d) 可刪除欄位
  • 點選「申請新增欄位」後帶出 3.2.3 對話框
  • 3.2.3 輸入格式若為下拉選單則必須建立選單項目,無則顯示錯誤提示
  • 按下確定送出新增欄位 JSON 說明請見 #21
  • 根據回傳結果使用 src/pages/index/components/DialogUI.vue 通知使用者
  • 範本下載
  • 相機異常檢測,每日測試照片拍攝時間

2.6 - 2.9 影像回收/辨識狀況

  • 樣區切換顯示回收狀況
  • 2.6.2 帶入子樣區的回收狀況
  • 2.6.3 帶入某相機位置的回收狀況
  • 2.6.4 帶入某一相機位置的該月回收資料

2.11.2 已辨識物種

  • 顯示共幾種已辨識物種
  • 顯後最後更新時間
  • 將數據接至圓餅圖呈現
  • 顯示已辨識物種名稱及其百分比

4.2 資料篩選區塊

  • 點選篩選區項目會連動資料呈現區塊
  • 點選下載結果能按篩選條件下載資料(csv)
  • 有其他人正在編輯的相機位置呈現鎖定狀態
  • 滑入鎖定圖示可知目前正由誰編輯
  • 勾選的相機位置有人編輯則不能進入編輯模式
  • 所有相機位置正有人編輯 側邊欄會顯示鎖定圖示
  • 在使用者端每30分鐘更新一次圖鎖狀態

4.1.3 (4) 版本紀錄功能定義

目前 api 設定每一個欄位都是一筆資料,個別資料都會有自己的版本紀錄,類似圖片
造成的現象就是如果使用者隨意在欄位上選取版本紀錄會跟著一直修改,這個是呈現問題

另外版本還原的功能也是一樣的問題,使用者選取一次只會修改一筆資料

4.18 滑入提示

  • 鎖定之相機位置滑入時顯示正在編輯中的他人
  • 滑入物種名稱時會顯示學名

2.4.3 計畫首頁

  • (1) 取得計畫處站資料,提供左欄操作
  • (2) 取得計畫詮釋資料
  • (3) 取得樣站坐標,提供地圖顯示 (3) project/[projectId]
  • (3) 取得相機位置坐標,提供地圖 zoom in 顯示
  • (3) 取得各處數據資料,提供長條圖顯示

pages/index 切版及介接前變數處理

├── index

  • │   ├── App.vue
    │   ├── components
  • │   │   ├── CloseWindowDialog.vue
  • │   │   ├── DeleteColumnDialog.vue
  • │   │   ├── EditNav.vue
  • │   │   ├── InvitationDialog.vue
  • │   │   ├── LightBox.vue
  • │   │   ├── NewColumn.vue
  • │   │   ├── RemoveMemberDialog.vue
  • │   │   ├── ReportModal.vue
  • │   │   ├── SiteChart.vue
  • │   │   ├── SiteItem.vue
  • │   │   ├── SiteMenu.vue
  • │   │   ├── SpeciesOrder.vue
  • │   │   ├── TokenRenderer.vue
  • │   │   ├── TreeItem.vue
  • │   │   ├── TreeMenu.vue
  • │   │   └── ZoomDrag.vue
    │   ├── main.js
    │   ├── router.js
    │   └── views
  • │   ├── CreateProject.vue
  • │   ├── EditCamera.vue
  • │   ├── EditColumn.vue
  • │   ├── EditInfo.vue
  • │   ├── EditLicense.vue
  • │   ├── EditMember.vue
  • │   ├── MemberDescription.vue
  • │   ├── Overview.vue
  • │   ├── PhotoTag.vue
  • │   ├── Project.vue
  • │   └── Site.vue

2.8.1 影像回收/辨識狀況

  • b. 顯示相機位置的詮釋資料
  • c. 以月為單位,顯示每個月回收的影像筆數
  • d. 點擊月份長條得到提示筆數、最新上傳日及是否有異常情況

4.3 編輯模式

  • 顯示 a 資料編輯範圍
  • 顯示 b 最後儲存時間
  • 點選 c 儲存資料
  • 點選 d 關閉編輯模式
  • 使用者關閉網站跳出詢問 pop up
  • 30 分鐘自動存檔跳出
  • 自動跳出後說明對話框

5.3 5.4 上傳流程

  • 5.4.2 create an upload session
  • 上傳路徑組合規則:@trashmai in path at AWS S3
  • file tag includes: projectId, projectTitle, site, subSite, cameraLocation, user_id
    2018-11-27 因應 project data model 異動,新增上傳時要加入的 tag: projectId
  • upload progress display
  • capture upload status (i.e. success, failed, percentage, waiting, cancelled)
  • when finished, update action link to the right. (查看、取消、檢視錯誤)

參考:

  1. 取得 credentials 上傳 S3 的做法
  2. Upload files Securely to AWS S3 Directly from Browser

4.20 進階標註

  • 點選 (1) 返回資料編輯
  • 在 (a) (b) 進階及關聯標註時在 unit 欄按 "tab" 新增一行,在 label 欄按 "backspace" 刪除上一行
  • focusout 存檔
  • 點選「查看物種標註關聯圖」跳至 WF 右下頁面(暫無模版)

4.17 錯誤提示

  • 編輯中資料檢核
  • 物種不在預設中
  • 1 選取狀態
  • a 側邊目錄錯誤提示
  • b 相機位置錯誤提示
  • c 編輯模式錯誤提示

1.1 登入註冊

  • 1.1.1 點取 (1)「使用 ORCID 帳號登入」跳接 1.1.2 ORCID.org 的登入畫面
  • 1.1.2 點取 Sign into ORCID 完成登入,跳接 1.1.3 授權頁
  • 1.1.3 確定後進入登入首頁 2.1.1
  • 1.1.1 點取 (2) 開啟 ORCID 的註冊頁面
  • 1.1.1 點取 (3) 顯示隱私權保䕶政策 12.3

route 設定錯誤

route 錯誤點擊上方導航列的連結底下是空白頁面
其中有幾個部分需要確認是否需要修正

  1. 導航列設定跳轉連結錯誤
  2. 修正 route 讓頁面可以正確顯示
  3. 有些 route 是 hash 有些是 history
  4. page/demo 是否有使用到?如沒有請刪除

ref: #4

4.19 進階標註

  • 4.19.1 按「進階標註」進入 4.19.2
  • 4.19.2 按「建立標註範圍」可操作全選畫面、取消選取及建立選取範圍
  • 4.19.3 按「建立選取範圍」即帶出 4.19.4
  • 4.19.4 輸入資料 focusout 時即存檔

4.1 進入資料編輯

  • 4.1.2 點取子樣區連到資料編輯檢視
  • 4.1.3 呈現(1)資料篩選區塊
  • 4.1.3 呈現(2)資料呈現區塊並載入資料
  • 4.1.3 呈現(3)影像檢視區塊
  • 4.1.3 資料呈現部分,部分單一檔案會包括 N 個 tokens (N>1),要以 N 筆資料呈現。
  • 4.1.3 資料僅呈現必要欄位 (樣區、相機位置、檔名、時間、物種) 與計畫中已啟用的自訂欄位 (參考 API 文件中 /project/data-fields 回傳值中的 fieldDetails)
  • 4.1.3 呈現(4)版本紀錄

2.1.3 點取「新增計畫」送出表單資料

送出表單資料,包含:

  • 計畫名稱
  • 計畫簡稱(限定四字」
  • 委辦單位
  • 計畫編號
  • 計畫主持人
  • 計畫時間
  • 計畫地區
  • 計畫摘要
  • 備註
  • 計畫封面
  • 詮釋資料
  • 鑑定資訊
  • 影像資料
  • 公開日期
  • 在 2.1.4 呈現新建計畫牌卡,或新建計畫在總覽頁呈現
  • 輸入欄位的必填及預設需處理

pages/upload 切版及介接前變數處理

└── upload

  • ├── App.vue
    ├── components
  • │ └── TrialModal.vue
    ├── main.js
    ├── mixins
    │ └── aws.js
    ├── router.js
    └── views
  • └── Upload.vue

2.10.1 相機異常回報

  • 取得樣區、子樣區值,並預設選定
  • 取得相機位置列表,供選擇
  • 按「確定」送出 6 個欄位值
  • 缺少 UI 部分驗證使用者是否有輸入資料

API WF 2.10

pages/search 切版及介接前變數處理

├── search

  • │   ├── App.vue
    │   ├── components
  • │   │   └── TrialModal.vue
    │   ├── main.js
    │   ├── mixins
    │   │   └── aws.js
    │   ├── router.js
    │   └── views
  • │   ├── CalculateResult.vue
  • │   ├── Search.vue
  • │   └── SearchResult.vue

page/article 切版及介接前變數處理

├── article

  • │   ├── App.vue
    │   ├── main.js
    │   ├── router.js
    │   └── views
  • │   ├── Article.vue
  • │   ├── Contact.vue
  • │   └── FAQ.vue

4.5 編輯模式(表單欄位)

  • a 樣區 顯示該筆資料的樣區,若有子樣區,會以「樣區-子樣區」的格示顯示
  • b 相機位置 顯示該筆資料的相機位置
  • c 檔名 每筆資料的檔名,會帶副檔名,檔名太長名稱中間會以...顯示
  • d 每筆資料的時間。 在編輯模式下,只選擇⼀一個樣機位置的狀況,提供「連拍⾃自動補⿑齊的功能」,此時若該欄欄位剛好在連拍時間內,時間欄欄位會出現灰⾊色區塊的提示(此為系統⾃自動判斷,若若為連拍則呈現灰⾊色區塊。)
  • e 顯示物種名稱
  • f 使⽤者點選「+」新增欄位,會連到「計畫管理的欄位設定」 related with 3.2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.