こんにちは 20B の @SSlime です。
この記事はtraP SysAd班(紹介ページ)で運用中の 部員管理サービス traPortal の紹介記事になります。
目次
サービスの概要
traPortal はメンバーそれぞれの情報の管理や、招待コードの取得などの traP という組織を管理するような部分を担ったサービスです。
具体的には traPortal では現在、以下のことができます。
部員向け
- 入会手続き
- 自分のプロフィール・個人情報の管理
- メンバーのプロフィールの閲覧
- パスワードの変更
- グループ・特権の閲覧
- 規約の閲覧
管理者向け
- 招待コードの管理
( traP への入会時に配布され、入会手続きのときに必要なものです。 ) - グループ・特権の管理
- 招待メールの送信
( 入会時に上記の招待コードが添付されて送信されるメールのことです。) - 部内メールの送信
- メンバーの凍結管理
開発
構成
バックエンド
Docker + Go + mariaDB
フロントエンド
Vue.js + HTML + TypeScript + SCSS
Vue Element Admin をもとにしています。
メンバー
バックエンド
@oribe, @silviase, @lum1narie, @tsu_ji_ken
フロントエンド
@60, @Rozelin, @SSlime, @harsh
現在までの開発
目次
- v1 発足 (2018.5~)
- v1 リリース (2019.3)
- v1 フロントエンド 開発スタート (2019.4~)
- v1 機能追加 (2019.7~)
- v2 発足 (2019.9~)
- v2追加メンバー募集 (2020.8~)
- v2 リリース (2020.11)
v1 発足 (2018.5~)
@kaz 一人によって一気に開発が進められました。ユーザーの作成や個人情報の保存など、部員情報の管理に関する機能が 部内製チャットサービス traQ(紹介ページ) から分離されました。
v1 リリース (2019.3)
2019.2.28 に @masutech16 が初代 traQ から traPortal に部員情報を移行しました。
2019.3.1 には初代 traQ から traQ-R (2代目の traQ で現行の traQ-S の前身) への移行が行われ、同じタイミングで traPortal v1 がリリースされました。traPortal のリリース準備・リリースは traQ-R の開発メンバーによって行われ、その後の開発・運用は @to-hutohu, @takashi_trap によって進められていました。
Tips:
このときはまだバックエンドしか存在しておらず、なにか操作をしたいときは API を直接叩いていました。
v1 フロントエンド 開発スタート (2019.4~)
2019 年度入学者の入部に合わせて入会登録ページが必要になったことをきっかけとし、フロントエンドの開発が始まりました。
@60 に加えて、メンターとして @to-hutohu, @sigma, @spa が開発に参加しました。
Tips:
traP の個人情報保護方針もこの頃に作成されました。
v1 機能追加 (2019.7~)
欲しい機能や、必要な機能を順に追加していきました。具体的には パスワードリセット、部員へのメール送信、traPortal のロール・特権の編集、部員のステータス変更 ( バックエンドのみ ) などの機能が追加されています。同時に、@ryoha や @oribe が開発に参加しました。
v2 発足 (2019.9~)
v1 では 主に部員管理を円滑に行うためのサービスとして開発されていた traPortal でしたが、v2 では traP 内で分散してきたサービス群を集約するサービスとして捉え直しました。それを実現するために、グループ・権限管理を始めとする機能の追加を行いました。同時に、TypeScript 化や フレームワーク導入を行うためにフロントエンドを一から書き直しました。
traQ と traPortal の責任範囲が曖昧だったので、それを固めたりもしました。
認証認可を traPortal に移行するついでに、OIDC (OpenID Connect の略) を導入する案も現在進行中です。
v2 の仕様や追加機能を決めている間も v1 の開発は進められていました。具体的には、名札作成機能や、オンライン化によって必要となった入部招待メール送信機能の追加、部内の Git ホスティングサービスから GitHub への移行、DevOpsBot (SysAd班が管理するサービスのデプロイを行うtraQのbot 紹介ページ ) への対応 などが行われました。
また、この頃に @mikit が開発に参加しました。
v2 新メンバー募集 (2020.8~)
@oribe, @60 が主体となってメンバーを募集し、現在のメンバーでもある @silviase, @lum1narie, @tsu_ji_ken, @Rozelin, @SSlime, @harshが参加しました。
新規に入ったメンバーは初心者が多かったので、以前部内で開催された講習会の資料などを参考にしながら簡単な issue をこなしていきました。また、フロントエンドは @60 や @sappi_red が、バックエンドは @oribe がレビューをするという形で改善が進んでいきました。現在、フロントエンドでは @60 の引退に伴い相互にレビューを行っており、計 65 件の PR が出されています。
僕自身も参加したときは Web 開発の経験がなく、右も左もわからなかったのですが、質問したりレビューを受けているうちに、次第にコードが自力で書けるようになっていきました。
v2 リリース (2020.11)
traPortal に以前まで備わっていた機能の v2 への移植が完了したので、UI が一新された traPortal v2 のリリースが @Rozelin によって 2020.11.25 に行われました。
その後も、部内からのフィードバックなどを踏まえて改善が進んでいきました。
traPortal v2
traPortal は v1 から v2 で、フレームワークの導入など、全ページの UI を一新しました。
以下はその一例です。
プロフィール管理
v1
v2
メール送信
v1
v2
リリース後には以下のような反応がもらえて、嬉しかったです。
現在 traPortal は、traP の活動・運営を補助するサービスを目指して、部員にとって必要な情報がひと目で分かる ニュースやタスク機能の追加など、v2 の開発を進めています。
ぜひ traP に入って traPortal を実際に使ってみてください!