Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
部の基幹システムを開発しています/Developing the Department's mi...
Search
saba
February 01, 2025
Programming
0
64
部の基幹システムを開発しています/Developing the Department's mission-critical systems
saba
February 01, 2025
Tweet
Share
More Decks by saba
See All by saba
アンケートWebアプリを作りました!/Creation of survey web application
sabana
0
100
Other Decks in Programming
See All in Programming
#QiitaBash MCPのセキュリティ
ryosukedtomita
0
700
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
0
470
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
250
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
4
240
エンジニア向け採用ピッチ資料
inusan
0
180
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
480
エラーって何種類あるの?
kajitack
5
330
システム成長を止めない!本番無停止テーブル移行の全貌
sakawe_ee
1
150
PipeCDのプラグイン化で目指すところ
warashi
1
230
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
270
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
120
Featured
See All Featured
Facilitating Awesome Meetings
lara
54
6.4k
A better future with KSS
kneath
239
17k
GraphQLとの向き合い方2022年版
quramy
49
14k
For a Future-Friendly Web
brad_frost
179
9.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Making Projects Easy
brettharned
116
6.3k
Site-Speed That Sticks
csswizardry
10
670
Balancing Empowerment & Direction
lara
1
390
What's in a price? How to price your products and services
michaelherold
246
12k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Transcript
部の基幹システムを 開発しています 〜⾃⼰紹介〜 さば
⽬次 ‧⾃⼰紹介 ‧制作の経緯 ‧作りました ‧使っている様⼦
⾃⼰紹介 ‧「さば」と申します! ‧東京電機⼤学 システムデザイン⼯学部 情報システム⼯学科 = 情報学部 4年 ‧23年度 ソフトウェア研究部
部⻑ 23/24年度 Webアプリ班 班⻑ ‧趣味:Webアプリの個⼈開発とセキュリティ
部公式サイト https://tdu-src.com
制作の経緯🤯
⼊部⼿続きの事務で痛い⽬を⾒た ‧私が部⻑をしていた時の話 ‧部員が⼊部時(去年からの継続部員含む)にやること -Googleフォームに⼊⼒ -部費を封筒に⼊れ、学籍番号と⽒名を書いて提出 ‧⼀般部員からすれば普通の流れ
⼊部⼿続きの事務で痛い⽬を⾒た ‧裏で部⻑や会計がやっていたこと -Googleフォームを⽤意 -封筒と、名前‧学籍番号を記⼊する紙を⽤意🤯 -封筒を受け取ったら部費の確認 -部費徴収の会が終わったら部費の集計🤯 -記⼊⽤紙をもとに名簿に⽀払い済みをチェック🤯🤯🤯🤯🤯🤯🤯🤯🤯 -名簿をもとにDiscordのロール付与🤯🤯 ‧これを200⼈分やっていました‧‧‧
でもちょっとだけ⾃動化はしていた ‧裏で部⻑や会計がやっていたこと -Googleフォームを⽤意 -封筒と、名前‧学籍番号を記⼊する紙を⽤意 -封筒を受け取ったら部費の確認 -部費徴収の会が終わったら徴収した部費の集計 -記⼊⽤紙をもとに名簿に⽀払い済みをチェック -名簿をもとにDiscordのロール付与 ←ロール付与Botを作った
Botを作ったとは⾔っても‧‧‧ ‧200⼈分の班ロール付与を⾃動化できたのは良かった ‧でも、Botに投⼊すべきデータが揃っていなかった -本⼊部‧継続フォームではDiscordの名前‧表⽰ID‧所属希望班を 聞いていたが、Botでユーザーにロールを付与するにはDiscordの 内部ID(ぱっとは確認できない)が必要だった。 ‧つまり、データの成形から⾏うことに
Botを動かす前にやったこと ‧まずサーバー参加者の全ユーザー情報を取ってくるBotを作る ‧Discordの名前と表⽰IDをもとに、内部IDと所属班の対応リストを作る プログラムを作る ‧問題点 -フォーム回答後に名前を変えた⼈や、名前被りがある⼈は⽬視でチェックし ないといけない
「Botを作るためのBotを作る」 みたいな状況に‧‧‧
教訓 ‧⾃動化するなら運⽤もそれに合わせて変えないといけない ‧処理の⾃動化だけではなく、処理に必要なデータを⽤意するところも⾃動化 (デジタル化)しないと意味がない
作りました💪
基幹システムに欲しかった要素 ‧⼊部⼿続きのフォームがある ‧部費の⽀払いがサクッと確認できる ‧フォーム回答をもとにDiscordのロール付与を⾃動化 ‧基幹システムのアカウントはDiscordと共通 →データ⼊⼒から独⾃システムを使ってもらうことで、完全⾃動化ができる
基幹システムのプロセス群 Discord Bot(バッチ処理) ロールの付与を担当 Discord Bot(常時稼働) サーバーへの出⼊りを監視 Celery 定期実⾏タスクの管理 基幹システムの中⼼
データベース メッセージキューイング ※動いているプロセス群を紹介するための図で、⽮印はあまり正確ではないです。 正確な処理の流れは次のページを⾒てください‧‧‧
構成 Discord Bot ‧Discordアカウント ‧学籍番号 ‧⽒名 ‧⼊部登録の完了状況 ‧部費の⽀払い状況 などなど‧‧‧ 名簿を管理
‧Discordアカウントで ログイン ‧登録フォーム ‧部費の⽀払い確認機能 などなど‧‧‧ 認証認可など ‧サーバー参加者のロー ル情報などを随時取得 ‧名簿をもとにロールを 付与 などなど‧‧‧ Discordとの同期 Discord Bot
こだわりポイント ‧基幹システムへのログインはDiscordアカウントでSSO⽅式に -システム⽤アカウントを別途作るとなるとユーザーは⾯倒。運⽤者的にもパスワー ドなどの機微情報を保存したくない ‧可能な限りライブラリに頼って(なるべく)セキュアに -「独⾃開発で頑張って作って変な脆弱性を作り込む」を避ける ‧部費の⽀払い確認が簡単 -部員⼀⼈ひとりに発⾏されるQRコードを部⻑や会計が読み取るだけで、DB上で 「⽀払い済み」にすることができる
使っている様⼦🎥
謝罪 ‧基幹システム⾃体は2024年度から実運⽤していますが、突貫で作ったこともあ り、現⾏のUIはひどいので⾒せられません ‧なので、25年度から運⽤開始予定の開発中の画⾯を⾒ていただきます ‧機能⾃体は特に変わりありません
⼊部時の登録フォームを ご覧ください
None
実際に部費の⽀払い&QRコードの 読み取りをしている様⼦(2024年春)
(アップロード版につき動画はないですが‧‧‧) ‧⼊部したい⼈が部⻑へ部費を⽀払っている時の様⼦です 1.⼊部したい⼈:お⾦を渡した後に、⾃分のマイページに表⽰されたQRコード を提⽰しています 2.部⻑:専⽤ページからQRコードを読み取ります 3.⼊部したい⼈:ページをリロードすると、⽀払い完了の画⾯が表⽰されます ‧この作業が10秒⾜らずで⾏われています
結果 ‧とても効率化できた!!!有効性を実感!! ‧システム導⼊前に何⼗時間もかけていた作業が消滅!!!※ ‧当初の⽬的以外にも‧‧‧ -部で所有する本の貸出管理もシステム上に移⾏できた -部員同⼠で作品を共有できる機能もリリース予定!(なんと企画⽴案〜PM まで部員が担当) →基幹システムを踏み台に⾊んなサービスが作れる ※システムの開発時間は趣味みたいなものなので0時間とする
謝辞 ‧基幹システムの運⽤開始をオリエンテーション期間に間に合わせてくれた助っ ⼈エンジニア ‧基幹システムがらみで新たな企画を⽴ち上げてくれた部員、その企画に参加し てくれた部員s
ご清聴ありがとうございました🎉
リンク @pin__saba__ @pinSaba