Webbutveckling 1 · område 8 · uppgift
Projekt 7 – Webbplats åt en kund
Det här är områdets kravdokument. Projektguiden, repetitionssidan och passen ska stödja kraven nedan – inte tvärtom.
- 19 mars Delinlämning kl 23:59 Kravspec, projektplan och wireframes – länken till projektdokumentet lämnas i itslearning.
- 7 juni Slutinlämning kl 23:59 Sajten och projektdokumentet – repo-länken lämnas i itslearning.
- 8 juni Prov 6 Slutprov över hela kursen, skriftligt utan dator.
1. Uppdraget
Du ska bygga en komplett webbplats åt en kund, från första frågan till publicerad och testad sajt. Kunden väljer du bland fem fiktiva kunder, eller så tar du med en riktig. Du får arbeta ensam eller i par.
Det här är kursens sista projekt, och det är det första där du bestämmer vad som ska byggas. Därför är halva uppgiften att ta reda på vad kunden behöver, skriva ner det, planera och i efterhand jämföra med vad det blev. Den andra halvan är sajten, och den ska visa allt du kan: struktur, form, anpassning, tillgänglighet, interaktivitet och optimering.
Sajten byggs från grunden i ett nytt repo. Ingenting återanvänds från din kurssajt, utom det du har lärt dig.
2. Två inlämningar
| När | Vad | Lämnas som | |
|---|---|---|---|
| Delinlämning | fredag 19 mars 23:59 | Kravspecifikation, projektplan och wireframes | Länken till ditt projektdokument i Google Docs |
| Slutinlämning | måndag 7 juni 23:59 | Sajten och hela projektdokumentet | Länken till ditt publika GitHub-repo |
Mellan dem ligger uppehållet, vecka 12–19. Planen du lämnar 19 mars är den du bygger efter i maj, så skriv den så att du förstår den själv när du kommer tillbaka.
3. Projektdokumentet
Allt som inte är kod skriver du i ett enda dokument i Google Docs, i fyra delar:
| Del | Skrivs | Innehåller |
|---|---|---|
| 1. Kravspecifikation | pass 74 | Kunden, syftet, målgruppen, innehållet, kraven och avgränsningen |
| 2. Projektplan | pass 75 | Mål, sitemap, wireframes, tidsplan, milstolpar och risker |
| 3. Testprotokoll | pass 83 | Webbläsare och enheter, validering, WAVE, test utan JavaScript, buggrapporter |
| 4. Uppföljning | pass 84 | Vad som blev som planerat, vad som inte blev det, och varför |
Mallen ligger i itslearning och på områdets startsida. Länken ger dig en egen kopia med ett klick – skriv aldrig i originalet. Varje avsnitt i mallen har en kort instruktion i kursiv stil; ta bort den när du har fyllt i avsnittet.
Arbetar ni i par har ni ett gemensamt dokument. Den ena gör kopian och delar den med den andra.
4. Välja kund
Läs kundbeskrivningarna och välj en. De är olika stora med flit: frisörsalongen och hunddagiset är tydliga och avgränsade, bandet är friast och kräver mest av dig själv. Välj efter vad du vill visa, inte efter vad som verkar lättast.
En riktig kund går bra, men det är mer arbete. Du sköter kontakten själv, du måste få kundens texter och bilder, och du behöver kundens tillstånd att publicera dem. Villkoren står sist i kundbeskrivningarna. Säg till på pass 74, så godkänns kunden senast med projektplanen 19 mars.
5. Kraven
Kryssa av allt eftersom. Kryssen sparas i din webbläsare.
Alla tolv ska vara uppfyllda. De första fyra gäller processen, de åtta sista sajten.
Ska-krav — nivå E
Bör-krav — mot nivå C
Utmaning — mot nivå A
6. Tekniska krav
| Krav | Varför |
|---|---|
| Nytt repo från kursens template-repo, publikt | Slutprojektet är en ny sajt. Privat repo går inte att rätta |
| Inga bibliotek, inga ramverk, inga byggverktyg | Samma regel som hela kursen |
Inga style=-attribut, inget onclick i HTML:en | Struktur, stil och beteende hålls isär |
Inget innerHTML för text som kommer utifrån | Säkerhetsregeln från Projekt 5 |
| Gemener i filnamn, bindestreck i stället för mellanslag, relativa sökvägar | Sajten ska fungera publicerad |
| Bilder du inte har rätt till används inte | Egna foton, egna SVG:er, eller fritt licensierade med TASL-hänvisning |
| Inga riktiga personuppgifter utan samtycke | Gäller särskilt den som har en riktig kund |
Det här lämnas in
19 mars, i itslearning-uppgiften Projektplan: länken till projektdokumentet. Dokumentet ska vara delat så att läraren kan läsa och kommentera det.
7 juni, i itslearning-uppgiften Slutprojekt: länken till ditt publika GitHub-repo. Inget annat, och inte koden. Arbetar ni i par lämnar ni båda in samma länk.
I repot ska finnas:
index.html och dina övriga sidor
stil.css
js/ om sajten har skript
bilder/ bara de bilder sajten använder
README.md med länk till sajten och projektdokumentet
Så delar du projektdokumentet
- Dela uppe till höger i Google Docs.
- Under Allmän åtkomst: välj skolan, så att alla i skolan som har länken kan öppna dokumentet. Sätt rollen till Kommentator.
- Kopiera länken och klistra in den i itslearning.
- Pröva länken: be någon bredvid dig öppna den. Kommer de inte in, kommer inte läraren in heller.
Ett dokument som inte är delat är samma fel som ett privat repo – det går inte att bedöma.
7. Arbeta i par
Ni har ett repo och ett projektdokument. Den ena äger repot, den andra läggs till som collaborator – en medarbetare med rätt att pusha.
- Ägaren: repot → Settings → Collaborators → Add people, och skriver in den andras GitHub-namn.
- Den andra: godkänner inbjudan, i mejlet eller på github.com.
- Båda: öppnar var sin Codespace på samma repo.
Två regler gör att ni inte skriver över varandra:
git pullförst varje pass, innan du ändrar något. Då har du den andras senaste ändringar.- Dela upp arbetet per fil. Ni kan båda ha varsin sida, men inte samma sida samtidigt.
stil.csshar en ägare, och den andra säger till innan hen ändrar i den.
Säger git push rejected, har den andra pushat sedan du senast hämtade. Kör git pull, sedan git push igen. Står det conflict efter git pull, fråga läraren innan du gör något mer.
Ni bedöms var för sig. Commit-historiken visar vem som skrivit vad, och båda ska kunna förklara hela sajten, inte bara sin halva.
8. Bedömningsmatris
| Del | E | C | A |
|---|---|---|---|
| Planering | Kravspec och projektplan är ifyllda och inlämnade i tid | Valen är motiverade mot kundens målgrupp | Kraven är mätbara och planen har realistiska risker med åtgärder |
| Struktur och kod | Semantisk HTML, extern stilmall, validerar, tom konsol | Designsystem i variabler som används konsekvent på alla sidor | Koden är lätt att läsa och följa – struktur, stil och beteende är helt åtskilda |
| Layout och responsivitet | Fungerar från 320 px till desktop | Brytpunkterna är motiverade av innehållet | Layouten fungerar vid varje bredd utan specialfall |
| Tillgänglighet | alt, label, tangentbord, WAVE utan fel | Kontrast och fokusmarkering är genomtänkta | aria-live där något ändras, och allt fungerar med skärmläsare |
| Interaktivitet | En fungerande funktion, sajten fungerar utan JavaScript | Funktionen är anpassad och förbättrar något som redan fungerar | Egen diskret funktion skriven ur reglerna |
| Optimering | Bilderna är skalade och i modernt format | srcset och sizes, Lighthouse före och efter | Mätningen är analyserad och kvarvarande problem förklarade |
| Test och uppföljning | Testprotokollet och uppföljningen är ifyllda | Varje fel har en åtgärd, och ändringar mot planen är förklarade | Uppföljningen drar slutsatser om processen |
Matrisen läses vågrätt: en A-kolumn förutsätter att E och C i samma rad är gjorda.
9. Kom igång – de tre första sakerna
- Välj kund. Läs alla fem beskrivningarna innan du väljer. Tänk på vad du vill visa att du kan.
- Gör din kopia av mallen och döp den till kundens namn. Arbetar ni i par: den ena gör kopian och delar den med den andra.
- Skriv kravspecens första avsnitt: vem kunden är och varför de behöver en sajt. Kan du inte svara på det i tre meningar vet du inte tillräckligt om kunden än – läs beskrivningen igen.
10. Så ligger tiden
| Vecka | Lektioner | Bör vara klart |
|---|---|---|
| v.11 | 74 tis 16/3 · 75 fre 19/3 | Kund vald, kravspec och projektplan klara, wireframes ritade. Delinlämning fredag 19/3 23:59 |
| v.12–19 | uppehåll | – |
| v.20 | 76 mån 17/5 · 77 tis 18/5 · 78 fre 21/5 | Planen godkänd, repot skapat. Milstolpe 1: all HTML på plats och validerar |
| v.21 | 79 mån 24/5 · 80 tis 25/5 · 81 fre 28/5 | Layouten klar. Milstolpe 2: fungerar från 320 px till desktop. Milstolpe 3: funktionen fungerar, och sajten fungerar utan den |
| v.22 | 82 mån 31/5 · 83 tis 1/6 · 84 fre 4/6 | Optimerad och testad. Milstolpe 4: testad, publicerad och dokumenterad – testprotokoll, README.md och uppföljning |
| v.23 | 85 mån 7/6 | Finputs. Deadline måndag 7/6 23:59 |
| v.23 | 86 tis 8/6 | Prov 6 och kursavslut |
Varje vecka i maj och juni har tre pass. Milstolparna är hållpunkter, inte inlämningar: läraren tittar på dem under passet, och ligger du efter är det då vi pratar om det.
Betygssamtalen förs under byggpassen 77–85, ett i taget vid din dator.
Prov tisdag 8 juni
Slutprovet är skriftligt, utan dator, och täcker hela kursen. Det bygger på ett anonymiserat slutprojekt från klassen och har också frågor om juridik, etik och säkerhet från område 5. Repetitionssidan på områdets startsida går igenom kursen område för område.
11. Checklistor inför inlämning
En checklista per inlämning. Kryssen sparas, precis som kraven.
19 mars – projektplanen
7 juni – sajten
7 juni – dokumentet
12. Felsökning
10 rader
| Problem | Trolig orsak | Gör så här |
|---|---|---|
| Läraren kommer inte in i dokumentet | Dokumentet är inte delat, eller bara med dig | Dela → Allmän åtkomst → skolan, Kommentator |
| Du skrev i mallen i stället för i en kopia | Du öppnade originallänken med /edit | Arkiv → Gör en kopia, och fortsätt i kopian |
| Figma-länken visar Request access | Figma-filen är inte delad | Share → Anyone with the link → can view |
| Du vet inte vad kunden vill ha | Kravspecen är för tunn | Läs kundbeskrivningen igen och skriv upp vad kunden säger ordagrant |
| Tidsplanen håller inte | Planen var för optimistisk | Skriv ner avvikelsen i tidsplanen nu, inte i efterhand. Stryk ett bör-krav hellre än att missa ett ska-krav |
git push säger rejected | Den andra i paret har pushat | git pull, sedan git push |
git pull säger conflict | Ni har ändrat samma rader | Fråga läraren innan du gör något mer |
| Kunden har inte skickat sina bilder | Riktig kund, och det dröjer | Bygg med egna platshållarbilder i rätt storlek och byt ut dem när materialet kommer |
| Sajten fungerar lokalt men inte publicerad | Stor bokstav i ett filnamn, eller absolut sökväg | Gemener, relativa sökvägar |
| Du hittar inga fel att skriva i testprotokollet | Du har testat det du vet fungerar | Låt någon annan testa, eller följ protokollets rader en i taget |