Home

Projektuppgift – VanTrail 🚐🌍

Detta repository innehÄller projektet VanTrail, utvecklat inom kursen Frontend-baserad webbutveckling.

VanTrail Àr en webbapplikation för roadtrips och vanlife, dÀr anvÀndaren kan planera en resa, hitta intressanta stopp lÀngs vÀgen och utforska platser baserat pÄ vÀderförhÄllanden.

Projektet Àr byggt utan ramverk och anvÀnder flera externa API:er som tillsammans skapar en mashup-applikation.

Syfte 🏁

Syftet med projektet Àr att:

  • Bygga en webbapplikation utan frontend-ramverk
  • AnvĂ€nda och kombinera flera externa JSON-baserade API:er
  • Skapa en anvĂ€ndarvĂ€nlig och responsiv design
  • Arbeta med en modern utvecklingsmiljö (Vite)
  • Strukturera kod modulĂ€rt i JavaScript och SCSS
  • Implementera interaktivitet och förbĂ€ttrad UX
  • Dokumentera kod med JSDoc
  • Publicera webbplatsen via automatiserad arbetsprocess

Tekniker đŸ§©

  • Vite
  • HTML,
  • SCSS
  • JavaScript
  • Fetch API
  • OpenRouteService (routing & geokodning)
  • OpenStreetMap / Leaflet (kartfunktionalitet)
  • Open-Meteo (vĂ€derdata)
  • Overpass API (intressepunkter)
  • PWA (vite-plugin-pwa)
  • Sharp (bildoptimering)
  • JSDoc
  • Git & GitHub

Funktionalitet

đŸ—ș Ruttplanering

AnvÀndaren kan:

  • Ange start och destination
  • FĂ„ en rutt visualiserad pĂ„ en karta
  • Se rutten anpassad efter vald vĂ€g

📍 Stopp lĂ€ngs vĂ€gen

  • HĂ€mtar sevĂ€rdigheter via Overpass API
  • Filtrering av stopp (t.ex. mat, camping, tankstationer och utsiktsplatser)
  • Stoppen grupperas per kategori
  • BegrĂ€nsning av antal stopp per kategori
  • Visas bĂ„de i lista och pĂ„ karta

☀ Kör mot solen (vĂ€derfunktion)

  • HĂ€mtar anvĂ€ndarens position
  • Genererar alternativa platser
  • HĂ€mtar vĂ€derdata via Open-Meteo
  • Visar platser med bĂ€st vĂ€derförhĂ„llanden

🎹 Tema & UI

  • Dynamiskt temasystem (forest, sunset, ocean)
  • Tema sparas i localStorage
  • CSS custom properties anvĂ€nds för design
  • Responsiv layout

PWA đŸ“±

Applikationen Àr konfigurerad som en Progressive Web App:

  • Service worker registreras automatiskt
  • Manifest definierar appens metadata
  • Ikoner för installation finns inkluderade
  • Möjlighet att installera appen pĂ„ enheter

Publicering đŸ’»

Webbplatsen Àr publicerad via Netlify:

Öppna webbplatsen

Dokumentation 📄

JSDoc anvÀnds för att dokumentera funktioner och moduler i projektet.

Öppna dokumentationen

Projektrapport 📝

Öppna projektrapporten

Det hĂ€r tar jag med mig frĂ„n uppgiften ✅🙌

Det hÀr projektet har gett en djupare förstÄelse för hur en webbapplikation byggs frÄn grunden utan ramverk. Att kombinera flera API:er till en fungerande helhet var vÀldigt utmanande och samtidigt ocksÄ mycket lÀrorikt, sÀrskilt nÀr det gÀllde att strukturera koden pÄ ett tydligt sÀtt.

Arbetet med kartan och de externa API:erna var nog det som var svÄrast. Det var inte alltid som saker fungerade som jag tÀnkt, och jag fick flera gÄnger justera min lösning. Till exempel nÀr jag försökte fÄ till reverse geocoding och stötte pÄ problem med CORS, vilket gjorde att jag fick backa och tÀnka om. Det var ganska frustrerande och ibland kÀndes det som att allt gick emot mig, vilket gjorde det svÄrt att hÄlla motivationen uppe ett tag.

Samtidigt var det just de delarna som lÀrde mig mest. Jag fick en bÀttre förstÄelse för hur det faktiskt Àr att jobba med riktiga API:er, dÀr man inte alltid fÄr exakt det man vill ha och mÄste anpassa sig efter hur tjÀnsterna fungerar.

Jag tar sÀrskilt med mig:

  • Ökad förstĂ„else för hur API:er samverkar i en mashup
  • BĂ€ttre strukturering av kod i moduler (JS och SCSS)
  • Erfarenhet av att arbeta med Vite och automatiserad build
  • Hur viktigt UX och smĂ„ interaktioner Ă€r för helhetsupplevelsen
  • Att problemlösning Ă€r en iterativ process dĂ€r man ofta fĂ„r testa, justera och förbĂ€ttra