6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

React.js + Supabase + GCPで作った円→外貨換算できる個人開発WEBアプリ「YEN$CONVERSION」

Last updated at Posted at 2023-08-31

はじめに

日本で売られている海外からの輸入品が現地ではどのくらいの値段(値段)なのか?
それが現在の為替レートで日本での値段から換算できるWEBアプリ「YEN$CONVERSION」を作りました。

動機

スーパーで買い物しているときにフィリピン産のバナナやノルウェー産の鮭などを買うことが多く、ふと現地ではどのくらいの値段なのかと思ったことが開発の動機です。
というのは表向きの理由で、本当はデータが自動的に更新される仕組みを作ってそれを使ってWEBアプリを開発したいというのが理由です。
まあ前者も嘘ではないけど後者の動機の方が強く、2:8くらいの感じです。

使い方

YEN(円)$(ドル)という名前ですが、ドル以外の外貨でもちゃんと換算できます。
使い方は簡単で
まず、好きな外貨を選択すると
通貨コードを選んで.png

現在の為替レートが表示されて
レートが表示されます.png

ついでに折れ線グラフでレートの推移も表示され
折れ線グラフで表示されます。.png

日本円での値段を入力すると
日本円での値段を入力すると.png

選んだ通貨で換算されます。
選んだ通貨での値段が表示されます.png

さらに任意の日付を選択すると
過去の日付を選ぶことで.png

当時のレートでの値段が表示されて
当時のレートでの値段が表示され.png

現在との差額が表示されます。
現在の値段との差額が表示されます.png

デモはこんな感じです(リンク先はYoutubeの動画です)。

使用した技術

アーキテクチャはこんな感じです。
無題のスプレッドシート.png
後日、また別の記事を作って詳細をまとめたいと思います。

フロント

React.js

状態管理はLocalStrageで行いました。
使用したライブラリは

  • tailwindcss(全体のスタイル)
  • flag-icons(国旗の表示)
  • react-modal
  • @nivo/line(折れ線グラフで使用)

Supabaseに入っているレートのデータを定期的に取得して更新しています。

Netlify

React.jsをデプロイしたサーバーです。使いやすくてしかも無料です。神。

バックエンド

Supabase

APIとデータベースで使用。
データベースに入れた値をそのままJSONで表示してくれてとても使いやすかったです。
日本語の情報があまり見つからなかったので公式ドキュメントや海外の方が上げている動画を見て試行錯誤しながらなんとかできました。慣れてしまえば結構使いやすかったです。しかも無料です。神。

GCP

定期実行してSupabaseにレートのデータを格納するために使いました。
かなり苦労したので、そのあたりの話は別の記事にまとめようと思います。

GAS(Google Apps Script)

外部のAPIから為替レートの情報を取得するために使用しました。
その値をスプレッドシートに書き込みました。

スプレッドシート

GASによって書き込まれたレートの情報をFunctionsに読み込んでもらうための中継地点として利用しました。

Functions

スプレッドシートから読み込んだレートの情報をSupabaseに書き込む処理を書きました。
色々あってPythonで書いてます。

Scheduler

Functionsの処理を定期実行するために使用しました。

まとめ

6月の終盤くらいから制作を始めて遅くとも7月末までには完成させようとしたのですが、トラブルが多発し8月の末まで延びてしまいました。
タイミング的に夏休みの宿題とか自由研究みたいな感じになってしまいましたが、完成させることが出来て良かったです。
反省点と課題が沢山見つかったので、それについては別の記事にまとめようと思います。
シンプルな機能しかありませんが、自分のやりたいことをすべて出来たので満足しています。
需要があるかどうかはわかりませんが、使って頂けたらとても嬉しく思います。
また思いついたことがあれば、機能を追加していくかもしれません。
今後もまた新しくWEBアプリを作っていきたいと思います。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?