---
# System prepended metadata

title: ETL-project

---

## 專案目標

爬取台灣及日本各大新聞網資料並整合/分類/排序<span style="color:red;">為可視化呈現</span>

## 專案範疇
### 資料來源
- [x] - PTT News
    <a href='https://www.pttweb.cc/hot/news'>link</a>
- [x] - Medium News
    <a href='https://medium.com/tag/news'>link</a>
- [x] ETToday
    <a href='https://www.ettoday.net/'>link</a>
- [x] Yahoo新聞網
    <a href='https://tw.news.yahoo.com/'>link</a>

### 系統流程圖


### 系統架構圖
- AWS 架構圖

### 開發架構
Python Flask 搭配 Vue.js -> 前後端分離


#### 架構圖使用服務清單
> Front-end : S3
> Back-end : EC2 (Virtual Server), ALB, ASG, VPC, Public Subnet, Private Subnet, Route53 (DNS), RDS (db)


### 功能清單

#### 權限控管
1. 權限管理：
> 管理不同用戶角色的權限，包括查看、編輯、刪除等操作的權限管理。
2. 角色權限配置：
> 允許系統管理員動態配置不同角色的權限，以便根據實際需求調整權限設置。
3. 訪問控制列表（ACL）：
> 根據用戶角色或其他條件定義訪問控制列表，確定哪些用戶可以訪問特定資源或執行特定操作。
4. 審計記錄：
> 記錄用戶登入、登出和操作歷史，以便追蹤用戶活動和安全事件。
5. 密碼策略：
> 強制用戶設置複雜度高的密碼，並定期更新密碼，以保障資料安全。

#### 爬蟲

#### 資料歸檔作業

#### 資料分析

#### 視覺化呈現

#### 前端功能


### 功能規格書




---

### 專案工具
- HackMD 系統開發資料
- Google Drive 檔案存放點 
> <a href="https://drive.google.com/drive/folders/11sQZkprYqpRzzGZB5S_nZ7mF0vy-S7W7">共享資料夾</a>
- Trello / Jira 專案管理工具
- Github Source Code控管
--<a href="https://github.com/KT-Projects-2024/ETL-project" >ETL-project</a>

---
<a href='https://news.google.com/home?hl=zh-TW&gl=TW&ceid=TW:zh-Hant'>範例參考網:</a> 


 - 20240303
 - [ ] db規格書 (爬蟲主檔)
 - [ ] 前端layout
 - [ ] 功能流程圖
 - [ ] 初始化flask + vue.js

----

要在一個專案資料夾下同時初始化Python Flask框架和Vue.js，並將其推送到GitHub，你可以按照以下步驟操作：
1. 建立專案資料夾
首先，在你的本機電腦上建立一個新的專案資料夾。 你可以使用命令列來完成這個操作：
mkdir my_project
cd my_project
2. 初始化Git倉庫
在專案資料夾內初始化Git：
git init
3. 創建Python虛擬環境
為了隔離專案依賴，創建一個Python虛擬環境：
python -m venv venv

啟動虛擬環境：
在Windows上：
venv\Scripts\activate
在Unix或MacOS上：
source venv/bin/activate
4. 安裝Flask
在虛擬環境中安裝Flask：
pip install Flask
5. 建立Flask應用
在專案根目錄下建立一個名為app.py的文件，並寫入基本的Flask應用程式碼：
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
     return 'Hello, World!'
if __name__ == '__main__':
     app.run(debug=True)
6. 初始化Vue.js項目
使用Vue CLI在專案資料夾中建立一個Vue.js應用程式。 如果你還沒有安裝Vue CLI，可以先全域安裝它：
npm install -g @vue/cli

然後，在專案根目錄下建立Vue.js應用，這裡我們將其命名為frontend：
vue create frontend

依照提示完成Vue.js專案的設定。
7. 配置專案以同時運行Flask和Vue.js
你可能需要設定代理，以便Vue.js開發伺服器可以與Flask後端通訊。 這可以透過在Vue.js專案（frontend資料夾）中的vue.config.js檔案中設定代理程式來實現。
8. 將專案推送到GitHub
首先，在GitHub上建立一個新的倉庫。
然後，添加遠端倉庫位址並推送你的程式碼：
git add .
git commit -m "Initial commit"
git remote add origin <你的遠端倉庫URL>
git push -u origin master

這樣，你就成功地在一個專案資料夾下初始化了Python Flask框架和Vue.js，並將其推送到了GitHub。 記得在推送之前建立.gitignore文件，以忽略不需要推送到遠端倉庫的文件和資料夾，如venv/、node_modules/等。