Translate Japanese word to English word on pictures.
Ruby JavaScript HTML CSS
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
bin
client
config
db
lib
log
public
spec
test
tmp
vendor/assets
.gitignore
.rspec
Bowerfile
Gemfile
Gemfile.lock
Procfile
README.org
Rakefile
config.ru

README.org

Qanji (漢字)

Railsの復習の為に開発中。 日本に住む外国人が分かんない日本語の看板等を撮影してアップロードすると意味を教えてくれるWebアプリ。

現在停止中の 元アプリ(Rails3) のリニューアル。

設計っぽいもの

処理フロー

Model にいろいろ詰めこまずに Services 層をはさんでみる。

  1. View
    1. Upload image 初期画面をどうするか
  2. ImageController
    1. Image::Register.new(image_data)
    2. Word::RecognitionRequester.new(image_id)
    3. Redirect image member page. ImageController#show
  3. View
    1. Shown image page.
    2. [JS] Request words. “Image/1/words”
  4. WordController
    1. Word::RecognizedResultFetcher.new(image_id)
      • if success
        1. Word::Register.new(image_id,json)
        2. Coordinate::Register.new(word_id,json)
    2. Return JSON
  5. View
    1. Fetch json
    2. if it is in progress
      1. render in progress message in status element
      2. Request word( retun to 4-1 )
    3. if it successfully done.
      1. render successfully message in status element
      2. render result list elements

Classes

  • Model
    • Image
      • **words**
      • **jobs**
      • data:binary
      • file_name:string
      • job_key
    • Word
      • **coordinates**
      • text:string
      • score
      • category
    • Coordinate
      • x:float
      • y:float
    • Job
      • job_key:string
      • status:string
      • queue_time:datetime
      • message:string
      • result_body:string
  • Controller
    • ImageController
  • Services
    • Image
      • Register
      • RecognizeImageRequester
    • Word
      • RecognizeWordRequester
      • RecognizedResultFetcher
      • Register
    • Coordinate
      • Register

やること

  • [X] 画像をアップロード出来るようにする
  • [X] アップロードした画像を表示出来るようにする
  • [X] 画像の解析リクエストを出来るようにする
  • [X] 画像の解析結果を取得出来るようにする
  • [X] 解析した文字の訳を取得する
  • [X] 画像を縮小する(1024px以内) Docomoの制限は 幅および高さ4096ピクセル以内
  • [ ] 画像を適切な方向へ回転する
  • [X] 簡単なユーザー用画面を作成する
  • [X] 解析結果を詳細画面に表示する
  • [X] 解析結果を画像に重ねて表示する
  • [X] JS側のデータの持ち方をきちんと設計する
  • [ ] Wordの解析処理を非同期にして、再読込しなくても取得できるようにする
  • [ ] SPAっぽくする
  • [ ] APIにアクセスできない場合の処理を追加する
  • [ ] トップページをきれいにする
  • [ ] 一覧ページをきれいにする
  • [ ] 詳細ページをきれいにする
  • [ ] ログインできるようにする
  • [ ] 自分がアップロードした画像しか表示出来ないようにする