prebill_react's People
prebill_react's Issues
更新日を迎えたサービスをメールで通知する機能を追加
- 更新日を迎えたサービスを抽出し、そのサービスを登録しているユーザーに対してメールを送信するRakeタスクを追加
- メールを送信する処理を実装
- メールのテンプレートを実装(PreBillで実装したものを流用する予定)
サービスの更新に関するフロントの処理を実装
- サービス更新のAPIを利用してサービスを更新するフォームを表示
- サービス更新をリクエストする処理を実装
- レスポンスに応じたページを表示
サービス登録時の入力補完のAPIを実装
- PresetServiceモデルを追加
- PreBillで利用しているマスタデータを使ってデータを投入できるようにする
サービス登録時の入力補完に関するフロント側の処理を実装
- APIからマスタに登録済みのサービス一覧を取得する処理を実装
- 入力補完機能を実装
- PreBillではautocompleterを利用していたが、流用できるかわからないので、Reactで同じ機能を持つライブラリを探してみる
パスワードリセット機能を追加
- パスワードリセット用のテンプレートファイルを作成
- パスワードリセット用のコンポーネントを作成
- パスワードのリセットが要求されたらリセット用のフォームへのリンクを含んだメールを送信
- パスワードリセットフォームから新しいパスワードを設定し、ユーザー情報を更新
- Flashメッセージを表示し、ログイン状態にする
ユーザーがアカウントを作成したらログインした状態にしたい
現在、アカウントを作成したらログインせずにトップページにリダイレクトされる。
そこからログインする必要があるため、アカウントを作成したら自動的にログイン状態となるようにしたい。
元の実装では、メールアドレスを確認するフェーズがある。アカウント作成直後にはログイン状態にはならないものの、メールアドレスの確認後は自動的にログイン状態となるようになっている。
今回の実装ではメールアドレス確認の優先度は低いため、ひとまずアカウントを作成したらログイン状態となるようにしておく。
利用金額をトップページに表示させる
- 年間合計利用額を算出する処理を追加し、トップページ(サービス一覧ページ)に表示
- 月平均利用額を算出する処理を追加し、トップページ(サービス一覧ページ)に表示
ユーザー登録機能のAPIを作成
- ユーザー認証gemを用いてUserモデルを追加
- PreBillと同じsorceryを利用する予定
- ユーザー登録用のテンプレートファイルを作成
- サーバー側でユーザー登録処理を実装
RailsとReactの導入
サービスが更新日を迎えたら次回の更新日を表示させる
ログイン/ログアウト機能を追加
- ログイン用のテンプレートファイルを作成
- ログイン用のコンポーネントを作成
- ヘッダーにアカウント作成・ログインページのリンクを追加
- 仮のランディングページを作成(デザイン等は書かない)
- ログインする処理を実装
- ログイン後はトップページ(サービス一覧ページ)にリダイレクト
- ログアウトする処理を実装
- ログアウト後はトップページ(ランディングページ)にリダイレクト
- Flashメッセージを表示
サービスを登録するAPIを作成
- Serviceモデルを作成
- バリデーションを追加
- サービスを登録するためのテンプレートファイルを作成
- DBへの登録処理を実装
サービス登録/修正後に表示されるFlashメッセージが、リロードしても繰り返し表示されることがある
#52 の実装中に発見
詳細は上記PRに記載した。
サービスを更新するAPIを作成
- サービス編集ページのテンプレートファイルを作成
- サービスの更新処理を実装
サービスの一覧を取得するAPIを作成
- サーバー側で(ユーザー毎ではない)サービスの一覧を取得するAPIを作成
設定された通知日を迎えたらメールで通知する機能を追加
- ActionMailerのセットアップ
- 登録されているサービスの通知日を迎えたらメールで通知する機能を追加
- 通知日が今日であるサービスを抽出する処理を追加
- メール送信機能の実装
- 該当するユーザーに対してメールを送信するRakeタスクを実装
ヘッダー/フッターの作成
- トップページにヘッダーを作成
- 未ログイン時に表示するフッターを作成
- ヘッダーにユーザー設定やログアウト処理を行うリンクのリストを表示するドロップダウンを設置
サービス一覧ページを作成
- サービス一覧ページを作成
- サービス一覧を取得する処理を実装
- 個々のサービスの情報をページ上に表示させる
ユーザー登録に関するフロント側の処理を実装
- ユーザー登録フォームのコンポーネントを作成
- レスポンスに応じたページを表示
ユーザーの更新機能を作成
- ユーザー登録で作成したフォームコンポーネントを表示してユーザー情報の更新ができるようにする
- サーバー側でユーザーの更新処理を実装
- 正常に更新されたらトップページ(サービス一覧ページ)リダイレクト
- 検証エラーの場合は再度更新フォームをrender
- Flashメッセージを表示
サービスの削除に関するフロント側の処理を実装
- サービス一覧ページに削除ボタンを設置
- サービスの削除をリクエストする処理を実装
- レスポンスに応じたページを表示
ユーザー退会機能を追加
- ユーザー退会用のテンプレートファイルを作成
- コンポーネントを作成
- ユーザー設定ページの下部にユーザー退会ページへのリンクを追加
- ユーザーの削除処理を実装
- 正常に削除されたらトップページ(ランディングページ)にリダイレクト
- Flashメッセージを表示
eslintの導入と設定
- eslintの導入
- eslintの設定を追加
- https://hibbard.eu/rails-react-crud-app/ で利用していたeslint-config-airbnbを利用する予定
rubocopの導入と設定
- rubocopを導入
- 設定を追加
- PreBillで利用している設定と同様の設定(railsで利用されているもの)を利用する予定
サービス一覧ページのサービスのリストをコンポーネントに分割
- リスト表示するコンポーネントを作成
- ボタンのコンポーネントを作成
- ヘッダーのコンポーネントを作成
- 個々のサービスを表示するコンポーネントを作成
サービス登録に関するフロントの処理を実装
- サービス登録のAPIを利用してサービスを登録するフォームを作成
- サービス登録をリクエストする処理を実装
- レスポンスに応じたページを表示させる
サービス一覧ページに表示されているデータを整形して表示したい
- 金額をフォーマットする
- ¥1,000のように表示させる
- メモ欄のフォーマット
- 改行を反映させる
- URLが含まれていたときはリンクとして表示させる
- 日付(更新日、通知日)のフォーマット
- 2020年6月29日のように整形
- 日付が今年の場合は年は省略させる
- 日付が今年より先の場合は年数も含めて表示
- 2020年6月29日のように整形
- プランの表示を日本語で表示させる
サービスを削除するAPIを作成
- サーバー側でサービスを削除する機能を実装
メールアドレスの確認機能を追加
- アカウント作成時に入力されたメールアドレス先にメールを送信
- 添付されたリンクにアクセスするとサービスが利用可能になるようにする(この時点でログイン状態となる)
- トークンの有効期限を設定(1週間)
- Flashメッセージを表示
サービスが更新されたことをアプリ内で通知する機能を追加
- Notificationモデルを作成
- 更新日を通知するRakeタスクにNotificationを作成する処理を追加
- ヘッダーに通知アイコンを配置
- 通知用のコンポーネントを作成
- 通知アイコンをクリックしたときにドロップダウンで通知が表示されるようにする
- 通知があるときには通知アイコンにマークを表示
- 通知内容をクリックしたときに既読状態になるようにする
サービスとユーザーの関連付けをしてユーザーの登録したサービスが表示されるようにする
- Serviceモデルにuser_idを追加
- トップページにはユーザーの登録したサービスのみが表示される
- ユーザーが退会したら登録済みのサービスも削除
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.