---
# System prepended metadata

title: 整理 後端模組化 app-dashboard
tags: [v1]

---

---
title: 整理 後端模組化 app-dashboard
tags: v1
---
# 整理 後端模組化 app-dashboard

切成 LearningCurve / NFT / SmartIP 

# 想法 1
- 將各自的 app 依照區塊功能做拆分，一個區塊一個 function

![](https://i.imgur.com/2W47da0.jpg)
![](https://i.imgur.com/sEj0TwR.jpg)
![](https://i.imgur.com/W47Ay7e.jpg)

## 初步分離
- 將這三個 app 的資料邏輯切出去到 /models 下面
    - LearningCurveDashboard.js
    - NFTDashboard.js
    - SmartIPDashboard.js
- 每個下面在依據自己所需要的功能做撰寫
- ex: SmartIP Upload Manager , 寫在 `SmartIPDashboard.js` function `getIpfsList`
![](https://i.imgur.com/AaMLTmF.png)

## 遇到問題
- NFT 與 LearningCurve 的 badge card 與 Action Required 是在同一支程式做計算

![](https://i.imgur.com/Q28KNfB.png)


## 與 Wenkai 討論後作法
1. 將判斷是否登入切開
2. 以好維護為主，一個 function 做一件事
3. 整理給前端的資料




# 想法 2
再將 learningCurve 依照每個 tab 切成一個 function

- 寫一個 Class 叫 solution
- 依照不同的 solution 建立不同的 object
- 再去呼叫所需的 function
![](https://i.imgur.com/Z9WKKXr.jpg)

## 程式流程
`GET /my-apps/:fio_id`
```
new solution

let action = solution.get_action_required
let management = solution.get_user_management
let usage = solution.get_usage_data
let [actionList, manageList, usageData] = await Promise.all([actionList, management, usage])

```

