Skip to content
Merged
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 33 additions & 73 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,73 +1,33 @@
# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@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/)

## React Compiler

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).

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

```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...
},
},
])
```

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:

```js
// eslint.config.js
import reactX from "eslint-plugin-react-x"
import reactDom from "eslint-plugin-react-dom"

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...
},
},
])
```
http://it2810-09.idi.ntnu.no/project1/



# Vær app



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 og velge fra. Selve trodde også arkitekturen på siden ble lettere å lage. YR/metrologisk institutts API ble tatt i bruk da vi trodde de hadde den beste dataen og at den var godt dokumentert, og gjennom 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.



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 Continious Integration pipelinen i GitHub actions, som påtvinger riktig linting og formattering før pull request kan godkjennes.



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 deg 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.



## KI deklarasjon



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.




Loading