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
アンケートWebアプリを作りました!/Creation of survey web appli...
Search
saba
April 23, 2024
Programming
0
80
アンケートWebアプリを作りました!/Creation of survey web application
saba
April 23, 2024
Tweet
Share
More Decks by saba
See All by saba
部の基幹システムを開発しています/Developing the Department's mission-critical systems
sabana
0
56
Other Decks in Programming
See All in Programming
SideKiqでジョブが二重起動した事象を深堀りしました
t_hatachi
0
120
小さく段階的リリースすることで深夜メンテを回避する
mkmk884
2
110
SLI/SLOの設定を進めるその前に アラート品質の改善に取り組んだ話
tanden
2
430
コンテナでLambdaをデプロイするときに知っておきたかったこと
_takahash
0
110
Devin , 正しい付き合い方と使い方 / Living and Working with Devin
yukinagae
1
490
マルチアカウント環境での、そこまでがんばらない RI/SP 運用設計
wa6sn
0
130
体得しよう!RSA暗号の原理と解読
laysakura
3
480
ベクトル検索システムの気持ち
monochromegane
20
5.7k
snacks.nvim内のセットアップ不要なプラグインを紹介 / introduce_snacks_nvim
uhooi
0
290
SwiftUIのObservationツールの挙動をテストしてみた
kenshih522
0
110
remix + cloudflare workers (DO) docker上でいい感じに開発する
yoshidatomoaki
0
110
バックエンドNode.js × フロントエンドDeno で開発して得られた知見
ayame113
4
1.2k
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.4k
Side Projects
sachag
452
42k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.6k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Facilitating Awesome Meetings
lara
53
6.3k
Faster Mobile Websites
deanohume
306
31k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Testing 201, or: Great Expectations
jmmastey
42
7.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Transcript
アンケートWebアプリを 作りました! 〜実装と今後の展望〜 さば
⽬次 ‧⾃⼰紹介 ‧制作の経緯 ‧具体的な実装 ‧苦労したところ/まだ出来ていないこと ‧今後やること
⾃⼰紹介 ‧「さば」と申します! ‧東京電機⼤学 システムデザイン⼯学部 情報システム⼯学科 = 情報学部 4年 ‧23年度 ソフトウェア研究部
部⻑ 23/24年度 Webアプリ班 班⻑ ‧趣味:Webアプリの個⼈開発とセキュリティ
制作の経緯
イベントでカジュアルなアンケートを取りたい ‧例えば学園祭の来場者に「どこから来ましたか?」 ‧試⾷の場で「AとBどちらが好きですか?」 ‧展⽰会で「この製品に欲しい機能はどれですか?」
じゃあ作ろう!
欲しい「カジュアルさ」とは? ‧アンケートを作る側 -簡単にアンケートを作れる ‧アンケートを受ける側 -ササッと回答できる
絶対に欲しい機能 ‧アンケートを作る側 -質問⽂と選択肢を記⼊してアンケートを作る -作ったアンケートをQRコードでシェアする -アンケートの結果を集計してグラフ表⽰(重要) -アカウントは不要(重要) ‧アンケートを受ける側 -QRコードでシェアされたアンケートに回答する
逆に犠牲にする機能 ‧1つのアンケートに⾊々な質問項⽬を載せられる⾃由度 -Googleフォームの様に万能ではない ‧⾃由記述欄 -回答は選択肢のみ
Googleフォーム等と何が違うのか ‧GoogleフォームやMicrosoft Formsとの違い -集計結果は回答者に表⽰されない -仕様としての共有QRコード⽣成機能はない ‧LINEの投票機能‧Discord/Slackの投票Botとの違い -よりオープンで不特定多数の⼈が回答する想定 -集計結果が表⽰できるという意味でやりたいことに近い ‧⼀番の違い -アカウントが要らない!!
具体的な実装
機能をまとめると ‧⼀瞬で作成できて、⼀瞬で共有できて、⼀瞬で結果表⽰できるアンケートWebアプリ ‧作成 -アカウントは不要、メールアドレスだけ -メールアドレス宛に集計結果と共有QRが表⽰されるページリンクが送られる ‧共有 -⾃動的にQRコードが⽣成されて、モニターに表⽰しておけば読み取って回答できる ‧結果表⽰ -回答がリアルタイムに反映される視覚的なグラフ表⽰ -共有QRも⼀緒に表⽰
技術的な実現⽅法 ‧バックエンド(+フロントエンド) -Django(PythonのWebアプリフレームワーク) ‧メールサーバー -Postfix ‧Webサーバ -Nginx ‧WSGI -Gunicorn ‧デプロイする場所
-VPS
全体的なフロー フロントエンド バックエンド HTML CSS JavaScript ユーザー
まずはご覧ください
live-poll.net(プロトタイプです!)
live-poll.net(プロトタイプです!)
live-poll.net(プロトタイプです!)
live-poll.net(プロトタイプです!)
live-poll.net(プロトタイプです!)
live-poll.net(プロトタイプです!)
苦労したこと まだ出来ていないこと
苦労したこと ‧デプロイ部分で⼤苦戦(1週間以上費やす) -当初WSGIとしてDjango公式が推奨しているuWSGI(導⼊経験あり) を使おうとしたが、なんでか分からないけど動かなかった=知識不⾜ -なのでGunicornに鞍替え -正しい設定をしたはずなのにNginxが起動に失敗 -なんとOS再起動で復活 ‧ドキュメントには載っていないおま環トラブルが多発
まだできていないこと ‧凝ったUIにしたい ‧レスポンシブ(スマホ)対応していない ‧Webアプリに必要な利⽤規約やプライバシーポリシー‧問い合わせフォームなどなどがない ‧論理設計をブラッシュアップする -どこまでをアンケート作成者だけが⾒られるようにするか、などなど ‧アンケートのグラフ軸に⼩数点が付いている ‧アンケート結果の反映を⾮同期処理にしたい ‧本当にセキュリティが⼤丈夫なのかの検証(セルフペネトレーションテスト) ‧他多数‧‧‧
今後やること
まずはUI ‧良さげなUIだけでも先に完成してたら開発のテンションが上がりません? ‧ということで、Reactでフロントエンドの制作中です ‧今まで⾏き当たりばったりでUIを作っていたが、今回初めてFigmaでデザイン を作ってからコーディングすることを学ぶ -デザイン通りにコードを書いていくので、⽣産性が段違い!
Figma
React
ということで鋭意制作中です!
ご清聴ありがとうございました さば @pin__saba__ Webサイト https://sbskn.com