tegnike / port Goto Github PK
View Code? Open in Web Editor NEWポートフォリオ共有サイト
Home Page: https://port-port.herokuapp.com/
ポートフォリオ共有サイト
Home Page: https://port-port.herokuapp.com/
タイトルの通り。
サインアップしたら、すぐにログインされているようにする。
ユーザの登録の負担を減らすため。ユーザ数が増えてきたら認証機能を復活させるかも。
お気に入りランキングでログイン前だと「お気に入り数」が表示されない。
表示するように設定。
アラート・エラーメッセージの表示時間が短い。
1秒→3秒に増やす。
参考はQiita。
コメントモデルを作成する。
コメントはプログレスモデル および ユーザモデルに紐づく。
親のプログレスモデル および ユーザモデルとは1体多(0以上)のリレーションを形成する。
create, edit, update, destroy actionを実装。
※ index:ポートフォリオ個別、プログレス個別ページ
※ show:不要
※ new:ポートフォリオ個別ページ
プログレス個別ページ(show)がまだ存在しないので作成する。
ポートフォリオ個別ページに最新のプログレスを表示、それに紐づくコメントを全て表示する。
new、edit はポートフォリオ個別ページに実装する(editはAjaxを使う)。
自分のプログレスは評価できない。
評価カラムでは★を用いて評価し、平均点を表示する。(参考)
本番環境での動作(設定)も確認する。
プログレス個別ページ(show)を追加(ログイン前閲覧不可)
ポートフォリオ個別ページにコメント一覧を追加(index、delete)
ポートフォリオ個別ページにコメントフォームを追加(new、create)
投稿したコメントに編集ボタンを設け、ajaxでフォームへ切り替え(edit、update)
プログレス個別ページにコメント一覧を追加(index、delete)
自分のポートフォリオに紐づくプログレスには評価できないようにする(それ以外は必須)
平均点をプログレスに表示する。
evaluationは★で表示する。
herokuで動作確認
ポートフォリオ画像のリンクが所有ユーザページになっている。
ユーザページからポートフォリオページに修正する。
ポートフォリオのWebおよびGithub URLの入力が必須のため、企画・設計・開発段階(まだURLが設定されていない可能性がある)でも入力が求められてしまう。
企画・設計・開発段階ではそれらのURL入力が任意になるように修正する。
ある条件でポートフォリオ新規投稿画面で投稿してもエラーが発生してしまう。
本来は処理が成功すればポートフォリオ個別ページに遷移する。
ポートフォリオ一覧には表示され、そこからポートフォリオ個別ページに遷移してもエラーが発生してしまうことから、ポートフォリオ個別ページのアクセス時に原因があると考えられる。
app/views/shared/_portfolio_form.html.erb
でプログレスnewのみプログレスの投稿フォームが表示されるようになっていた。createでエラーが発生し、renderされた場合はこの投稿フォームが表示されないため、プログレスなしでもポートフォリオが投稿できるようになっていた。
上記ファイルで、create時もプログレスの投稿フォームが表示されるようにする。
また、controllerレベルでprogressにデータがない場合、エラーを返すようにする。
/app/public を中身そのままでappコンテナとnginxコンテナで共有したい。
併せて、以下の機能を実装する。
サインアップ時に選択できるようにする。
Twitter、Googleのアカウントでログインした場合は「非エンジニア」として登録し、Githubでログインした場合は「エンジニア」として登録する。
ユーザ情報で更新できるようにする。
「非エンジニア」の場合は、自身のユーザ画面に「非エンジニアとして登録されています。あなたがエンジニアの場合は、ユーザ情報を編集してください。」というメッセージを入れる。
ユーザ一覧画面、ユーザ詳細画面に「非エンジニア」の場合は、それがわかるように記載する。
Redisを使ってPV数計測とランキング機能を実装します。
Redisを利用することでRDBよりも高速で処理が可能になる。
スキルアップの一環としてRedisの発展的な利用に挑戦します。
ポートフォリオ個別ページを作成し、このページヘのアクセスを1カウントとするように設定。
なお、同ブラウザ同ユーザからのアクセスは何回アクセスしても1カウントとする。
自身のポートフォリオはカウントしない。
ポートフォリオ個別ページにPV数計測を表示する。
個別ページに表示するPV数は自身のユーザしか見れないことにする。(仕様はQiitaを意識)
ranking/pv ページを新たに作成し、トータル順位と週間順位上位10位までを表示する。
ranking/pv ページの閲覧に制限はかけない。
本番環境での動作(設定)も確認する。
TO DO
ポートフォリオにshow、new、edit、update actionを追加
ポートフォリオ個別ページを作成
Redisを使用して、個別ページへのアクセスで1カウント計測されるように設定
PV数を個別ページへ表示
ranking/pv ページを新たに作成し、トータル順位と週間順位上位10位までを表示
herokuで動作確認
ポートフォリオ投稿・編集画面で登録するURLが何でも投稿できてしまう。(Github以外にも)
このままだと、危険なサイトへ誘導され、個人情報を抜き取られる可能性があり得る。
Github url の方は Github のURLしか通さないようにバリデーションをかける。
Webアプリurl の方は決まった形式がなく、フィルタするのが難しいので、そういったユーザーがいた場合にアカウント凍結の措置を取る運用でカバーする。
プログレスが1つもないとポートフォリオ個別ページでエラーになる。これはポートフォリオ作成時にプログレスが自動で1つ作成されるため、1つは必ず存在する必要があるからである。
プログレスが1つしかないときは削除できないようにし、エラーメッセージを表示する。
TO DO リスト今回対応分
今までのリストはこちら #7
各コントローラーでrootへのrenderをreidrectに修正。
フォーム送信時に表示されるエラーを日本語にする。
create_user
メソッドを削除(使用しなくても動く)。必要だと思ったものを追加していきます。
比較的大きな単位の機能追加・修正だと判断した場合は個別でissueを作成します。
ブランチの単位で別にissueを作成し、プルリク時に参照します。
このissueはcloseしません。
I18nを用いてdeviseなどデフォルトで英語になっている箇所を日本語に修正する。
併せてそれぞれのページで使用されている英語も日本語へ修正する。
各ページのタイトルをI18nで管理する。
コントローラーの日本語も可能な限りI18nで管理する。
adminの日本語ダウンロード
エラーメッセージの表記をrailsチュートリアルlikeに修正する。
adminリンクをナビバーに移動。
SNSログインはパスワード変更非表示
プロフィール画像のサイズを上手く取得
各コントローラーでrootへのrenderをreidrectに修正。
factorlybot の create のタイミングと chrome コンテナの時間軸がずれている?ため、 spec/system/portfolios_interface_spec.rb
のテストが時間帯(ポーランド時間22時〜1次頃)によってバグる。
フォーム送信時に表示されるエラーを日本語にする。
フォロー および いいね失敗時にエラーメッセージが表示されない。
SNSログインのフラッシュメッセージが正しくない
失敗時のエラーが表示されない(redirect、renderともにflash.nowにしているため)
レイアウトのフラッシュメッセージをパーシャル化
system spec で使用中のcreate_user
メソッドを削除(使用しなくても動く)。
ローティングをshallowで簡略化
favicon作成。
ユーザ一覧(index)ページ作成。
プロフィール画像にgravatarを導入。プロフィール画像未設定でgravatarを表示する。
ユーザ一覧にフォロー/アンフォローボタンを追加。
プログレスにステータス、要レビュー、期間カラム追加
テストユーザログイン追加
README作成。
コメント評価は任意にする。
一度評価した人は2回評価できない。
現状のシステムでは、snsログインでは編集でメールアドレスを変更することができないようになっている。編集できない理由は、現時点ではemailを利用した機能がないため、またsnsログインではパスワード忘れでリマインドメールを送る必要がないためである。
つまり現在の仕様では、今後実装予定のお知らせメール等を送ることができないようになっている。
snsログインでもメールアドレスを変更できるようにする。
タイトルの通り。
不本意に編集・削除されないようにテストユーザではこれらのリンクが表示されないようにする。
ul, ol { list-style: none }
をデフォルトに修正する。TO DO リスト今回対応分
今までのリストはこちら #7
SNSログインはパスワード変更非表示
プロフィール画像のサイズを上手く取得
プログレスにステータス、要レビュー、期間カラム追加
テストユーザログイン追加
コメント評価は任意にする。
一度評価した人は2回評価できない。
プログレスモデルを作成する。
実際に評価されるモデルで、親のポートフォリオモデルとは1体多(1以上)のリレーションを形成する。
ポートフォリオ作成時に1つ目のプログレスが自動的に生成される。
show以外のすべてのactionを実装。
ポートフォリオ作成時に1つ目のプログレスも生成される。
ポートフォリオ個別ページに最新のプログレスを表示。
index、new、editページには閲覧を制限はかける。
本番環境での動作(設定)も確認する。
index、new、create、edit、update、delete actionを追加
ポートフォリオ個別ページに最新のプログレスを表示
ポートフォリオ作成時にプログレスを自動的に作成。
herokuで動作確認
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.