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
72
部の基幹システムを開発しています/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
240
Other Decks in Programming
See All in Programming
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.4k
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
510
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.5k
GoLab2025 Recap
kuro_kurorrr
0
820
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
160
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
330
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
240
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
180
Developing static sites with Ruby
okuramasafumi
1
340
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
7
4.2k
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
Building an army of robots
kneath
306
46k
How to make the Groovebox
asonas
2
1.9k
Rails Girls Zürich Keynote
gr2m
95
14k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
210
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
WCS-LA-2024
lcolladotor
0
400
Balancing Empowerment & Direction
lara
5
830
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
27
Side Projects
sachag
455
43k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
140
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