[Project]為替レート計算機プロジェクトレビュー
📈 Wanted_pre_onboarding-1st_calculate_project
Intro.
👫配備アドレス
http://exchangerating.s3-website.ap-northeast-2.amazonaws.com/
🧨githubアドレス
https://github.com/quack777/Wanted_pre_onboarding-1st_calculate_project
📃プロジェクト構造
├─ public
│ index.html
│
├─ src
│ └─ api
│ │ client.js
│ │
│ ├─ coponents
│ │ ├─ CalculateFirst
│ │ │ CalculateFirst.css
│ │ │ CalculateFirst/js
│ │ └─ CalculateSecond
│ │ CalculateRateBox.css
│ │ CalculateRateBox.js
│ │ CalculateSecond.js
│ │ CalculateSecondForm.css
│ │ CalculateSecondForm.js
│ │ CalculateSecondTemplate.css
│ │ CalculateSecondTemplate.js
│ │
│ ├─ pages\Main
│ │ MainPage.css
│ │ MainPage.js
│ │
│ ├─ styles
│ │ common.css
│ │ reset.css
│ │
│ ├─ utils
│ │ format.test.js
│ │ GetApi.js
│ │ GetExchangeRateByUSD.js
│ │ setMonthconvert.js
│ │ SetNumberFormat.js
│ └─ config.js
│ index.js
│ Router.js
└─
✔チャレンジ実施リスト
├─ public
│ index.html
│
├─ src
│ └─ api
│ │ client.js
│ │
│ ├─ coponents
│ │ ├─ CalculateFirst
│ │ │ CalculateFirst.css
│ │ │ CalculateFirst/js
│ │ └─ CalculateSecond
│ │ CalculateRateBox.css
│ │ CalculateRateBox.js
│ │ CalculateSecond.js
│ │ CalculateSecondForm.css
│ │ CalculateSecondForm.js
│ │ CalculateSecondTemplate.css
│ │ CalculateSecondTemplate.js
│ │
│ ├─ pages\Main
│ │ MainPage.css
│ │ MainPage.js
│ │
│ ├─ styles
│ │ common.css
│ │ reset.css
│ │
│ ├─ utils
│ │ format.test.js
│ │ GetApi.js
│ │ GetExchangeRateByUSD.js
│ │ setMonthconvert.js
│ │ SetNumberFormat.js
│ └─ config.js
│ index.js
│ Router.js
└─
🎞ビデオの実装
Ready.
まず、Freeon Boddingをする過程で、最初の課題だったので緊張していて、一人でコードを作るのではなく、隊員たちと一緒に協力していて、ワクワクしていました.最初の課題を読んで思ったほど難しくはありませんでしたが、中にはいじめやすい部分もありました.私はもう一人のメンバーと最初の計算機の制作をしました.指導者は課題を説明する時、それぞれの異なる機能を開発しないで、力を合わせて一緒に行うように教えてくれたので、他のメンバーはコードを書きます.私は共有の画面を見て、コードをチェックして、論理を考えて、修正する必要があるところがあれば、教えてあげます.よくコラボレーションを行うときは、それぞれの機能や部分によって割り当てられていて、初めて1つの計算機を使って、2人で力を合わせて行うので、ちょっと気まずいです.
コードが開始される前に、CRAが作成したプロジェクトをアーキテクチャとし、git commitメッセージを一定の場所に統合します.協力するときは、これらの基本的な事項を決めるべきだと気づきました.そうすれば、進行するときにもっと簡単になります.人によって考え方は異なりますが、commitメッセージやプロジェクトの構造を異なる方法で作成すると、他の人のコードを受け取ると理解しにくくなります.
Start.
💨コールAPI
useEffect(()=>{
setClick(false)
client.get(process.env.REACT_APP_API_URL,{params: {access_key: process.env.REACT_APP_API_KEY}})
.then((res)=>setExchangeRate(res.data.quotes))
.catch((err)=>console.dir(err))
},[userChoice,money]) //사용자가 값을 바꿀때마다 리렌더링
その後2番目の計算機が完了し、グループ会議APIを重ねてAPIフォルダを作成し、関数(getapiOfExchangeRate)を作成し、インポートして各コンポーネントで使用します.そして、if文が入っているのは無料のプランで、state値が200であっても通常の値が届かないことが多いので、if文を使ってデータを取得します.成功した値が真の場合にのみ値を保存するように設定します.
getApiOfExchangeRate("USD", countrys.map(e => e.engName).join(","))
.then((res) => {
if (res.data.success === true) {
console.log(res.data.quotes)
setExchangeRate(res.data.quotes);
setApiSuccess(true);
}
})
.catch((err) => console.dir(err))
💌 為替レート
APIを呼び出す為替レートをexchangeRate state値に格納し、値を正しく保存できない場合、exchangeRateオブジェクトにキー値を読み込めないエラーが発生し、APIで正しく保存した場合にのみ正常に動作し、&演算子が使用されます.
n/a.為替レート
userChoice<=state初期値(KRW):ドロップダウン・メニューをクリックして値を保存
このステータスを使用して必要な為替レートを抽出
入金金額
フォームが発行されるたびに、入力にsendMoney(送金金額)state値として値を保存し、為替レート計算を乗算します.
환율: {apiSuccess && SetNumberFormat(exchangeRate[`USD${userChoice}`])} {userChoice}/USD
{isSubmit? <div className='first-res'>수취금액은 {apiSuccess && SetNumberFormat(sendMoney*exchangeRate[`USD${userChoice}`])} {userChoice}입니다</div> : ''}
送金額送信金額alertウィンドウに制限
if (tmpMoney >=0 && tmpMoney <= 10000){
setIsSubmit(true);
}else{
alert("송금액이 바르지 않습니다")
setIsSubmit(false)
}
🤿 1234 => 1,234.00
function SetNumberFormat(cost) {
if (cost !== undefined) {
let tmpCost = cost.toFixed(2);
return tmpCost.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} else {
return false;
}
}
2番目の計算機の為替レートを計算するLogic
🧨問題が発生
-この問題は、APIを呼び出すときにPARMASを使用して値を指定することができ、ドルではなく他の国の為替レートにつながる可能性があります.
無料の計画を使っているので、私たちはそうすることはできません.
=>ということで、無料プランで持ってくるUSD~値を利用して、他の国が基準(EX.KRWUSD,JPYRW)の場合でも計算できる方法を思いつきました.
ドロップダウン・メニューとタブを使用してドル以外の為替レートを計算
上記の方法を考え出した後、API(無料プラン)を利用して為替レートを求める場合、CASEは全部で3種類に分けることができます.
CASE 1)プルダウンメニューがドルの場合
CASE 2)ドロップダウンメニューはドルではなく、他の国/地域およびタブでドルを選択します.
CASE 3)ドロップダウンメニューがドルではなく、他の国/地域とタブのドルであれば、他の国/地域ではありません.
🍳配置
私たちは配置を担当しています.他のチームはnetlifyに配置すると、API呼び出しに問題が発生すると言っています.awss 3に配置したほうがいいです.slackにメッセージがあるので、AWS s 3 bucketを使用して配置します.
配置コメントリンク
このリンクを参照して配置しました.AWS 3を使用して他のプロジェクトを行う際に一度試したことがあり、AWS CLIを使用してユーザーを追加し、パッケージ化した.jsonにコマンドを簡単に追加できます.
Finish.
やっぱり一人でチームを組むより効果的今回は第1段階の最終段階でリーダーを務め、まだ多くの不足点がありますが、私たちはもっと努力して、私たちのチームにもっと良い協力を生むべきです.完成した後、配置を成功させ、課題を提出することができて、とても嬉しいです.ずっと協力して配布してから一番嬉しかったです.完成した達成感はいつよりも私にとても良い感じを与えて、私を前進させます.企業課題は初めてですし、最初の課題だからかもしれませんが、少しでも実力を上げていればできると思います.残りの時間の中で、チームの任務を実行する時、努力してみんなを率いて良い結果を得ることを望んでいます.
残念なことに。
ユニットテストにjestを使用しようとしましたが、できませんでした.=>春節連休ジョークを習う
Reference
この問題について([Project]為替レート計算機プロジェクトレビュー), 我々は、より多くの情報をここで見つけました https://velog.io/@quack777/원티드-Frontend-프리온보딩-1차-과제-환율-계산기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol