Giter Site home page Giter Site logo

framework-exam's Introduction

Individuell examinationsuppgift 2024-04-29 - 2024-05-12

Planering

Jag valde att dra igång en Github Project, även om jag är själv och jobbar på uppgiften, då det blir mycket enklare att hålla struktur på sig själv då, och tydligare se hur långt man kommit i projektet. Bild på min Github Project

Val av Hooks

Mina val av hooks är inte så utsvävande, till exempel:

  • useState och useEffect - Vilket är ett krav för att få saker att fungera som det ska.
  • useNavigate - Användbart för att navigera genom routes på sidan under vissa omständigheter, t.ex om du hamnar på en sida som du inte menat att vara på (efter ett köp och du försöker komma åt den sidan efteråt genom adressfältet) eller för att ordna knappars funktioner efter att ha utfört det de ska göra.
  • useLocation - Använder denna egentligen endast för en anledning, och det är att kalla med en parameter mellan OrderPage och PurchaseCompletePage där jag vill ha med ID nummer för senaste köpet.
  • useParams - För att kunna rigga upp info i DetailsPage.

Du kommer se en lite “onödig” store som heter pathStore som egentligen finns till för 2 syften:

  • Den hjälper till med att kolla av om du gjort ett köp precis och ska hamna i /order/complete. Hamnar du på den adressen, men inte har rätt “path” så kommer du istället till en Error-sida*. Kan tillägga att här används även location.state för att ta med sig ID från OrderPage så jag kan visa det i en liten tabell.

*Hade jag gjort mitt eget API så hade jag skött den hanteringen lite snyggare, men jag arbetar med det jag har till mitt förfogande!

  • Den styr även en bakgrundsdetalj i App.jsx som ändrar bakgrunden för tickets med en liten animation.

Val av Externa Bibliotek

Här har jag haft svårt att hitta något som skulle passa för denna uppgift. Men då jag ville använda mig av Font Awesomes ikoner när jag inte orkade göra egna så tog jag del av deras bibliotek via npm. Detta var väldigt smidigt att använda, mycket enklare än jag hade tänkt mig, och inte så svårt att styla till om man vill.

Axios tycker jag är väldigt bekvämt att använda också, men har lite att lära mig med det biblioteket tycker jag. Jag vill försöka göra det smidigare att hantera parametrar till API istället för att förlänga adressen “manuellt”, och den lösningen finns säkert men jag har inte orkat söka för mycket inför denna uppgift.

Sista ord

Jag hoppas uppgiften ser bra ut och att den uppfyller de krav som behövs för att få ett bra betyg!

För mer information om själva uppgiften så hänvisar jag till lärarens uppgifts-sida!

framework-exam's People

Contributors

jaerker avatar

Watchers

 avatar

framework-exam's Issues

Tickets-page

Som användare vill jag kunna se biljetterna som om jag hade de fysiskt.

Image

Vilka funktioner / detaljer ska finnas med?

  • Lista med Tickets (Varje separat biljett eller för varje event)
  • Carousel tänk på biljetterna?
  • Tryck på specifik biljett, ska man komma in på en mer täckande vy då? och kunna flippa mellan de med en knapp i hörnet? och trycka igen på biljetten så kommer man ut till original vyn?

Cart-page

Som användare vill jag kunna hålla koll på vad jag har i min kund-korg och kunna ändra snabbt väl där inne

Image

Vilka funktioner / detaljer ska finnas med?

  • en UL för att hålla alla items
  • LI för varje event
  • en CounterContainer för varje event, som håller namn, plats och hur många biljetter (Counter)
  • Totala värdet av sin order

Image

  • Knapp för att skicka order / betala

Components

  • Gör i ordning Event-kort -> Card.jsx
  • Gör i ordning Sökfält -> Searchbar.jsx
  • Gör i ordning Knapp -> Button.jsx
  • Gör i ordning Container -> CounterContainer.jsx
  • Gör i ordning "Counter" -> Counter.jsx
  • Gör i ordning Korg -> Cart.jsx
  • Gör i ordning Ticket -> Ticket.jsx
  • Gör i ordning Barcode -> Barcode.jsx

Details-page

Som användare vill jag mer utförligt få information om olika event.

Image

Vilka funktioner / detaljer ska finnas med?

  • Catchy textrad högst upp (You are about to score some tickets to)
  • Namn på event
  • Datum och tid
  • Plats
  • Counter-sektion (Återanvändbar komponent)
  • [ ]

Image

  • Priset
  • Plus knapp
  • Minus knapp
  • Antal biljetter valda i mitten.

Events-page

Som användare vill jag kunna se vilka event som är aktiva inom närmsta tiden

Vilka funktioner / detaljer ska finnas med?

Sök-baren

Image

  • Sök-formulär
  • Filtreras bland eventen i listan baserat på vad man skriver
  • Kanske en "filter" knapp för att filtrera fram efter datum och plats?

Event-listan

Image

  • Datum för eventet
  • Pris
  • Tid
  • Namn
  • Ort?
  • Lokal som eventet håller hur

Setup Handlers

Som utvecklare vill jag ha enklare kontroll över mina API anrop.

Vilka funktioner / detaljer ska finnas med?

  • Både API anrop och Local (agent.js och local.js) behövs!

  • hämta info från API

  • Spara info i Zustand samt backup i localStorage.

  • API

  • Kolla igenom API dokumentationen (baserat på vilken jag kommer använda) och se till att den info som behövs kan komma fram
  • Skapa möjlighet för att hämta både detaljerat objekt och objekt-lista för events.
  • Local
  • Se till att Zustand är installerat och att jag förstår principen av hur man använder det.
  • Gör anrop, antingen via store eller local.js, som uppdaterar både userStore och localStorage
  • Lägg till biljett
  • Ta bort biljett

Setup

Som användare så vill jag kunna navigera mig fram genom appen till de olika sektionerna.

Sidor och navigering

  • Skapa Första-sida
  • Skapa Event-sida (sök-sida)
  • Skapa Details-sida
  • Skapa Cart-sida
  • Skapa Orders-sida
  • Skapa Error-sida (för om något skulle gå knasigt?)
  • Fixa Routing
  • Skapa api/agent.js

Basic Styling

  • Lägg till alla root variabler
  • Se till att sidan håller aspect ratio för mobil och inte ser konstig ut i olika storlekar
  • Gör snygga ikoner som kan användas som knappar (som navigering längst ner), samt en "ticket" ikon som är aktiv när man har biljetter som är "aktiva"

Komponenter

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.