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:
Dokumentation đ
JSDoc anvÀnds för att dokumentera funktioner och moduler i projektet.
Projektrapport đ
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