Giter Club home page Giter Club logo

qanji's Introduction

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にアクセスできない場合の処理を追加する
  • [ ] トップページをきれいにする
  • [ ] 一覧ページをきれいにする
  • [ ] 詳細ページをきれいにする
  • [ ] ログインできるようにする
  • [ ] 自分がアップロードした画像しか表示出来ないようにする

qanji's People

Contributors

ichiroc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.