changed 4 years ago
Linked with GitHub

20201022 功能討論

回MD首頁

資料庫Model

Login:私人資料,如密碼、FB_ID
Visual:公開資料,如nickname、fb link
Activation:forget時的驗證碼
Column:專欄照片
Recruitment:職缺
Rocommandation:履歷

目錄

  • 忘記密碼forget(範例)
  • 管理員系統Auth
  • 工作Career
  • 採訪專欄Column
  • 留學Study
  • validation

討論順序

  1. 列出各項目的子功能
  2. 流程(概述)
  3. api:input/output/url
  4. 前端UX
  5. 後端

Forget(範例)

  • 忘記密碼
    • 流程
      1. 填寫學號
      2. 寄信到信箱
    • api
      url:/api/forget
      input:{account}
      output:{email}或錯誤訊息
    • 前端
      <Input name="account"/>
    • 後端
      1. Visual.find({account})
      2. new Activation({account,active}).save
      3. sendmail(email,text)
      4. res.send({email})
  • 重設密碼
    • 流程
      1. 點連結進入更改密碼頁面
      2. 設新密碼
      3. 跳轉到/Login
    • api
      url:/api/resetPassword
      input:{account,active,password}
      output:成功/失敗
    • 前端
      <Label name="account"/>
      <Input name="password"/>
      <Input name="comfirmPassword"/>
    • 後端
      1. Activation.find({account,active})
      2. Login.update({account},{$set:{password}})
      3. Activation.deleteMany({account})
      4. res.end()

Auth

  • 優先度
    • 後端
      1. 新增/移除
      2. 註冊驗證
      3. 結合addColumn
      4. 結合Study
        標準
      5. 踢人
  • 顯示
    • 多一層auth大route+navbar
    • 跳轉按鈕放在in的首頁
  • 新增/移除管理員
    • 流程
      1. 學號搜尋
      2. 顯示帳號(名字、工作
      3. 按新增
      4. 回傳成功/失敗
    • api
      1. url:/api/findUser
        input:學號
        output:帳號資料
      2. url:/api/manageAuth
        input:學號,{setAuth:true/false}
        output:成功/失敗
    • 前端
      • url:/Auth/addOrDeleteAccount
      • 新增addAuth頁面
      • 內建搜尋
      • 新增管理員按鈕
    • 後端
      1. /api/findUser
        (1). users = Login.find()
        (2). return users
      2. /api/manageAuth
        (1). 在Login更新isAuth的boolean值成true/false
        (2). 回傳「成功」
  • 註冊驗證
    • 流程
      1. 有人註冊
      2. 管理員檢查
      3. accept/reject
    • api
      1. /api/showPending
        output:帳號們
      2. /api/handlePending
        input:{account,setUser:boolean}
        output:操作成功
    • 前端
      • url:/Auth/Pending
      • 新增Pending頁面
      • 顯示帳號們的資料
      • 新增接受/拒絕按鈕
    • 後端
      1. /api/showPending
        (1). 查找申請中的帳號們的資料
        (2). 回傳帳號們
      2. /api/rmPending (setUser:true/false)
        (1). 若accept
        a. 從Pending抓資料
        b. Login新增該帳號資料
        (2). 從Pending中刪除該筆資料
        (3). 跟申請者說成功
  • 踢人
    • 流程
      • 找到學號
      • 刪掉它
    • api
      1. /api/findUser
        input:{account}
        output:{profile}
      2. /api/deleteUser
        input:{account}
        output:成功/失敗
    • 前端
      • url:/Auth/addOrDeleteAccount
      • 一堆按鈕
      • 很多次alert
    • 後端
      • /api/deleteUser
        (1). 刪掉那筆資料
        (2). 確認
        (3). 回傳成功/失敗

Career

  • 詳細資料格式請看
    1. routes/Schemas/recruitment.js
    2. routes/Schemas/recommendation.js
  • 優先度:
    1.show
    2.add
    3.search
    4.delete(確認發布者
    標準線
    6.update
    7.favorite
    8.like
  • 顯示
    • 流程
    • api:
      • url:/api/showRecruitments
      • output:職缺們
      • url:/api/showRecommendations
      • output:簡歷們
    • 前端
    • 後端
      1. Recruitment/Recommandation.find()
      2. res.send({})
  • search
    • 流程:
      • 依照
        1.薪資
        2.能力
        3.地點(國外or國內,etc)
        4.發布者
        5.etc
    • /api/searchRecruitment
      • input:
      • output:工作們/職缺們
    • 前端
      • 點JobID = 在recruitment進行搜尋
    • 後端
  • 發布職缺
    • 被點Like可以浮起來(後端)
  • 我的最愛
    1. 新增「我的最愛」
    2. 跳轉,顯示「我的最愛」
    3. 移除「我的最愛」
    • api
      1. /api/addFavorRecruitment
        input:ID
        output:成功/失敗
      2. /api/showFavorRecruitment
        input:None
        output:最愛們
      3. /api/deleteFavorRecruitment
        input:ID
        output:成功/失敗
    • 前端
      • 記得增加recruitment的後端Id
    • 後端
      1. /api/addFavorRecruitment
        (1). Visual update {job:ID}
        (2). 回傳成功/失敗
      2. /api/showFavorRecruitments
        (1). 找到資料們
        (2). 傳給前端
      3. /api/deleteFavorRecruitment
        (1). 找到資料
        (2). 刪除該筆資料
        (3). Visual update {job:ID}
        (4). 回傳成功/失敗
  • 丟履歷
    • /api/addRecommendation
      input:職缺、技能、簡歷、聯絡資料
      output:回傳成功/失敗
    • 前端
      • 參考發布職缺
    • 後端
      • 把資料存到資料庫 (Recommendation)
      • 顯示成功/失敗

Career_new

  • 剩下recommandation,舊版見上方
  • 資料格式長這樣,
    • 請把experience和speciality改成[String] (array of strings)
    • 需添加account欄位
    • 需添加img欄位
    • 刪除id
  • 參考recruitment
  • 依序完成
    • add
    • show(all)
    • get(by session account)
    • update(by _id)
    • delete(by _id)
    • search(by 特定欄位)

Column

  • 優先度
    1. 顯示
    2. 發文
      標準線
    3. search
  • 顯示
    • 顯示所有column(多筆資料,每一筆的資訊較少)
      • 詳情請見client/src/in/column.js
      • filename (unique)
      • anno:[]
      • title:[]
      • exp:[]
      • edu:[]
      • intro:[]
      • id (unique)
    • 顯示單一column(單筆資料,資訊較多)
      • 詳情見client/src/in/column_text/column_XXXX.js
      • title:[]
      • hashtags:[]
      • sections:[{bigtitle,sections:[{title,section},]},]
      • annotation:[]
      • id (unique)
  • 管理員發文
    • 你想一下格式
  • search(hashtag)

Study

  • 優先度
    • 後端
      • 配對(照順序做,標準 3.學長姊
    • 前端
      1. 刻頁面,放靜態連結們
      2. 配對
  • 配對
    1. 管理員開啟活動
      • 設定發布時間
      • 兩個連結
    2. 學弟妹
      • 檢查時間
      • 顯示連結
    3. 學長姊
      • 檢查時間
      • 顯示連結
    4. 管理員配對(前端要告知使用者excel格式
      • excel & py 範例
      • 前端提供兩個excel
      • 後端呼叫python程式
      • 回傳一個excel給前端
    5. 配對結果
      • 前端給一個excel
      • 後端把excel處理過存到資料庫
      • 寄信?
    6. 結果顯示
      • 如果還沒完成配對 顯示null
      • 顯示配對到的學長姊/學弟妹
  • 心得分享(表單連結)
  • 心得分享(顯示)
  • 資源分享
    • 前端放連結
      1. 1
      2. 2
      3. 3

validation

  • chVisual(folder)
  • chPassword(folder)
  • registerFB(js)

還需要做的事(to君輔)

  • [done] 檔案的Errorhandler
  • registerFB
    • [give up] registerFB不貼file要可以過
  • [done] 新增超連結
  • 圖片傳輸:DCT(discrete cosine transform)

AbroadInfo

  • 顯示

    • 顯示所有abroadInfo
      • title (校名)
      • info (超連結)
      • icon (校徽)
  • 管理員發文

    • 後端
      1. /api/addAbroadInfo
        (1) 儲存新的資料
        (2) 回傳成功/失敗
  • 管理員更新

    • 後端
      1. /api/updateAbroadInfo
        (1) 找到id
        (2) 更新
        (3) 回傳成功/失敗

      可以考慮以delete+add替代

  • 管理員刪除

    • 後端
      1. /api/deleteAbroadInfo
        (1) 找到id
        (2) 刪除
        (3) 回傳成功/失敗

留學配對

  • 學長姊(senior)填資料/更改資料/拿資料/刪除
    • 後端
      1. /api/addSeniorInfo
        (1) 儲存新的資料
        (2) 回傳成功/失敗
      2. /api/updateSeniorInfo
        (1) 更新資料
        (2) 回傳成功/失敗
      3. /api/getSeniorInfo
        • 前端不會傳任何資料(資料在out/account/login.js line37-38裡)
          (1) 取得資料
          (2) 回傳資料
      4. /api/deleteSeniorInfo
        (1) 取得資料並刪除
        (2) 回傳成功/失敗
  • 學弟妹(junior)填資料/更改資料/拿資料/刪除
    • 後端
      1. /api/addJuniorInfo
        (1) 儲存新的資料
        (2) 回傳成功/失敗
      2. /api/updateJuniorInfo
        (1) 更新資料
        (2) 回傳成功/失敗
      3. /api/getJuniorInfo
        • 前端不會傳任何資料(資料在out/account/login.js line37-38裡)
          (1) 取得資料
          (2) 回傳資料
      4. /api/deleteJuniorInfo
        (1) 取得資料並刪除
        (2) 回傳成功/失敗
  • 學長姊今年可接受配對人數
    • 管理員開啟活動/設時間
      • /api/setActivity
        (1) 設定結束時間
        (2) 開啟活動
        (3) 回傳成功/失敗
    • 學長姊填人數
      • /api/updateSeniorLoad
        (1) 更新資料
        (2) 回傳成功/失敗
    • 管理員檢查資料(匯出excel)
      • 匯出excel可參考study/runMatch/matching.js line83-91
      • /api/authMakeExcel
        (1) 統整學弟妹資料 & 今年可接受學弟妹的學長姊資料
        (2) 製作出excel檔(senior.xlsx, junior.xlsx)
        (3) 確認是否有直接配對(人工處理例外)(code不含這部分)
    • 管理員配對(已有)
    • 管理員寄信(已有)
    • 管理員確認寄信成功後刪除「學長姊今年人數、學弟妹資料」
      • /api/authDeleteInfo
        • 學弟妹
          (1) 刪除
          (2) 回傳成功/失敗
        • 學長姐(存人數的資料庫 or 資料庫中存人數的部分)
          (1) 刪除
          (2) 回傳成功/失敗
Select a repo