Giter VIP home page Giter VIP logo

weather-app-used-remix's Introduction

概要

  • 場所を入力することで、その場所の現在の天気、予報天気が取得できるアプリです。
  • デプロイ先
  • 作成に要した時間:約12時間15分(仕様確認、ESLint等の開発における設定、テスト実装、READEME記載等を含む)
  • (なお、予報取得箇所についてはweatherapiのお試し期間が終了し、freeプランに移行したため、現在は3日分のみの取得となります。)

ローカル環境での動作確認及びテスト実行

ローカル環境での動作

  • 今回は天気情報取得するに当たり、weatherapiを使用しています。

  • そのため、weatherapiに無料登録の上、ルートに.envファイルを作成して、API KEYを設定する必要があります(.env.exampleを参考)。

  • 上記手順を踏んだうえで、以下を実行します。

    $ npm i # 依存関係インストール。最初のみ。
    $ npm run dev # ローカル環境での起動

テスト実行

  • 実行コマンド
    $ npm run test
  • (参考:テスト結果) テスト結果

使用技術

指定技術に関するもの

  • フレームワーク: Reactのフレームワークとして、Remixを使用しています。
  • テスト: Vitest, Testing Library
    • Testing Library自体の使用は多少ありますが、Remix内での使用は初めてとなります。
    • また、Vitestについても初めてですが、Jestの使用については経験がございます。
    • なお、今回外部APIを使用することから、当初はRemixのcreateRemixStubでレスポンスをMock化し、ページ単位で統合テスト記載する方針を考えていました。
    • しかし、調査等時間がかかったため、ページ内の主要コンポーネントに対し、統合テストを記載することで、代用しています。

個別に追加したライブラリ等

  • 本実装では基本的にRemix作成時に自動で導入されるものやテスト、ESLintに関するものを除き、極力ライブラリを導入せず、自力で実装しています。
  • ただし、Vercelにデプロイするにあたり、@vercel/remixのみ追加で導入しています。

LLMの使用と有効性に関して

  • 今回、外部APIを使用しましたが、レスポンスの型定義、テスト用のMock値に関して、Chat GPT(GPT-4)やGitHub Copilotを使用しています。
    • 例えば、wetherapiのドキュメントを一部読み込ませて、型定義を作成するなどしています。
  • 多少、間違えることはありましたが、概ね問題なく定義されており、今回のような外部APIをもとに型定義する必要がある場合は大いに活用できるという所感です。

weather-app-used-remix's People

Contributors

almighty-k avatar

Watchers

 avatar

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.