Mini projekt

Ni ska nu göra ett mini projekt i kombination med att lära er designa databaser + använda er av kod som någon annan har skrivit och bestämt hur den ska fungera.

Hämta kod via: git clone https://jfoeduse@bitbucket.org/jfoeduse/web1.git

  1. Genomgång av kod
  2. Hämta ner koden, ta bort git och “committa” in koden som den är innan ni gör något.
  3. Få igång koden
  4. Bygg två “dummy sidor” som man kommer åt från menyn när man har loggat in, detta för att ni förstå hur man lägger till en sida.
  5. Lägg till så att man håller kolla på hur många gånger någon har loggat in och när den senaste inloggningen skedde. Se till att få med detta så det fungerar via updatedb funktionen.
  6. Sätt att hantera användare som har glömt sitt lösen.
  7. Se till att skicka in de ändringar ni har gjort till bitbucket.

Ni ska träna på att designa databaser och när ni har tänkt hur hur den ska se ut ska ni rita upp den i Dia. Ni ska designa databaser till följande problem och ni bör ha någon att diskutera med, det är lätt att missa något när man jobbar ensam. Om ni jobbar 2 eller 3 ihop ska ni ändå skapa en Dia fil per person.

Ni ska välja 3 av följande 5 och lägga era dia filer i mappen dia som ska ligga under mysql, sen ska ni skicka in dessa filer till bitbucket.

1. Kursanmälan

Du skall designa en databas för en kursanmälan via web. För att kunna skapa kurser måste man kunna logga in och man skall kunna skapa hur många kurser som helst. Till varje kurs skall man kunna anmäla sig utan att logga in. Fundera ut hur systemet skulle kunna göras och designa sedan en databas i DIA. Skicka in din databas till mig.OBS! Jag vill att ni skall lägga till alla fält som ni tycker behövs för att det skall kunna fungera.

2. Rättigheter

Du är med och utvecklar ett system och ansvarar för rättigheterna, kunden har krävt att man skall kunna sätta rättigheter på gruppnivå. En person kan givetvis tillhöra flera grupper. Designa denna den del av databasen som har med användare och rättigheter att göra i DIA och skicka in den till mig.

3. Lektionsplaningssystem

Din uppgift är att designa en databas som skall användas när följande uppgift skall lösas. Man skall bygga ett enkelt system för lärare där de kan dela med sig av sina lektionsplaneringar. All data skall sparas i databasen.
Följande funktionalitet skall finnas.

  • Logga in
  • Lägga till en lektionsplanering med följande informationsfält: planeringsnamn, ämne, nyckelord, kort beskrivning, bifoga valfritt antal filer.
  • Radera planeringar
  • Visa planeringar (via inloggning).
  • Användarregistrering
  • Hantering av glömda lösenord via mail länk
  • Möjlighet till flera administratörer
  • Se andras men bara radera/redigera egna planeringar
  • Kommentarsfunktion, registrerade användare kan lämna kommentarer till en planering
  • ”Betygssättning” av planering (registrerade användare en gång per planering)
  • Möjlighet till icke-publika planeringar (t ex för utkast)

Fundera ut hur systemet skulle kunna göras och designa sedan en databas i DIA. Skicka in din databas till mig. OBS! Jag vill att ni skall lägga till alla fält som ni tycker behövs för att det skall kunna fungera.

4. ToDo system

Man ska kunna skapa “Att göra” listor med “Att göra” saker, man vill kunna skapa flera listor och på varje lista ska man kunna lägga till flera saker. Man vill även kunna ha gemensamma saker listor, det ska alltså gå att dela ut en lista till vallfritt antal människor.

  • Vad man skall kunna göra i systemet
  • Logga in, egen inloggning
  • Skapa listor
  • Skapa händelse
  • Ev deadline för en händelse
  • Dela listor (Välja vilka som får läsa/skriva)
  • Bocka av händelser (Slutförd)
  • Fält för Information om uppgiften
  • Historik (kunna se slutförda händelser)
  • Ordning (tex. datum, viktighet)
  • Gradering på händelse(Hur viktiga de är)
  • Timer (hur långt tid det är kvar)
  • Kommentera varje händelse
  • Datum när händelse är slutförd

5. Skriva tillsammans

Bygga ett verktyg där man skriver ett kapitel och någon annan kan skriva en fortsättning på detta kapitel. Man hjälp alltså åt att skriva en bok. Det ska gå att skriva 3 olika fortsättningar på varje kapitel.

  • Registrera någon som användare
  • Logga in
  • Logga ut
  • Skapa historier (böcker).
  • Man skall kunna se hur många kapitel som är gjorda till denna bok. Både i antal och djup.
  • Läsa och skriva kapitel, man får ändra inlägget i 10 minuter och man får ta bort det så länge det inte finns någon fortsättning.
  • Kunna värdera andras kapitel med ett + eller -.
  • Begränsa antal tecken när skapar ett kapitel.
  • Man skall bli noterad när en Story man favoriserat eller skrivit själv får “ett nytt” kapitel.
  • Man skall kunna se om andra gillar ett kapitel man har skrivit.
  • Man skall kunna rapportera olämpliga kapitel.
  • Systemet skall komma ihåg var man är så man kommer tillbaka på rätt ställe när man loggar in.
  • På “om” sidan skall man kunna se hur många kapitel man har gjort och hur man har röstat på dem - någon form av status skall synas.
  • Systemet skall veta vilka kapitel man “läst” och man skall kunna få en överblick på det man har läst.
  • Man skall kunna se hur många som har läst de inlägg man har gjort.
  • Man ska kunna skapa bokmärken för att lättare kunna hitta dit man vill i systemet.
  • Vi bestämde att vi skulle koda uppgift 4 (ToDo system).
  • Börja designa databasen och ni måste få OK av mig innan ni börjar koda.
  • Ni ska utgå från koden ni fått och ni ska följa den strukturen.
  • Ni ska redovisa det ni har gjort senast 2017-04-27 23:59:59