【Sinatra運動記録アプリ①】Sinatraで運動の記録をするwebアプリを作ろうと思う

【Sinatra運動記録アプリ①】Sinatraで運動の記録をするwebアプリを作ろうと思う

こんにちは、Mako(@makokamiya)です。

今回は、CODEBASEスクールで扱ったSinatra、PostgreSQLで軽量なアプリケーションを作ろうと思います。

あくまでも、サクッと作りたい。

なぜSinatraなのか

軽量なwebアプリケーションなら、Vue.jsあたりでもいいかなーと思ったんですが、

CODEBASEスクールのサポートをやっているので、Sinatraのおさらいをしたかったこと、

Railsである程度ActiveRecordを触ったあとに、SinatraでActiveRecordを使うとより理解が深まるのではないか

と思ったからです。

仕様

言語:Ruby 2.7.1
フレームワーク:Sinatra 2.0.8.1
データベース:PostgreSQL
モデル設計:ActiveRecord(予定)
Gem管理:Bundler
CSSフレームワーク:Bootstrap
フロントライブラリ:Chart.js(予定)
デプロイ:Heroku

このアプリでできること(要件定義)

  • ログイン・ログアウトの機能
  • 運動した箇所などが記録できる
  • 体重などの記録ができる
  • 記録した内容をグラフで見ることができる
  • 友達フォロー機能

さっそくアプリ作成

require 'bundler' #bundlerだけrequireして、
Bundler.require   #bundlerの中のgemを一括でrequire

# ホーム、サインアップ画面
get '/' do
    return erb :signup_signin
end

今回は、bundlerでGemの管理を行うので、1行目でbundlerを使えるようにして、その他のGemはGemfileに記述する。

source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
ruby '2.7.1'

gem 'sinatra'
gem 'sinatra-reloader'

ホームパスにアクセスしたら、signup_signin.erbを描画する。

できるだけbootstrapで統一。

headerとfooterのerbファイルは分けた。

出来上がっていくの見るの面白そうだと思って、ソースコードとherokuにデプロイしたやつを貼っておく。

(今回は開発しながら同時に本番環境にデプロイ。)

ソースコード:https://github.com/mako4kamiya/undouno_kiroku_app
アプリURL :https://undouno-kiroku-app.herokuapp.com/