feature image

2021年3月31日 | 作品紹介

部員管理サービス traPortal の紹介

こんにちは 20B の @SSlime です。
この記事はtraP SysAd班(紹介ページ)で運用中の 部員管理サービス traPortal の紹介記事になります。

目次

  1. サービスの概要
  2. 開発
  3. traPortal v2

サービスの概要

traPortal はメンバーそれぞれの情報の管理や、招待コードの取得などの traP という組織を管理するような部分を担ったサービスです。
具体的には traPortal では現在、以下のことができます。

部員向け

  1. 入会手続き
  2. 自分のプロフィール・個人情報の管理
  3. メンバーのプロフィールの閲覧
  4. パスワードの変更
  5. グループ・特権の閲覧
  6. 規約の閲覧

管理者向け

  1. 招待コードの管理
    ( traP への入会時に配布され、入会手続きのときに必要なものです。 )
  2. グループ・特権の管理
  3. 招待メールの送信
    ( 入会時に上記の招待コードが添付されて送信されるメールのことです。)
  4. 部内メールの送信
  5. メンバーの凍結管理

開発

構成

バックエンド

Docker + Go + mariaDB

フロントエンド

Vue.js + HTML + TypeScript + SCSS
Vue Element Admin をもとにしています。

メンバー

バックエンド

@oribe, @silviase, @lum1narie, @tsu_ji_ken

フロントエンド

@60, @Rozelin, @SSlime, @harsh

現在までの開発

目次

  1. v1 発足 (2018.5~)
  2. v1 リリース (2019.3)
  3. v1 フロントエンド 開発スタート (2019.4~)
  4. v1 機能追加 (2019.7~)
  5. v2 発足 (2019.9~)
  6. v2追加メンバー募集 (2020.8~)
  7. 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 に行われました。
release

その後も、部内からのフィードバックなどを踏まえて改善が進んでいきました。

traPortal v2

traPortal は v1 から v2 で、フレームワークの導入など、全ページの UI を一新しました。
以下はその一例です。

プロフィール管理

v1

v1-bio

v2

v2-bio

メール送信

v1

v1-mail

v2

v2-mail

リリース後には以下のような反応がもらえて、嬉しかったです。
feedback_oribe
feedback_annin
feedback_d_etteiu
feedback_tararira
feedback_nom
feedback_ras

現在 traPortal は、traP の活動・運営を補助するサービスを目指して、部員にとって必要な情報がひと目で分かる ニュースやタスク機能の追加など、v2 の開発を進めています。

ぜひ traP に入って traPortal を実際に使ってみてください!

SSlime icon
この記事を書いた人
SSlime

20B traPortal とか

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2021年3月19日
traPグラフィック班の活動紹介
NABE icon NABE
2019年5月16日
Party Kingdom
Double_oxygeN icon Double_oxygeN
2021年4月2日
traQの検索機能が謎のエラーを吐いた話
toki icon toki
2019年8月20日
Intuition―1分ギャルゲ
gotoh icon gotoh
2021年3月24日
traQのメンション・チャンネルリンク機能について【新歓ブログリレー16日目】
reyu icon reyu
2020年12月17日
一人でゲームを作ったハッカソン【AdC2020 34日目】
Komichi icon Komichi
記事一覧 タグ一覧 Google アナリティクスについて