Spaces:
Running
Her er en ren tekstlig gjennomgang av hvordan appen fungerer og hvordan designet oppleves, slik at en utvikler og designer kan forstå alt uten tekniske detaljer:
Browse files---
### Hovedidé
Appen er en mobil-optimert løsning hvor folk kan oppdage og dele steder, turer og aktiviteter i nærmiljøet sitt. Brukeren ser på kartet hva som finnes rundt seg, kan filtrere på kategorier, og lage egne poster slik at andre kan oppleve det samme. Alt er knyttet til posisjon og kart.
---
### Navigasjon og struktur
* **Bunnmeny** med tre hovedvalg:
1. **Kart** – startskjerm der man utforsker.
2. **Legg til** – knappen i midten for å lage nytt sted eller ny tur.
3. **Profil** – oversikt over egen aktivitet.
Dette gir en enkel og kjent måte å navigere på, tilpasset mobil.
---
### Kartvisning
* Når man åpner appen ser man et kart med markører for steder i nærheten.
* Flere markører tett sammen grupperes i klynger som kan trykkes på for å zoome inn.
* Øverst ligger **kategori-knapper** (f.eks. tur, lekeplass, badeplass, gapahuk, utsikt, skatebane, fiskeplass osv.) slik at man kan filtrere.
* Nederst dukker det opp en **kortkarusell** med forslag på steder nær deg. Kortene viser bilde, navn og hvor langt unna de ligger. Sveiper man sideveis får man flere forslag.
* Trykker man på et kort eller en markør åpnes detaljsiden for stedet.
---
### Sted-detalj
* Viser et lite kartutsnitt med markør på stedet.
* Tittel, kategori og kort beskrivelse.
* Ett eller flere bilder som man kan sveipe gjennom.
* Praktisk info: fasiliteter, tips, sesong, om det passer for barn, om det er gratis eller ikke.
* Knapp for å **sjekke inn** (logge at du har besøkt stedet).
* Knapp for å **dele** med andre via lenke.
* Mulighet for å legge stedet inn som et stopp i en tur.
---
### Legg til opplevelse (sted)
Brukeren følger en steg-for-steg prosess:
1. Velge eller ta bilder.
2. Velge posisjon på kart eller bruke egen posisjon.
3. Skrive inn navn, beskrivelse, velge kategori, legge til tips, fasiliteter og annet.
4. Se en forhåndsvisning og publisere.
---
### Legg til tur
* Man får en introduksjon med tips (ta bilde av startpunkt, beskriv turen godt).
* Når man starter turen logges ruten som en linje på kartet.
* Underveis kan man legge til stopp, enten ved å bruke eksisterende steder eller lage nye på posisjonen.
* Når turen avsluttes gir man den et navn, beskrivelse, vanskelighetsgrad, distanse osv., og kan laste opp bilder.
* Resultatet er en tur som andre kan følge med kart og stopp underveis.
---
### Profil
* Viser brukernavn og bilde.
* Liste over **besøkte steder** (sted og tidspunkt).
* Liste over **fullførte turer**.
* Liste over egne **publiserte steder og turer**.
* Mulighet for å logge ut.
---
### Design og opplevelse
* Hele appen er bygget med tanke på mobilskjerm, med enkel navigasjon og store trykkflater.
* Kartet er hovedscenen og fyller skjermen, med filtre på toppen og kortliste nederst.
* Kortene har runde hjørner, bilder i topp og tekst under.
* Kategorier vises som små avrundede “knapper” som kan slås av og på.
* Profilen har en oversiktlig layout med seksjoner for besøkt, fullført og publisert.
* Når man legger til noe, føles det som en veiledet prosess med ett steg av gangen.
* Alt er minimalistisk med hvit bakgrunn, grønn som hovedfarge (knapper og ikoner), og tydelige bilder.
* Opplevelsen er inspirert av moderne mobilapper med «kort» og «bottom sheets» som man drar opp for mer info.
---
### Oppsummert funksjonalitet
* **Se kart med steder i nærheten.**
* **Filtrer på kategori.**
* **Se detaljside med info, bilder og tips.**
* **Sjekk inn på steder.**
* **Del steder med andre.**
* **Legg til nytt sted (bilde + kart + tekst).**
* **Legg til ny tur (spor rute, stopp, bilder).**
* **Se egen profil med besøkt, fullført og publisert innhold.**
* **Logg inn/ut (dummy i første versjon).**
---
Vil du at jeg setter opp en **ren funksjonsliste med prioritering (MVP vs videreutvikling)** slik at utvikleren vet hva som må med i første versjon og hva som kan komme senere?
- README.md +8 -5
- index.html +160 -18
|
@@ -1,10 +1,13 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: WanderWhiz Explorer 🧭
|
| 3 |
+
colorFrom: blue
|
| 4 |
+
colorTo: pink
|
| 5 |
+
emoji: 🐳
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
| 8 |
+
tags:
|
| 9 |
+
- deepsite-v3
|
| 10 |
---
|
| 11 |
|
| 12 |
+
# Welcome to your new DeepSite project!
|
| 13 |
+
This project was created with [DeepSite](https://deepsite.hf.co).
|
|
@@ -1,19 +1,161 @@
|
|
| 1 |
-
<!
|
| 2 |
-
<html>
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
</html>
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>WanderWhiz Explorer</title>
|
| 7 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
| 8 |
+
<script src="https://unpkg.com/feather-icons"></script>
|
| 9 |
+
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
| 10 |
+
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.globe.min.js"></script>
|
| 11 |
+
<style>
|
| 12 |
+
#vanta-bg {
|
| 13 |
+
position: fixed;
|
| 14 |
+
top: 0;
|
| 15 |
+
left: 0;
|
| 16 |
+
width: 100%;
|
| 17 |
+
height: 100%;
|
| 18 |
+
z-index: -1;
|
| 19 |
+
}
|
| 20 |
+
.category-chip {
|
| 21 |
+
transition: all 0.3s ease;
|
| 22 |
+
}
|
| 23 |
+
.category-chip.active {
|
| 24 |
+
background-color: #4ade80;
|
| 25 |
+
color: white;
|
| 26 |
+
}
|
| 27 |
+
.place-card:hover {
|
| 28 |
+
transform: translateY(-4px);
|
| 29 |
+
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
|
| 30 |
+
}
|
| 31 |
+
</style>
|
| 32 |
+
</head>
|
| 33 |
+
<body class="bg-gray-50">
|
| 34 |
+
<div id="vanta-bg"></div>
|
| 35 |
+
|
| 36 |
+
<div class="container mx-auto px-4 py-8 max-w-md">
|
| 37 |
+
<!-- Header -->
|
| 38 |
+
<header class="flex justify-between items-center mb-8">
|
| 39 |
+
<div>
|
| 40 |
+
<h1 class="text-3xl font-bold text-gray-800">WanderWhiz</h1>
|
| 41 |
+
<p class="text-gray-600">Discover hidden gems nearby</p>
|
| 42 |
+
</div>
|
| 43 |
+
<div class="flex space-x-2">
|
| 44 |
+
<button class="p-2 rounded-full bg-white shadow">
|
| 45 |
+
<i data-feather="search"></i>
|
| 46 |
+
</button>
|
| 47 |
+
<button class="p-2 rounded-full bg-white shadow">
|
| 48 |
+
<i data-feather="user"></i>
|
| 49 |
+
</button>
|
| 50 |
+
</div>
|
| 51 |
+
</header>
|
| 52 |
+
|
| 53 |
+
<!-- Map Placeholder -->
|
| 54 |
+
<div class="bg-gray-200 rounded-2xl h-64 w-full mb-8 relative overflow-hidden">
|
| 55 |
+
<div class="absolute inset-0 flex items-center justify-center">
|
| 56 |
+
<i data-feather="map" class="w-16 h-16 text-gray-400"></i>
|
| 57 |
+
</div>
|
| 58 |
+
<div class="absolute bottom-4 left-4 bg-white p-2 rounded-full shadow">
|
| 59 |
+
<i data-feather="crosshair" class="text-green-500"></i>
|
| 60 |
+
</div>
|
| 61 |
+
</div>
|
| 62 |
+
|
| 63 |
+
<!-- Categories -->
|
| 64 |
+
<div class="flex flex-wrap gap-2 mb-8">
|
| 65 |
+
<button class="category-chip px-4 py-2 bg-white rounded-full shadow text-sm font-medium">Hiking</button>
|
| 66 |
+
<button class="category-chip px-4 py-2 bg-white rounded-full shadow text-sm font-medium">Beaches</button>
|
| 67 |
+
<button class="category-chip px-4 py-2 bg-white rounded-full shadow text-sm font-medium active">Viewpoints</button>
|
| 68 |
+
<button class="category-chip px-4 py-2 bg-white rounded-full shadow text-sm font-medium">Waterfalls</button>
|
| 69 |
+
<button class="category-chip px-4 py-2 bg-white rounded-full shadow text-sm font-medium">Camping</button>
|
| 70 |
+
</div>
|
| 71 |
+
|
| 72 |
+
<!-- Nearby places -->
|
| 73 |
+
<div class="mb-8">
|
| 74 |
+
<h2 class="text-xl font-bold mb-4 text-gray-800">Nearby Adventures</h2>
|
| 75 |
+
<div class="space-y-4">
|
| 76 |
+
<!-- Place Card 1 -->
|
| 77 |
+
<div class="place-card bg-white rounded-xl shadow p-4 transition">
|
| 78 |
+
<div class="flex">
|
| 79 |
+
<div class="w-24 h-24 bg-gray-200 rounded-lg mr-4 overflow-hidden">
|
| 80 |
+
<img src="http://static.photos/nature/320x240/1" alt="Place" class="w-full h-full object-cover">
|
| 81 |
+
</div>
|
| 82 |
+
<div class="flex-1">
|
| 83 |
+
<h3 class="font-bold text-gray-800">Eagle Peak Summit</h3>
|
| 84 |
+
<p class="text-sm text-gray-600 mb-2">Stunning 360° views of the valley</p>
|
| 85 |
+
<div class="flex items-center text-sm text-gray-500">
|
| 86 |
+
<i data-feather="map-pin" class="w-4 h-4 mr-1"></i>
|
| 87 |
+
<span>3.2 km away</span>
|
| 88 |
+
</div>
|
| 89 |
+
<div class="flex items-center text-sm text-gray-500 mt-1">
|
| 90 |
+
<i data-feather="star" class="w-4 h-4 mr-1 text-yellow-400"></i>
|
| 91 |
+
<span>4.7 (128 reviews)</span>
|
| 92 |
+
</div>
|
| 93 |
+
</div>
|
| 94 |
+
</div>
|
| 95 |
+
</div>
|
| 96 |
+
|
| 97 |
+
<!-- Place Card 2 -->
|
| 98 |
+
<div class="place-card bg-white rounded-xl shadow p-4 transition">
|
| 99 |
+
<div class="flex">
|
| 100 |
+
<div class="w-24 h-24 bg-gray-200 rounded-lg mr-4 overflow-hidden">
|
| 101 |
+
<img src="http://static.photos/nature/320x240/2" alt="Place" class="w-full h-full object-cover">
|
| 102 |
+
</div>
|
| 103 |
+
<div class="flex-1">
|
| 104 |
+
<h3 class="font-bold text-gray-800">Hidden Falls</h3>
|
| 105 |
+
<p class="text-sm text-gray-600 mb-2">Secret waterfall with swimming hole</p>
|
| 106 |
+
<div class="flex items-center text-sm text-gray-500">
|
| 107 |
+
<i data-feather="map-pin" class="w-4 h-4 mr-1"></i>
|
| 108 |
+
<span>5.1 km away</span>
|
| 109 |
+
</div>
|
| 110 |
+
<div class="flex items-center text-sm text-gray-500 mt-1">
|
| 111 |
+
<i data-feather="star" class="w-4 h-4 mr-1 text-yellow-400"></i>
|
| 112 |
+
<span>4.9 (84 reviews)</span>
|
| 113 |
+
</div>
|
| 114 |
+
</div>
|
| 115 |
+
</div>
|
| 116 |
+
</div>
|
| 117 |
+
</div>
|
| 118 |
+
</div>
|
| 119 |
+
|
| 120 |
+
<!-- Bottom Navigation -->
|
| 121 |
+
<nav class="fixed bottom-0 left-0 right-0 bg-white shadow-lg flex justify-around py-3 px-4 max-w-md mx-auto">
|
| 122 |
+
<button class="p-2 text-gray-700 rounded-full">
|
| 123 |
+
<i data-feather="map"></i>
|
| 124 |
+
</button>
|
| 125 |
+
<button class="p-2 bg-green-500 text-white rounded-full shadow-lg transform -translate-y-4">
|
| 126 |
+
<i data-feather="plus"></i>
|
| 127 |
+
</button>
|
| 128 |
+
<button class="p-2 text-gray-700 rounded-full">
|
| 129 |
+
<i data-feather="user"></i>
|
| 130 |
+
</button>
|
| 131 |
+
</nav>
|
| 132 |
+
</div>
|
| 133 |
+
|
| 134 |
+
<script>
|
| 135 |
+
// Initialize Vanta.js globe background
|
| 136 |
+
VANTA.GLOBE({
|
| 137 |
+
el: "#vanta-bg",
|
| 138 |
+
mouseControls: true,
|
| 139 |
+
touchControls: true,
|
| 140 |
+
gyroControls: false,
|
| 141 |
+
minHeight: 200.00,
|
| 142 |
+
minWidth: 200.00,
|
| 143 |
+
scale: 1.00,
|
| 144 |
+
scaleMobile: 1.00,
|
| 145 |
+
color: 0x4ade80,
|
| 146 |
+
backgroundColor: 0xf8fafc,
|
| 147 |
+
size: 0.8
|
| 148 |
+
});
|
| 149 |
+
|
| 150 |
+
// Toggle category chips
|
| 151 |
+
document.querySelectorAll('.category-chip').forEach(chip => {
|
| 152 |
+
chip.addEventListener('click', () => {
|
| 153 |
+
chip.classList.toggle('active');
|
| 154 |
+
});
|
| 155 |
+
});
|
| 156 |
+
|
| 157 |
+
// Initialize feather icons
|
| 158 |
+
feather.replace();
|
| 159 |
+
</script>
|
| 160 |
+
</body>
|
| 161 |
</html>
|