Slide 1

Slide 1 text

TGmeetup 一個蒐集技術社群與活動的小工具 2018/03/15, Hsinchu, DigitalOcean Hsinchu Presenter: Samina Fu

Slide 2

Slide 2 text

關於我 ▪ Shan-Jung Fu (Samina) ▫ 交通大學資訊工程研究所學生 ▫ CDNJS 專案的成員之一 ▫ 工研院 Intern ▫ 曾經任職於交大資訊中心網路系統工程師 ▫ GitHub: @sufuf3 ▫ Twitter: @sufuf3149 2

Slide 3

Slide 3 text

Outline ▪ 簡介 ▪ 動機 ▪ 設計上的規劃考量與執行 ▪ 如何使用與貢獻 ▪ 未來規劃 3

Slide 4

Slide 4 text

Outline ▪ 簡介 ▪ 動機 ▪ 設計上的規劃考量與執行 ▪ 如何使用與貢獻 ▪ 未來規劃 4

Slide 5

Slide 5 text

簡介 ▪ TGmeetup ▫ 一個蒐集各社群資料與活動資訊的小工具 ▫ 全名: Technical groups meetup ▫ 使用 python3 撰寫 ▫ GitHub repository: ▫ https://github.com/TGmeetup/TGmeetup 5

Slide 6

Slide 6 text

Outline ▪ 簡介 ▪ 動機 ▪ 設計上的規劃考量與執行 ▪ 如何使用與貢獻 ▪ 未來規劃 6

Slide 7

Slide 7 text

動機 ▪ 因為在台灣沒有看到類似的工具 Ref: https://www.slideshare.net/WeiShengZheng/introduction-kubernetes-20171224 7

Slide 8

Slide 8 text

▪ 台灣有很多的社群林立 ▪ 技術社群是很棒的交流切磋之地 ▫ 可在這些領域中找到自己的同好 ▫ 分享並吸取經驗等 動機 8

Slide 9

Slide 9 text

▪ 然而 ▪ 對於一般使用者 ▫ 需要努力從網路上蒐集相關領域的社群資料 ▫ 對於附近有哪些社群可以參加需要人工處理 ▫ 需要花一些時間蒐集附近社群近期的聚會資訊 動機 9

Slide 10

Slide 10 text

▪ 對於社群維護者 ▫ 避免辦理的活動與其他社群撞期 ▫ 蒐集同領域的社群辦理的活動資訊 ▫ 歡迎更多同好的新血加入 動機 10

Slide 11

Slide 11 text

▪ 有鑒於台灣技術社群的相關資訊分散各處 ▪ 來整合各社群資訊並取得各社群的活動資訊 動機 11

Slide 12

Slide 12 text

Outline ▪ 簡介 ▪ 動機 ▪ 設計上的規劃考量與執行 ▪ 如何使用與貢獻 ▪ 未來規劃 12

Slide 13

Slide 13 text

設計上的規劃考量與執行 ▪ 初步構思 13

Slide 14

Slide 14 text

設計上的規劃考量與執行 ▪ 初步構思 ▫ 需處理權限問題、登入 ▫ 如何 Open source 出來? Database Server Web server 14

Slide 15

Slide 15 text

設計上的規劃考量與執行 ▪ 再次設計 ▫ 用 Json 格式儲存資料 ▫ 如何克服 OAuth 的設定問題 ▫ 整體檔案結構與程式架構 15

Slide 16

Slide 16 text

Json 格式 16 { "name": "PyHUG", "title": "Python Hsinchu User Group", "description": "Welcome to PyHUG! We are a group of Python programmers near the Hsinchu, Taiwan. ...", "countrycode": "tw", "city": "Hsinchu", "keywords": [ "python", "Computer programming", ], "registration": { "type": "meetup", "url": "https://www.meetup.com/pythonhug/" }, "repository": { "type": "git", "url": "https://github.com/pyhug" }, "chat": [ { "type": "IRC", "urls": [ "Freenode/#python.tw" ] } ], "social-media": [ { "type": "facebook", "urls": [ "https://www.facebook.com/groups/pythontw/" ] } ] }

Slide 17

Slide 17 text

Json 格式 ▪ name: 該社群的縮寫,或是活動報名 URL 的社群名 ▪ title: 該字串為該社群真正的名字,中間可以有空白 ▪ countrycode: 遵循 ISO 3166-1 alpha-2 的規範 ▪ city: 城市的欄位 ▪ keywords:與該技術社群相關的關鍵字 ▪ registration: ▫ type: 報名的平台名稱( Meetup 或 kktix) ▫ url: 為報名連結 ▪ description: 技術社群的描述 ▪ homepage: 社群的網站 ▪ contact: 社群公開的聯繫方式 ▪ contributors: 社群的維護者資訊 ▪ repository: Git repository ▪ chat: 社群討論的平台連結 ▪ social-media:該技術社群的社群媒體連結 17

Slide 18

Slide 18 text

檔案結構 ├── TGmeetup │ ├── libs │ │ ├── RegistrationAPI │ │ │ ├── KKTIX.py │ │ │ ├── Meetup.py │ │ │ └── __init__.py │ │ └── __init__.py │ └── tgmeetup.py ├── community │ ├── sg │ └── tw │ ├── PyHUG │ └── package.json ├── conference │ └── tw │ ├── PyConTaiwan │ │ └── package.json 18

Slide 19

Slide 19 text

設計上的規劃考量與執行 ▪ 執行 ▫ 程式撰寫 ▫ README ▫ CONTRIBUTING ▫ CI 19

Slide 20

Slide 20 text

Outline ▪ 簡介 ▪ 動機 ▪ 設計上的規劃考量與執行 ▪ 如何使用與貢獻 ▪ 未來規劃 20

Slide 21

Slide 21 text

如何使用與貢獻 API.cfg 設定參考: https://hackmd.io/s/ByrxYmi4G $ git clone https://github.com/TGmeetup/TGmeetup.git $ cd TGmeetup $ cp API.cfg.sample API.cfg $ sh install.sh 21

Slide 22

Slide 22 text

{ "name": "DigitalOceanHsinchu", "title": "DigitalOcean Hsinchu", "description": "We are a new local technology meetup group located at Hsinchu city, organized by students in NCTU(National Chiao Tung University) and DigitalOcean! We are interested in various open source, Linux, cloud computing, DevOps, web development and network related techs and tools.", "countrycode": "tw", "city": "Hsinchu", "keywords": [ "open source", "cloud", "DevOps" ], "contributors": "DigitalOcean Hsinchu organizers", "registration": { "type": "meetup", "url": "https://www.meetup.com/DigitalOceanHsinchu/" 如何使用與貢獻 22 "chat": [ { "type": "slack", "urls": [ "https://digitaloceanhsinchuslack.herokuapp.com/", "https://digitaloceanhsinchu.slack.com" ] } ], "social-media": [ { "type": "facebook", "urls": [ "https://www.facebook.com/DigitalOceanHsinchu/", "https://www.facebook.com/groups/DigitalOceanHsin chu/" ] } ] }

Slide 23

Slide 23 text

Outline ▪ 簡介 ▪ 動機 ▪ 設計上的規劃考量與執行 ▪ 如何使用與貢獻 ▪ 未來規劃 23

Slide 24

Slide 24 text

未來規劃 1. 選取想參加的活動加到 Google 行事曆 2. 加入新的 option 直接呈現有活動的社群 3. 使用 `tgmeetup add` ▫ 自行加入要關注的社群資訊 4. 寫更完整的 test 5. 加入 Facebook 與活動通的 API 24