政大Google學生開發者社群-心得(第一學期)

前言

在剛上大二時,除了手邊和學長的專案,我也參加了政大的Google學生開發者社群。主要是希望透過提案,利用科技來解決問題,在這裡我也深深感受到Google的文化,那就是不會怕去嘗試、不怕去解決問題,我也認識在這個社群中的各個人才。在這個社群中,我除了擔任自己專案領導人的角色外,我也身兼後端技術長的任務,也是想要發揮我目前所學到的、最成熟的後端知識。除了技術面,如何管理一個團隊、一項專案,也是一門很大的課題。希望在未來可以繼續把自己的這項專案做到完善,解決真正的問題!

定位與職位

  • 專案定位

我這次的提案叫做「政大通NCCUPass」,以政大校園生活為出發點,想要做一款能夠解決政大學生生活上不便的APP,透過專案組的討論與調查,帶來更便利、聰明與數位化的校園生活,讓校園內的需求能夠即時被滿足,也讓這款APP融入政大學生的生活中,成為政大校園內不可或缺的一部分,因此,「政大通-NCCUPass」的提案就此誕生


下面是我們第一次期末發表的海報和照片
海報內呈現的是我們規劃、也正在開發的功能


這個是期末發表當天的攤位介紹照片

參與證書


  • 職位

在這個專案中,我擔任Project Leader(專案主持人),與Backend Tech-Lead(後端技術長)的身份,帶領總共11人的團隊,在我們這個團隊中,主要分成四組,前端、後端、UI/UX、文書,除了負責主要的後端技術,也要帶領後端的組員們提升實力、協調與規劃。以專案領導人的角度來看,除了需要規劃整個專案的進度與走向外,也要監督進度、協調各組、人際溝通等等,除了利用各種專案管理的工具外,也要撰寫各種文件與流程圖,老實說滿累的XD。但也是遇到一群願意跟隨我的隊友們,一起成長,真的非常得感謝他們🙏

技術

  • 系統架構圖

下面是我們的系統架構圖,因為我是負責後端的部分,所以會著重畫後端的架構

  • 後端技術細節

根據上面的架構圖,我們的專案主要部署在Ubuntu的主機上,所有的服務利用Docker Compose統一建立,另外還有利用GitLab Runner做到自動化整合與自動化部屬的功能。後端程式是由.NET C#撰寫,這邊我使用的是Software Layer Architecture Pattern(軟體分層架構),結合各種Design Pattern再加上自己的一些變形,資料庫是使用MongoDB的Replica-Set,也有使用Redis做快取,照片和一些公開的檔案主要放在我們的File Server上。其他技術細節我就列在下面,想看的人可以參考一下XD

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
- Software Layer Architecture pattern (多層)
- Repository pattern
- Unit of Work pattern
- Mediator pattern & CQRS
- Password Salting and Encryption
- JWT & RBAC
- Automapper
- Exception handler抽離
- Dapper & EF combination
- Redis (Cache)
- Docker Networking
- Docker Volume
- Docker hub
- appsettings 組態切換
- MongoDB replica-set
- key-file (internal authentication)
- Git 多人協作
- Swagger / OpenAPI
- Docker File Server
- Docker mongoDB backup daily
- Docker Compose
- JMeter壓力測試
- GC mode區別(Workstation, Server)
- SignalR 雙向溝通
- 測試 (K6 stress testing, )
- 自動化發送Email (python selenium)
- SSH with Linux server
- FCM (to push device notification)
- Linux server
- Cloudflare domain and SSL/TLS
- Nginx (on server and on docker)
- redirect (setting files)
- ssl setting(certificate, key)
- Shell script自動備份資料庫

之後也會一直新增,因為現在處於專案開發的初期。

結語

最後,這個專案雖然只是在發展初期,但我希望未來可以發展到我預想的樣子,也非常感謝一路願意跟隨我、幫助我的隊友們,單打獨鬥真的比不上團隊合作👍,也希望各位未來也可以繼續幫助我啦,現在打分享文可能還太早,但我就是想要趁學期末趕快記錄一下哈哈