--- title: Team B 「OpenVPN Connection Tool 專案」企劃書 tags: proposal, project, vpn description: 1. title 請改為 [專案名稱]企劃書 2. tag 請刪去template,加上專案內容類型或名稱 3. 下方會議記錄請使用會議記錄範本 4. 加上"{%hackmd BkVfcTxlQ %}"意為套用黑色模板 --- {%hackmd BkVfcTxlQ %} # ***「OpenVPN Connection Tool 專案」企劃書*** :::info > 專案負責人聯絡資訊: > 宋安琪 / Email:anzheworking@gmail.com * 專案參與成員: 【Team B】 | Project Manager | 宋安琪 | | Research and Development Engineer | 王筱鈞 | | Research and Development Engineer | 許雅喬 | 共計 3 人 [name=企劃書撰寫:宋安琪] ::: > [TOC] > *** ## **專案資訊** * 專案時期: [time=] Nov 25, 2022 (Fri.) ~ Dec 13, 2022 (Wed.) [time=] Feb 20, 2023 (Mon.) ~ Feb 20, 2023 (Sat.) * 專案客戶資訊: * 夜珞 * 公司 : Project Abyss 深淵計畫 * 職稱 : 專案經理 * 主要聯絡方式:Email ( working0.0.orz@gmail.com ) * 建議聯絡時間:上班時間 * 專案預期對象: [name=] 「Project Abyss 深淵計畫」公司內部成員 --- ### *專案概述* 本專案 OVCT(OpenVPN Connection Tool)開發一個自動連線工具,讓使用者不必自行下載配置檔案,直接使用工具便可爬取 VPN 網站列表中的 VPN 伺服器,以驅動 OpenVPN 軟體,對站點列表中的伺服器進行 VPN 連線。 --- ### *預期目標* - 調整整體檔案架構,使檔案的架構更清楚易懂 - 增加程式碼之擴展性 - 新增初始化 VPN 列表之功能 - 新增更新 VPN 站點之功能 --- ## **專案內容** - [X] 系統架構 - 統一命名規則 - 變數、函數、class、檔案 - 使檔案架構更清楚易懂 - [X] 擴展性: - 考慮新增站點的情況 - 使用 class 增加擴展性 - 設置 config 檔案放置全域參數 - 調整系統結構使功能劃分更明確,以便後續修改 - [X] 初始化 VPN 列表功能:從網站中爬取 VPN Server 列表進行初始化 - 爬取當前 VPN Gate 網站中的伺服器列表 - [X] 更新 VPN 站點功能:將最新站點資料抓取至 VPN 列表中。 ### *環境* - Linux 作業系統 ### *技術簡介* #### Configparser #### - 引入該模組,用於讀取 ini 檔中的設定的系統變數 - 存檔路徑、存檔名稱、站點參數 #### Web Crawler #### - 爬取所需的公開 VPN 站點(如:[VPN Gate](https://www.vpngate.net/cn/))中的 vpn server 列表 - 利用 Pandas 套件將列表儲存為 csv 表格資料 #### File Processing #### - 使用 pandas 進行資料處理 - 存檔 - 欄位篩選 (國家、速度) - 比對清單、更新 list 清單 #### OpenVPN #### - 使用 OpenVPN 軟體進行連線 ### *檔案架構* ![](https://i.imgur.com/g8qHyXH.png) ### *系統架構* ![](https://i.imgur.com/EDpZRJF.png) ### *系統流程* <!-- ![](https://i.imgur.com/5yaktdJ.png) --> ![](https://i.imgur.com/nbQAZzN.png) --- ## **專案安排** ### *專案工作* | 姓名 | 職稱 | 工作內容 | | --- | ---- | ------ | | 宋安琪 | Team B 專案經理 | 專案時程規劃<br>計劃書撰寫<br>對外聯繫窗口| | 王筱鈞 | Team B 研發工程師 | 專案程式開發<br>命名文件與 readme 撰寫 | | 許雅喬 | Team B 研發工程師 | 專案程式開發<br>架構設計與修改 | <!-- ### *專案時程* --> <!-- ![](https://i.imgur.com/F5xu6Fq.png) --> <!-- ![](https://i.imgur.com/NvncOiY.png) --> --- ## **專案交付** - [OVCT github](https://github.com/Project-Abyss/OVCT) - [README 文件](https://github.com/Project-Abyss/OVCT/blob/main/README.md) - [命名文件](https://github.com/Project-Abyss/OVCT/blob/main/CodingRules.md) - [結案報告簡報](https://docs.google.com/presentation/d/1BUqHr8gEaCwrCM4HsjgAOinenoMInYP52x-tKBVrpQo/edit#slide=id.g203cd039859_0_4) --- ## **備註與附件** ### *專案相關文件* - [OVCT github](https://github.com/Project-Abyss/OVCT) - [README 文件](https://github.com/Project-Abyss/OVCT/blob/main/README.md) - [命名文件](https://github.com/Project-Abyss/OVCT/blob/main/CodingRules.md) - [結案報告簡報](https://docs.google.com/presentation/d/1BUqHr8gEaCwrCM4HsjgAOinenoMInYP52x-tKBVrpQo/edit#slide=id.g203cd039859_0_4) ### *會議紀錄* * 與甲方會議記錄 * [Team B 專案啟動 會議紀錄 (20221125)](https://hackmd.io/4YJMKrK7Tb2ucvSSdASitw) * [Team B 專案確認 會議紀錄 (20221205)](https://hackmd.io/viF1RJYyTPC_2ziRcvtjJA) * [Team B 專案重啟 會議紀錄 (20230301)](https://hackmd.io/@4by55/SJ6mJhgCi) * [Team B 專案會議 會議記錄 (20230315)](https://hackmd.io/@4by55/HkVQ3Skln) * Team B 內部會議記錄 * [Team B 內部討論 會議紀錄 (20221202)](https://hackmd.io/YsN8BH7ITP2XPTh8YIjVTw)