---
# System prepended metadata

title: Project Template

---

# Project Template

## Frontend
- [x] Vue Cli 
- [x] Vue.js 3
- [x] Typescript
- [x] ESLint
> 需要確認 base 後，再調整成要使用的規則, ex. [standard](https://standardjs.com/readme-zhtw.html) , [airbnb](https://github.com/airbnb/javascript)
- [x] [Vue Auto Routing](https://github.com/ktsn/vue-auto-routing)
> 詳細路由規範請參考 [nuxtjs](https://nuxtjs.org/docs/2.x/get-started/routing)
- [x] [Vue Auto Layout](https://github.com/ktsn/vue-router-layout)
- [x] [Vue i18n](https://kazupon.github.io/vue-i18n/zh/)
> 語言代碼目前暫時使用 ISO639-1 及 ISO 3166-1 的組合作為語言代碼 ex. en-us, zh-tw
> https://zh.wikipedia.org/wiki/IETF%E8%AA%9E%E8%A8%80%E6%A8%99%E7%B1%A4
- [ ] [Vuex](https://next.vuex.vuejs.org/) & [Connect](https://github.com/ktsn/vuex-connect)
- [ ] E2E
> 使用工具? [Cypress](https://www.cypress.io/) or [Nightwatch](https://nightwatchjs.org/)?
- [ ] UI & Layout
- [ ] 根據 Route 資料生成 Menu 及 Breadcrumb, 建立限制訪問的判斷機制 (Based on Route meta)
- [ ] 與 Visual Studio 整合 (合併一個Backend空白專案後同時啟動)
- [ ] 錯誤追蹤: Application Insight, CI時 [上傳SourceMap到Azure](https://docs.microsoft.com/en-us/azure/azure-monitor/app/source-map-support)
- [ ] Backend 整合 appsettings.json, web.config, Feature Management 至 Frontend
- [ ] Frontend Dockerfile (Nginx or IIS)
> 容器內編譯? (會有內網無法取得 npm 套件問題)
> 容器外編譯? (編譯環境無法隔離)


## Backend
- [ ] [App Metrics](https://www.app-metrics.io/), [HealthChecks](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks), [Net Core Health Check](https://docs.microsoft.com/zh-tw/aspnet/core/host-and-deploy/health-checks)


## Workflow
- 先有API文件還是先有後端?
1. 先有API文件
```mermaid
graph LR
API文件 --TODO: Auto Generate--> MockServer
API文件 --> 後端API
MockServer --> 前端畫面
前端畫面 --> 測試
後端API --> 測試
測試 --> 完成
```
2. 先有後端
```mermaid
graph LR
後端API --Auto Generate--> API文件
後端API --> 前端畫面
API文件 --> 測試
前端畫面 --> 測試
測試 --> 完成
```

- API 查詢是否要以資料為基準做 RestAPI?
> 以 MBP 為例, Project & Budget & File 分為三次API查詢, 而非一次就回傳所有資料
