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
55
部の基幹システムを開発しています/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
79
Other Decks in Programming
See All in Programming
はじめての Go * WASM * OCR
sgash708
1
130
高セキュリティ・高耐障害性・サブシステム化。そして2億円
tasukulab280
2
410
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
520
技術を改善し続ける
gumioji
0
190
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
270
Boos Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
840
Lambdaの監視、できてますか?Datadogを用いてLambdaを見守ろう
nealle
2
850
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
280
From the Wild into the Clouds - Laravel Meetup Talk
neverything
0
190
ML.NETで始める機械学習
ymd65536
0
260
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
5
2.1k
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
230
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
183
22k
Product Roadmaps are Hard
iamctodd
PRO
51
11k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.4k
A designer walks into a library…
pauljervisheath
205
24k
Music & Morning Musume
bryan
46
6.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
400
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
590
The Pragmatic Product Professional
lauravandoore
32
6.4k
What's in a price? How to price your products and services
michaelherold
244
12k
It's Worth the Effort
3n
184
28k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
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