情報工学実践 - 開発実習

content

twitterの機能

基本的な機能
  1. ユーザはアカウントを作成することができる(メール、ハンドルネーム、パスワード、プロフィール)
  2. ユーザはメールとパスワードでログインすることができる
  3. ログインするとタイムラインが表示される
  4. ユーザはtwitすることができる
  5. ユーザは他のユーザをフォローすることができる
その他機能
  1. ユーザは他のユーザにダイレクトメッセージを送ることができる
  2. ハンドルネームの前に「@」を付けてtwitすると返信になる
  3. 自分への返信のみ表示する画面がある
  4. お気に入りtwitフラグを立てることができる
  5. リツイート機能
用語説明 (* MYID = ログインしているユーザのID) select following_user_id from user_followings where user_id = MYID;

DB設計例

twitter ERD

twitter用のテーブル設計例SQL

twitter.create_table.sql

上記usersテーブルへのinsert文

twitter.insert.sql


twitter開発手順例

sudo su - postgres

postgres$ createdb twitter_development -E UTF8
postgres$ createdb twitter_production -E UTF8
postgres$ createdb twitter_test -E UTF8
postgres$ exit

rails twitter -D postgresql
cd twitter

vi config/database.yml
# username を postgres に変更(計3ヶ所)
# パスワードを設定している場合は password: も設定(計3ヶ所)

下記サイトの方法で restful_authentication ログイン機能を作成する。
restful_authentication を使った認証機能作成

./script/generate scaffold twit user_id:integer text:text
./script/generate model user_following user_id:integer following_user_id:integer

usersテーブルにnameとprofileを追加する
./script/generate migration add_column_users_name
vim db/migrate/*_add_column_users_name.rb
-----------
class AddColumnUsersName < ActiveRecord::Migration
  def self.up
    add_column :users, :name, :string
    add_column :users, :profile, :text
  end

  def self.down
    remove_column :users, :name
    remove_column :users, :profile
  end
end
-----------

twitter_development データベースにデータが入っている場合は空にする
sudo su - postgres
postgres$ dropdb twitter_development
postgres$ createdb twitter_development -E UTF8
postgres$ exit


rake db:migrate

vi config/routes.rb
# 以下のように変更(welcome -> twits)
-------------
  # Install the default routes as the lowest priority.
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'

  map.root :controller => "twits"
-------------


テストデータtwitter.insert.sqlを作成する。
上記ファイルをダウンロードし、postgresql ユーザで実行。
sudo su - postgres
postgres$ psql twitter_development -f twitter.insert.sql

./script/server

ブラウザで http://localhost:3000/twits にアクセスする。

テストユーザの情報
loginnamepassword
hogehogepass
fugafugapass
matzmatzpass
scaffold を編集していく

参考URL


DB再構築手順

DBを再構築したい場合の手順。
sudo su - postgres

postgres$ dropdb twitter_development
postgres$ dropdb twitter_production
postgres$ dropdb twitter_test

postgres$ createdb twitter_development -E UTF8
postgres$ createdb twitter_production -E UTF8
postgres$ createdb twitter_test -E UTF8

exit

cd twitter
rake db:migrate


Debian で rails 環境構築

sudo aptitude install postgresql

sudo aptitude install libpgsql-ruby rails rubygems


content