趣味と実益を兼ねて、
スマートフォン向けスポーツサークル出欠管理Webアプリ
「SMART Scheduler for sports circles」を作りました!
サークルを登録する仕組みがないので、
利用者は今のところ自分が所属するチームのみですが。
勉強がてらネイティブアプリで作りたいとも考えましたが、
やはりAndroidとiOS両方作るのは個人では大変なので…
今回はjQuery Mobileで作りました。
すげーよ、jQuery Mobile。
閲覧と登録ぐらいのWebサイトなら、
スマートフォン向けは全部これでいいんじゃない?
とか思っちゃいました。
こんな感じです。
ロゴはフリーのジェネレータで作成しました。
バリデーションは、jQuery-Validation-Engineを使っています。
https://github.com/posabsolute/jQuery-Validation-Engine
ログインすると、スケジュール一覧が見れます。
3件ごとにpaginateします。
登録するボタンを押すと、出欠登録画面に遷移します。
expandして、スケジュールの詳細を見ます。
出欠を登録します。
メンバーリストを見たりもできます。
スケジュールやメンバーを登録する、
管理者サイトも作りました。
こちらは、jQuery UIとTwitter Bootstrapで作りました。
メンバー登録画面です。
アカウント変更画面です。
サーバーサイド
言語はRuby 1.9です。
Webフレームワークは、Sinatraです。
見てのとおり、単純な読み書きしかないので、
Railsだと大仰すぎるかな、と考えました。
サーバーサイドで入力値を検証してないので、
不特定多数のチームが利用するなら、
改修しなければならないでしょうね。
Rubyからは、Sequelでアクセスしてます。
テンプレートエンジンは、Slimを使いました。
CSSはSassで書きました。
複雑なHTMLでもないので、素で書いてもいけたけど…
まあ修練ってことで。
ホスティングは、前のエントリからわかるように、
DotCloudを使いました。
Gitのローカルリポジトリにコミットして、DotCloudのコマンドからpushすると、
あとは勝手にデプロイしてくれる、ほんと楽でした。
DotCloudは、Webサーバがnginxで、RackサーバはPassengerみたいです。
ドメインは、お名前.comで取りました。
苦労した点
Ruby 1.9でSequelを使ったとき、
文字列でASCII文字以外はforce_encoding()呼び出して出力しないと
例外が発生してしまう点が一番ハマりました…
最初何で例外が発生しているか、全然見当がつかなかったので。