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
68
部の基幹システムを開発しています/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
120
Other Decks in Programming
See All in Programming
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
2
200
Devoxx BE - Local Development in the AI Era
kdubois
0
150
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
100
SODA - FACT BOOK(JP)
sodainc
1
8.9k
AI駆動で0→1をやって見えた光と伸びしろ
passion0102
1
880
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
350
Software Architecture
hschwentner
6
2.4k
他言語経験者が Golangci-lint を最初のコーディングメンターにした話 / How Golangci-lint Became My First Coding Mentor: A Story from a Polyglot Programmer
uma31
0
470
なんでRustの環境構築してないのにRust製のツールが動くの? / Why Do Rust-Based Tools Run Without a Rust Environment?
ssssota
14
47k
NIKKEI Tech Talk#38
cipepser
0
310
What's new in Spring Modulith?
olivergierke
1
180
CSC305 Lecture 11
javiergs
PRO
0
310
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Bash Introduction
62gerente
615
210k
A better future with KSS
kneath
239
18k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Done Done
chrislema
185
16k
Visualization
eitanlees
150
16k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
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