diff --git a/README.md b/README.md index 813ba3e..98fa5db 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,28 @@ -# React + TypeScript + Vite +http://it2810-09.idi.ntnu.no/project1/ -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. +# Vær app -Currently, two official plugins are available: +Vi valgte å lage en vær-app fordi det ga en klar funksjonsprofil og oppfattet letthet av å lære av andre eksempler, samt mange vær-api å velge fra. Vi trodde også at arkitekturen på siden ville ble lettere å lage. YR/Meteorologisk institutts API ble tatt i bruk da vi trodde de hadde den beste dataen og at den var godt dokumentert, og Open-meteo's geocoding API ble tatt i bruk for å finne koordinater basert på stedsnavn, ettersom dette var det første geocoding APIet vi fant som ikke trengte en API key. -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs) -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) +Tech-stack er valgt i tråd med oppgavebeskrivelsen, derav React med Typescript, vite, tanstack query og HTML WEB storage api, samt et par andre npm packages for hjelpe med utviklingshastiget og lesbarhet av koden. ESlint og Prettier har blitt tatt i bruk, blant annet gjennom script i repo, samt i Continuous Integration pipelinen i GitHub actions, som påtvinger riktig linting og formatering før pull request kan godkjennes. -## React Compiler +Tester er skrevet for de fleste komponenter og hooks for meteorologisk api. Test under test/hooks/fetchCities/useGetCityCoordinates.test.ts verifiserer at hook henter data fra rest-api, og at det gjøres riktig antall ganger. fetchWeather/useGetWeather.test.ts tester at sanitizeAltitude gir passende altitude verdier som skal brukes til rest-api kall. Tester under tests/components tester at riktig elementer med riktig innhold havner i nettleser ved runtime. -The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). +## How-to -## Expanding the ESLint configuration +Programmet bruker npm som package manager, vite, og vitest som test runner. -If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: +For å starte webappen lokalt, kjør -```js -export default defineConfig([ - globalIgnores(["dist"]), - { - files: ["**/*.{ts,tsx}"], - extends: [ - // Other configs... - - // Remove tseslint.configs.recommended and replace with this - tseslint.configs.recommendedTypeChecked, - // Alternatively, use this for stricter rules - tseslint.configs.strictTypeChecked, - // Optionally, add this for stylistic rules - tseslint.configs.stylisticTypeChecked, - - // Other configs... - ], - languageOptions: { - parserOptions: { - project: ["./tsconfig.node.json", "./tsconfig.app.json"], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) +```bash +npm install +npm run dev ``` -You can also install [eslint-plugin-react-x](https://npmx.dev/package/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://npmx.dev/package/eslint-plugin-react-dom) for React-specific lint rules: +Og for å kjøre tester kan `npm run test` kjøres. -```js -// eslint.config.js -import reactX from "eslint-plugin-react-x" -import reactDom from "eslint-plugin-react-dom" +## KI deklarasjon -export default defineConfig([ - globalIgnores(["dist"]), - { - files: ["**/*.{ts,tsx}"], - extends: [ - // Other configs... - // Enable lint rules for React - reactX.configs["recommended-typescript"], - // Enable lint rules for React DOM - reactDom.configs.recommended, - ], - languageOptions: { - parserOptions: { - project: ["./tsconfig.node.json", "./tsconfig.app.json"], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) -``` +KI ble brukt i utviklingsprosessen for å støtte utviklings- og debuggingsprosessen. Litt kode har også blitt generert, hovedsakelig i CI/CD-scriptet for å deploye, ettersom ingen av oss hadde erfaring med apache, eller bruk av self-hosted action runners. I tilfeller hvor KI kode har blitt generert og brukt har den blitt sett over av et medlem av gruppa. KI har også blitt primært brukt for skriving av css for ViewCity komponent, mens andre css stylings er skrevet for hånd. + +Gruppen erfarte at KI var nyttig til å forklare, foreslå og diskutere under utvikling, dog at noen kode forslag spesifikt virket overkompliserte eller vanskelig å lese/tyde.