作ったもの
無料サーバから呼び出せる掲示板システム。
システム自体は Ruby on Rails で書いているので有料サーバ必須。
RestfulAPIを呼び出して、Vue.jsで結果を表示するような仕組み。
ソースコード
https://github.com/otoriyose/otoriyose
スクリーンショット
一覧画面
詳細画面
投稿画面
未ログインでは投稿できない
ログイン画面(認可サーバ)
構造
作成に至った経緯
- キャラレス界では未だに掲示板を使って交流している
- 掲示板は無料のレンタル掲示板を使ったり、Perlで書かれたCGIを使っている人が大半
- カスタマイズの自由度は低く、設置のハードルも高い
- カスタマイズが容易な掲示板を作りたい
達成したい要件
- 無料サーバに設置可能なこと
- 難しい技術を必要としないこと
- セキュリティリスクは無視しないこと
- HTMLやCSSの知識があればデザインのカスタマイズが可能なこと
- コーディング技術があれば更なるカスタマイズも可能なこと
実装方針
- データのやりとりはRestfulAPIで提供
- 掲示板本体はVue.jsを用いて、静的サイトにも設置可能にした
- 認可サーバを設置することにより、https対応していないサーバでもある程度セキュリティが確保できるようにした
- 管理者用の画面は有料サーバ側に設置して利用してもらう(現在未実装)
使った技術
- Ruby
- Ruby on Rails
- doorkeeper
- JavaScript
- Vue.js
- MySQL
- Vagrant
- Docker
苦労した点
- Ruby on Rails の環境構築がむずかしい
- doorkeeper の仕様がよくわからない
- Deviseの設定が先に必要なことに気づかず長い時間を費やした
- OAuth連携のフローが難しい
- 認可サーバに飛ばして、トークンを返して、APIにそれを渡して…という仕組みをどう作成すれば良いのか、良いサンプルが見つからなかった(結局1から全部設計した)
- Githubでのプロジェクト作成のお作法
- 複数のソースを組み合わせて動作するアプリはどう配置すべきなのか(未だにベストな配置がわからない)
良かったこと
- PHPからRubyに乗り換えたら開発効率がめちゃくちゃ上がった
- シンプルは構造にしたので、今後なにかシステムを作ろうと思った時に流用できそう
- VagrantやDockerで環境構築も自動化したので、開発期間が空いても安心
- 最初に要件定義をしっかりしたので手戻りが発生しなかった
- とにかく完成させることを目指して不要な機能はガンガン削った
良くなかったこと
- デザインがダサい
- リリース前には調整して、デザインサンプルを2、3個用意したい
- ログインの導線がイマイチ
- 本番環境への適用を意識していない構成
今後の課題
- 管理画面を作る
- 設置マニュアルやAPI仕様書などのドキュメントを作る
- VPSを借りてリリースする
- 機能を追加する
最後に
キャラレス界は技術者が不足していて化石化した技術を未だに使い続けている場所!
新規業界(?)を開拓したいプログラマにはオススメです。