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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
saba
February 01, 2025
Programming
0
75
部の基幹システムを開発しています/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
250
Other Decks in Programming
See All in Programming
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
220
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
180
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
140
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
100
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
200
並行開発のためのコードレビュー
miyukiw
0
930
Oxlintはいいぞ
yug1224
5
1.4k
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
210
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
2
2.4k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
330
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
Everyday Curiosity
cassininazir
0
130
Being A Developer After 40
akosma
91
590k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Mobile First: as difficult as doing things right
swwweet
225
10k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
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