Giter VIP home page Giter VIP logo

lodge's Introduction

Gitter chat Build Status Coverage Status Code Climate


これは何?

ロッジと呼びます。 __イントラネット限定でも使える、ナレッジ/ノウハウ情報共有サービス__です。 手軽に導入できて、チーム内全体の情報共有やナレッジ蓄積の手助けができることを目標としています。

主な特徴

以下のような特徴を持ちます。

  • 無料、OSS、MIT License
  • イントラネット内での構築が可能なので、社外秘な情報を含むナレッジやノウハウの共有に利用可能。
  • Markdown記法による直感的かつ簡単な記述でサクサク書ける
  • コードのシンタックスハイライト機能
  • 投稿前に確認できるプレビュー機能
  • ストック機能により、お気に入りの記事やあとで見たい記事等を手軽に保存
  • 記事に複数のタグをつけて管理
  • タグをフォローすることによる個人ごとのフィードのカスタマイズ表示
  • 全文検索や各種クエリなどを利用した高度な検索機能
  • 導入までの手軽さ(すぐにインストールできます)
  • コメント、Contribution、通知機能等によるコミュニケーションやナレッジ共有活動の活性化
  • 編集履歴機能により記事の変更点を差分表示
  • メールアドレスだけで誰でも簡単にアカウント作成が可能
  • Gravatarと連携したユーザアイコン(登録メールアドレスから自動取得)

上記以外にもまだまだ新機能開発や改善を行っていく予定です。皆様のご協力をお願い致します。

スクリーンショット

一覧画面

一覧画面

記事閲覧画面

記事閲覧画面

インストール

  1. 事前準備として以下が必要ですので、インストールしておきます。

    • Ruby 2.1, 2.2, 2.3
    • Gem 2.2以上
    • MySQL (MySQLを利用する場合)
    • sqlite3 (sqlite3を利用する場合)
    • Bundler
  2. まずは本プロジェクトをcloneしてきます。

    git clone https://github.com/lodge/lodge.git
  3. カレントディレクトリを移動します

    cd lodge
    
  4. Bundler をインストールします

    gem install bundler
    
  5. config/database.example.ymlconfig/database.yml としてコピーし、以下のように編集します(SQLite3もしくはMySQLをご利用になる場合はコメントアウトを外して設定すると楽です)。

    default: &default
    #  # === sqlite3 ===
    #  adapter: sqlite3
    #  encoding: utf8
    #  pool: 5
    
      # === mysql ===
      adapter: mysql2
      host: localhost
      username: your_mysql_user_name
      password: your_mysql_password
      encoding: utf8
      pool: 5
  6. bundle install を実行し、依存ライブラリをインストールします。

  7. .env.example.env としてコピーし、必要な環境変数を設定します。各コメントを参考に設定してください。最低限設定が必要な項目は以下の通りです。

    ### アプリケーションのドメイン
    LODGE_DOMAIN      = example.com
    
    # Cookie 検証用キーの設定
    # productionモードで動かす場合に設定(`bundle exec rake secret` で生成する)
    SECRET_KEY_BASE   = __some_random_string__
    
    # 認証キーの設定
    # productionモードで動かす場合に設定(`bundle exec rake secret` で生成する)
    DEVISE_SECRET_KEY = __some_random_string__
    
    ### メールの設定
    
    # 外部 MTA (SMTPサーバ) を利用してメール送信する場合
    DELIVERY_METHOD   = smtp
    
    # DELIVERY_METHOD = smtp の場合のみ
    # 以下の設定が有効です(それ以外は無視されます)
    SMTP_ADDRESS      = smtp.gmail.com
    SMTP_PORT         = 587
    SMTP_USERNAME     = username
    SMTP_PASSWORD     = password
    SMTP_AUTH_METHOD  = plain
    SMTP_ENABLE_STARTTLS_AUTO = true
    
    # テーマを設定します。
    LODGE_THEME       = lodge
  8. bundle exec rake db:create RAILS_ENV=production を実行し、データベースを作成します。

  9. bundle exec rake db:migrate RAILS_ENV=production を実行し、テーブルを作成します。

絵文字の準備

github/gemojiを利用して各種絵文字を利用できます。

絵文字をダウンロードする為、以下のコマンドを実行します。

bundle exec rake emoji

全文検索エンジンの準備

以下を実行し、全文検索エンジンのセットアップを行います。

./setup/sunspot-solr/setup-sunspot-solor.sh

上記により、solrの基本設定及び初回のIndex構築が行われます。

インデックスの手動更新(再作成)について

新規構築から利用する場合は通常必要ありませんが、 既存のLodgeからのアップデートを行った場合のインデックス作成や、 何らかの原因で検索インデックスを再構築したくなることがあった場合は、 Solrサーバが起動した状態で下記コマンドを実行することで再構築することができます。

bin/rake sunspot:reindex RAILS_ENV=production

Lodge(及びSolrサーバ)の起動

  1. カレントディレクトリを移動します。

    cd <lodgeをクローンしたディレクトリ>
  2. 全文検索用のSolrサーバを起動します。

    bin/rake sunspot:solr:start RAILS_ENV=production
    • もし上記で起動できない場合は…

      前回の起動プロセスなどが残っている可能性がありますので、

      bin/rake sunspot:solr:restart RAILS_ENV=production

      を何度か実行してみてください。

  3. Railsサーバを起動します。

    • Unicorn を使う場合

      bundle exec unicorn -c config/unicorn.rb -E production
    • Thin を使う場合

      bundle exec rails server thin -e production
    • WEBrick を使う場合

      bundle exec rails server -e production
  4. ブラウザで http://localhost:3000 にアクセスできたら起動成功です

  5. ログファイルは以下の場所に吐き出されます

    • Unicorn の場合
      • <lodgeをクローンしたディレクトリ>/log/unicorn.production.log
    • Thin, WEBrick の場合
      • <lodgeをクローンしたディレクトリ>/log/production.log

注意

Solrサーバを起動することにより、ポート 8983 にSolrの管理コンソールが起動し、 ブラウザからアクセスできる状態となってしまいます。

その為、悪意あるユーザがアクセスしてしまうことが懸念される場合、 以下のような対応が必要となるでしょう。

nginxを利用

フロントにnginxなどを立てておき、リバースプロキシ等を設定しアクセスを制限する。

Solrサーバーを個別に立てる

Solrサーバを別のサーバや立てておき、そちらに接続しにいく形にします。 その場合は、Sunspot公式サイトに従い、 config/sunspot.yml を適切な値へ設定してください。

またこのようにSolrサーバを別に構築する場合は、膨大な記事数等がある場合に、 検索や記事作成/更新時のパフォーマンスが著しく低下してしまうような場合にも有効です。 (ただ、通常はそこまでの規模になることはほぼ無いであろうと考えられます。)

Vagrant up

VirtualBoxVagrant を使って、 vagrant up することで、VM上に手早く開発環境を用意することができます。

手順

  1. VirtualBox をインストール

  2. Vagrant をインストール

  3. vagrant plugin install vagrant-vbguest

  4. vagrant plugin install vagrant-librarian-chef

  5. vagrant plugin install vagrant-vmware-fusion

  6. vagrant plugin install vagrant-gatling-rsync

  7. vagrant plugin uninstall vagrant-vmware-fusion

    • vagrant-gatling-rsync をインストールするために必要だが、VMWare のライセンスを持っていないとエラーになるため削除します
  8. git clone https://github.com/m-yamashita/lodge

  9. cd lodge

  10. vagrant up

  11. VMが起動するまで待つ

  12. vagrant gatling-rsync-auto

    • ホスト上の git clone したソースコードを自動的にVM上の /vagrant に同期するために必要です

    • vagrant rsync-auto がなぜか rsync__exclude を使ってくれないため、 vagrant-gatling-rsync を利用します

    • 公式ドキュメントのNFSの項目 に書かれていますが、VirtualBox の共有フォルダはパフォーマンスが悪いため使用していません。

      In some cases the default shared folder implementations (such as VirtualBox shared folders) have high performance penalties.

  13. http://localhost:3000/ にアクセスして Lodge の画面を見ることができたら成功です

諸々の情報

  • アクセス URL
  • DB
    • MySQL
  • メールサーバ
    • VM 内の Postfix
  • Lodge の起動スクリプト
    • /etc/init.d/lodge (Unicorn を起動)
  • RAILS_ROOT
    • /vagrant
  • RAILS_ENV
    • development
  • ログ
    • /vagrant/log/unicorn.development.log

最後に

開発にご協力頂ける方を募集しています。

まだまだ拙いLodgeの開発を手助けしていただける方を大募集中です。 新機能の開発や改善はもちろん、ソースのリファクタリングからテストの記述、 果てはマニュアル改善まで、どうぞ遠慮無くpull request頂ければと思います。 開発前に開発ガイドに目を通して頂けると幸いです。

lodge's People

Contributors

comuttun avatar dddaisuke avatar iyuuya avatar jey3dayo avatar joe-re avatar kakipo avatar kakusuke avatar kkdd avatar m-yamashita avatar shiena avatar tamajun avatar tanaka0x avatar tasuku-s avatar yasuhiroki avatar yuki24 avatar zenizh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lodge's Issues

sqlite3でログイン画面が表示されない

セットアップしました。

apt-get update
apt-get install -y git ruby sqlite3 libsqlite3-dev bundler ruby-execjs
apt-get install -y postfix mutt

cd /srv
git clone https://github.com/m-yamashita/lodge.git

cd lodge
cp -p config/database.example.yml config/database.yml
vi config/database.yml

bundle install

rake db:create
rake db:migrate

cp config/environments/production.example.rb config/environments/production.rb

echo export SECRET_KEY_BASE=\"$(rake secret)\" >> ~/.bashrc
source ~/.bashrc

/etc/init.d/postfix start

rails server -e production

ここで http://localhost:3000 にアクセスすると以下エラーが出力されます。

I, [2014-07-14T22:28:21.575615 #5383]  INFO -- : Started GET "/users/sign_in" for 172.17.42.1 at 2014-07-14 22:28:21 +0900
I, [2014-07-14T22:28:21.577593 #5383]  INFO -- : Processing by CustomDevise::SessionsController#new as HTML
I, [2014-07-14T22:28:21.581205 #5383]  INFO -- : Completed 500 Internal Server Error in 3ms
F, [2014-07-14T22:28:21.585930 #5383] FATAL -- :
ActiveRecord::StatementInvalid (Could not find table 'users'):
  config/initializers/quiet_assets.rb:6:in `call_with_quiet_assets'

目次を見やすくする方法を検討

現状では目次と記事タイトル・記事が融合してしまっており、長い記事になると読みにくいです

Qiita のように分離するか、デフォルトをオフにしてしまうかするのが良いと思います

Lodge のユースケースとしては、ある程度小さめな粒度で記事をかき、
タグによってまとめるスタイルだと思うので、後者でも良いと思います

developブランチを作成しました。

開発版はこちらに。masterは今後安定版としてタグを打つタイミングでのみマージします。
今後のPullRequestはdevelopブランチにお願いいたします。

外部向けAPI作成

#26 を実装するにあたって、外部から利用可能なAPIを実装する必要がある

作成した Kobito もどきエディタが Qiita でも使えるようになったら嬉しいので、
APIは Qiita 互換にしたい

最低限記事のCRUDを実装する

メール送信設定をもう少し柔軟にしたい

#35 の修正中に気づいたのですが、現在の .env を使う方法は、

  • development
    • config.action_mailer.delivery_method = :sendmail
    • 追記: 勘違いです、こちらも :smtp 固定ですね
  • production
    • config.action_mailer.delivery_method = :smtp

に固定されていて、方法を選ぶことができません。

社内構築の場合ですと外部SMTPに繋ぐ方が稀な気がしますので、
.env に delivery_method も追い出してしまい、設定値を development / production 両方とも同じように反映されるようにしたほうが良さそうです。

絵文字

情報共有を楽しくするという点では意外と重要性が高い気がする。

Gitter

GitHub と連携できる Gitter というのがあります。(参考記事

Issue にたてるまでもないような相談事をしたりする場所があってもいいのかなあという気が少ししましたので、良ければご検討ください。

参考までに、私のフォークしたリポジトリのチャットを貼っておきます (誰でも参加できます)
https://gitter.im/comutt/lodge

Codeブロックのスタイルがおかしい

現状、Markdown部分にCodeRayによるSyntax highlightを利用すると幅がはみ出てしまったり、諸々のスタイルがおかしくなってしまっているので、修正する必要があります。

db/schema.rb is different each kind of database

db/schema.rb が SQLite や MySQL で(同じソースコードでも)違う db/schema.rb が生成されます。

今のバージョン管理方法でよいでしょうか(改善する方法や、コミット時はSQLiteで生成するというようなルールは考える必要はないでしょうか)。

db/schema.rb is generated differently each kind of database (SQLite, MySQL or so).

Should we consider whether current version control is the best or not?

共同編集機能

優先度高い。

Contributionの扱いとか、排他制御どうするかとか色々考えないといけない。

下書き機能

優先度は高い。あわよくば自動保存したい。

ストックした記事内の優先表示

いつも業務で利用させていただいます。

記事のストックが多くなると、古い記事を閲覧するときに、検索やページ遷移の手間が発生してしまいます。
ストックした記事内でも、よく利用するいくつかの記事は、作成順序に関わらず、優先的に表示できるようにしてほしいです。(お気に入り記事)

さらに、トップページに、ストックや投稿した記事等とは別に、お気に入り記事という欄があると、使いやすくなると思います。

関連記事を表示

閲覧中の記事についているタグと同等のものがついたものを表示 でいいのかな。。。

Markdownヘルプ表示が消えない&重複表示される

#93 のマージ後に見つけたバグです。

記事の新規投稿及び編集では問題ありませんでしたが、コメント部にも同様のヘルプ表示用のトリガーがあり、これをクリックしヘルプ表示後、任意の箇所をクリックし閉じようとすると暗転部分のみ残り続けてしまい操作不能となります。

また既にコメントが追加された状態で、コメント部の編集をクリックしエリアを表示させ、そこをクリックするとポップアップが二重に開いてしまいます。

GoogleChromeで確認しました。

Travis CI でのテストを複数DBでするようにする

概要

現在、 Travis では Ruby の複数バージョンはテストしているが、
単一データベース (MySQL) しかテストしていない状態のため、
Ruby のバージョン x データベースの種類のマトリクスでテストするようにしたい。

  • Ruby
    • 1.9.3
    • 2.0.0
    • 2.1.2
  • Database
    • SQLite3
    • MySQL
    • PostgreSQL

参考

Testing Multiple Rubies and Databases on Travis CI の "Multiple ruby versions & database types" のあたり

公式のテスト実行方法を記載してほしい

すみません、単純に Ruby 素人なせいなのですが、 rspec を使ったテスト実行方法がわかりません。

$ bundle exec rspec test/
No examples found.


Finished in 0.00025 seconds (files took 1.42 seconds to load)
$ bundle exec rspec --pattern test/*/*_test.rb
/vagrant/test/controllers/comment_controller_test.rb:1:in `require': cannot load such file -- test_helper (LoadError)
    from /vagrant/test/controllers/comment_controller_test.rb:1:in `<top (required)>'
    from /vagrant/vendor/bundler/ruby/2.1.0/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1057:in `load'
    from /vagrant/vendor/bundler/ruby/2.1.0/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1057:in `block in load_spec_files'
    from /vagrant/vendor/bundler/ruby/2.1.0/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1057:in `each'
    from /vagrant/vendor/bundler/ruby/2.1.0/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1057:in `load_spec_files'
    from /vagrant/vendor/bundler/ruby/2.1.0/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:97:in `setup'
    from /vagrant/vendor/bundler/ruby/2.1.0/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:85:in `run'
    from /vagrant/vendor/bundler/ruby/2.1.0/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:70:in `run'
    from /vagrant/vendor/bundler/ruby/2.1.0/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:38:in `invoke'
    from /vagrant/vendor/bundler/ruby/2.1.0/gems/rspec-core-3.0.2/exe/rspec:4:in `<top (required)>'
    from /vagrant/vendor/bundler/ruby/2.1.0/bin/rspec:23:in `load'
    from /vagrant/vendor/bundler/ruby/2.1.0/bin/rspec:23:in `<main>'

フォローしていないタグの最新記事と、最新タグの一覧を右メニューに表示

現状運用として下記の点が問題になってるのではないかと感じます。

  • 新しいトピック(タグ)について何か投稿しても誰にも気づいて貰えない。
  • タグ一覧を能動的に見に行かないと新しいタグが出来たことに気づけない
  • トップページがフォローしてるタグの投稿しかでない
  • 人気記事一覧はあるものの、ポピュラーなタグ以外は読まれないのでそもそも人気記事にすらならない。

これらの解決策として、表題の様な機能が必要と考えます。

わりと早急に解決したい問題なので、次回リリースまでに何とかしたいと思います。

Markdownのスタイルを修正

いくつかを修正したいと思います。

  • テキストの行間を小さく
  • コードブロック上の行間を小さく
  • インラインコードブロックの上下paddingを小さく
  • 引用の際の色が薄いので若干濃くする

その他気づいたところがあればそれも直します。
v0.10.1 に出します。

Gravatar説明

まったくのノーヒント状態なのでさすがに必要。

コードブロックの表示方法

現状

現状では横サイズ制限、自動改行はせず、はみ出たらスクロールバー。
ちなみにQiitaではプレビューで確認する限りだと自動改行になるようだ。
縦サイズは無制限。

上記のような形で実装しているが、
大きなコードブロックになると非常に見難い。

縦も横も大きなコードだった場合、
最下部にしかスクロールバーが出ないため一般のユーザーは一度最下部にいってスクロールしなければならずかなりストレスがたまる。

対策

そこで、以下のような仕様にするのはどうか。

  • 縦幅はmaxを画面内に収まる程度に固定。それ以上は縦スクロールバー表示
  • 横幅はこれまで通り、自動改行もしない。

何が解決するか

縦幅が固定されることにより常に横スクロールバーに安定してアクセスができるようになる。このサイズはpx固定にするか、jsによりブラウザサイズから計算させるかは要検討。

他に良い案があれば教えてください。

CentOSでデータベースのmigrationに失敗する

CentOS6.4でインストール中に以下のエラーが出てしまいます。Fedoraでテストしたときには出ないエラーです。Rubyの知識がないので,ご対応頂ければ幸いです。
Rubyは1.9.3-p547,Gemは2.4.1です。データベースはMySQLです。

$ bundle exec rake db:migrate RAILS_ENV=production
rake aborted!
NoMethodError: undefined method `to_sym' for nil:NilClass
/home/ishigaki/Soft/lodge/config/environments/production.rb:94:in `block in <top (required)>'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/railtie.rb:210:in `instance_eval'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/railtie.rb:210:in `configure'
/home/ishigaki/Soft/lodge/config/environments/production.rb:2:in `<top (required)>'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/engine.rb:594:in `block (2 levels) in <class:Engine>'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/engine.rb:593:in `each'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/engine.rb:593:in `block in <class:Engine>'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/initializable.rb:30:in `instance_exec'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/initializable.rb:30:in `run'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/initializable.rb:55:in `block in run_initializers'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/initializable.rb:44:in `each'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/initializable.rb:44:in `tsort_each_child'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/initializable.rb:54:in `run_initializers'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/application.rb:300:in `initialize!'
/home/ishigaki/Soft/lodge/config/environment.rb:5:in `<top (required)>'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/application.rb:276:in `require_environment!'
/home/ishigaki/Soft/lodge/vendor/bundle/ruby/1.9.1/gems/railties-4.1.6/lib/rails/application.rb:389:in `block in run_tasks_blocks'
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

画像アップロードの際に画像以外のファイルを添付できてしまう

DnDで画像以外のファイルをアップロードすると、普通に成功してしまう。

この時imgタグによりリンク切れ画像のような表示のされ方をするが、ファイルの実体は正常にアップロードされており、画像のURLをコピーする等で直接URLを叩くことダウンロードできてしまう。

仕様として画像以外のアップロードに対応するか、画像以外を禁止にするなどの対策が必要。

各種一覧系のソート機能

UIに工夫が必要。テーブルヘッダを出すのはちょっとかっこわるい。
セレクトボックスによる選択式は冗長。うーん。。。

用語参照機能

記事の中で特定の単語が出てきた時にその単語の意味がわからないために記事を読み進められないといったストレスを緩和する為の仕組み。

開発参加する上でのお決まりごとを Wiki にまとめる

自分がミスしたからなおさらなのですが、 #27 のような Issue だと
やはり見落としてしまうリスクが高いと思いますので、
ラフな状態で良いでしょうから README なり Wiki になり書いていくべきじゃないかなあと思います。

Kobitoもどき

要件

  • Markdown作成、リアルタイムプレビュー
  • クロスプラットフォーム(それぞれのバイナリがあればよし)
  • local保存
  • Lodgeへのログインと投稿機能

何よりもまず動くことが大事。

実装方法

このあたり使って簡単にできないかな?
http://shoesrb.com

ヘッダーナビゲーションの再考

現状では記事の新規作成リンクが記事一覧が表示されている画面からでないと表示されないようです
記事の作成はメインの機能だと思うので、どこからでもアクセスできるようにヘッダーに設置したほうがよいのではないでしょうか
また、現在「編集」という文言のリンクがヘッダーにありますが、何に対する編集なのかわかりにくいように感じました

そういったことも含めて、再度考えなおすのがよいと思います

テンプレート機能

記事のテンプレートを作ったり、新規作成時に適用したりできる機能。

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.