2008-04-24

Om projektarbeten kursen DATABAS 100p LÅ 05/06


Resurser:

  • Skriptspråket HTML / PHP och ev. JavaScript

  • DIAför att rita klassdiagram och användarfalldiagram

  • MYsql / Java på lokala maskiner.)



Start av arbetet

Vi ska arbeta i grupper på 2 – 4 elever. Rekommenderad gruppstorlek är 3 elever. Med 3 i gruppen hamnar lätt en ”utanför” och det är en svårighet man måste hantera. Med 4 i gruppen krävs att någon tar på sig ansvaret för att organisera och fördela arbetet i gruppen. Att vara många kan dock vara en fördel, om ni vill göra ett omfattande arbete. Att utveckla en databas-applikation är i ”verkligheten” ett lagarbete. Vi arbetar därför så. Att vara flera ger helt andra förutsättningar att åstadkomma en mer komplex applikation.

Först funderar gruppen och bestämmer sig för inriktningen på sitt projekt.
Gruppen kan välja olika ambitionsnivå från små projekt (G) till stora (G-VG)
och ännu större projekt (G-MVG).

Det kan vara svårt att avgöra vad man hinner. Följer du UP (Unified Process) bör du ganska tydligt kunna bedöma om ambitionen varit för stor och i så fall välja bort att implementera vissa delar och i värsta fall byta projekt. Börjar du ”enkelt”, kan du alltid försöka göra applikationen mer avancerad, om du ser att tiden räcker för det.
Vi lärare kräver att alla i gruppen är "ägare" till olika delar av projektet, samt att applikationen är uppdelad så att var och en i gruppen ansvarar för minst en bedömningsbar del. Betygsättningen är ju som bekant individuell!

Upprätta en projektbeskrivning och en preliminär plan

Så fort gruppen är bildad skall ni bestämma er för vad ni skall göra för typ av applikation.

Steg 1
  • Formulera en beskrivning av er applikation.
    • Bestäm ett namn på projektet.
  • Skriv ner vilka som är med i gruppen.
  • Ta reda på vilka användarfall (Use Case) som är aktuella.
  • Utkast till klassdiagram för projektet.
  • Hur updaterar ni mellan varandra?
    • Ska ni använda ett versions system?
      • Vilket? git?
  • Hur sköter ni backup?
    • Ska ni använda ett versions system? Vilket? git?
Steg 2.
  • Bestäm hur många och långa ”iterationer” ni vill köra.
    • Fördela grovt vilka och hur mycket av användarfallen som skall klaras av under iterationerna.
      • Gör en rangordning av användarfallen i din applikation.
        • Börja med de viktigaste.
Steg 4 Itteration
  • Planerings fas
    • Bestäm en arbetsplan för 1:a iterationen.
      • Vilken del av och vilka användarfall skall utföras?
      • Förfinad Use Case-analys i de delar som skall utföras (objekt/klasser)
      • Fastställa vilka objekt/klasser som behövs och modellera dessa i klassdiagram.
      • Kolla normaliseringen
  • Arbetesfas
    • Skapa tabeller (SQL) genom att först skriva textfiler som sedan exekveras av SQL-servern.
    • Skapa övrig programkod (HTML/PHP/JavaScript)
    • Beskriv arbetsätt
    • Dokumentera all kod
    • Beskriv Resultat
    • Testa
  • Slutfas
    • Utvärdera denna iteration och modifiera planen över iterationer vid behov
      (ordning, omfång, ambition, tidpunkter)
    • sammanställ och lämna in för iterationen
      • Dokumentation
      • arbetsätt
      • reslutat
    • sammanställ för hela projektet
      • Dokumentation
      • kod
      • arbetsätt
      • reslutat
    • Beskriv Kort om erfarenheter.
    • Ev. ändring av iterationsplanen.
    • updatera projekt planen
Steg 4 nästa iteration
Setg 5
  • Redovisning
    • Den skriftliga rapporten skall innehålla:
      • Inledning med beskrivning av projektet

      • Användarfall (Use Case)

      • Klassdiagram (Class Diagram)

      • Beskrivning av normaliserade tabeller (fältnamn, datatyp etc).

      • Beskrivning av applikationen (ej alla php-filer men eventuellt intressanta delar)

      • Utvärdering av ditt projekt.

    • Muntlig
      • Vissa upp och förklara resultatet
      • förklara saker ni lärt er genom projektet.



Tips om små projekt:

(lämpliga test-projekt - att börja med något enkelt. Kan bli ett G)

Dagbok

Du skall göra en web-administrerad dagbok med inloggning så att bara du kan skriva.

Gästbok

Du skall göra en gästbok till din hemsida där vem som helst kan skriva ner en hälsning till dig.

Med admin-inloggning som kan ta bort olämpliga inlägg.

Websida med nyheter.

Du skall göra en hemsida som består av senaste nyheterna som du själv administrerar
genom en admin-websida.

Räknare


Du skall göra en räknare som kan användas för att räkna antal besökare på valfri webbsida.
Räknaren skall kunna anropas med parametrar som styr färger/storlek/grafiska bilder och kunna administreras med inloggning.


Tips på något större projekt

Enkät - Kursutvärdering

Du skall göra en web-baserad enkät som fungerar som en utvärdering av kursen
DATABAS 100p. Enkäten är opersonlig. Statistikredovisningen skall kunna visas klassvis eller totalt.

Enkät - Kursutvärdering

Du skall göra en web-baserad enkät som fungerar som en utvärdering av alla kurser på skolan.
Enkäten är opersonlig och allmängiltig. Statistikredovisningen skall kunna visas kursvis,
klassvis etc.

Enkät - Opinionsundersökning

Du skall göra en web-baserad enkät som fungerar som en undersökning av
valfritt slag. Enkäten är opersonlig och allmängiltig.
Statistikredovisningen skall kunna visas på många olika sätt.


Test eller mindre prov

Du skall göra ett test i något specifikt ämne som du själv väljer.
Testet skall kunna genomföras från web-läsaren. Svarsalternativ skall vara av
flervalsform och resultatet skall lagras och kunna redovisas direkt efter genomfört prov.


Bensinstationsapplikation.

Du skall skapa en applikation i Visual-Basic eller web-baserad som tar hand om
vanligt förekommande administrativa uppgifter på en mindre bensinstation.
Den arbetar naturligtvis mot en databas Access eller PostgreSQL.

Videouthyrning

Du skall skapa en applikation i som tar hand om vanligt förekommande administrativa uppgifter på en butik som hyr ut videofilmer.

Biluthyrning

Du skall skapa en applikation, som tar hand om vanligt förekommande administrativa uppgifter på en mindre biluthyrningsfirma.

Diskussionsforum

Du skall göra ett web-baserat diskussionsforum.
Vem som helst skall kunna initiera ett forum. T.ex. forum DATABASER. Genom att välja forumet DATABASER kommer man till själva "brevlådan" för forumet. Här kan man starta ett ämne genom att skriva ett inlägg. Detta är början på en tråd som sedan kan besvaras av andra och på så sätt skapa en hierarkisk struktur av inlägg och repliker på inlägg. (Jämför newsgroups)


Ännu större projekt

Föreningsadministration

Du skapar en applikation i web-miljö, som hjälper en valfri förening med de administrativa göromålen för medlemshantering och aktiviteter.

Web-administrerad examination på kurser.

Du skall göra en web-baserad applikation som har till syfte att minimera arbetet bakom att konstruera prov (frågedatabas av flervalstyp), genomföra prov(webformulär) och rätta prov (självrättande). Provresultaten för en grupp kan omedelbart presenteras på en resultatsida.
Eleverna loggar in med en anonym identitet som läraren delar ut inför varje prov.

Bibliotekssystem.

Du skall skapa en applikation som tar hand om vanligt förekommande administrativa uppgifter på ett mindre bibliotek.


WEB-butik

Du skall skapa en applikation som fungerar som en virtuell affär. Detta kan bli ett väldigt omfattande projekt varför du bör göra lämplig avgränsning för att kunna genomföra det på den begränsade tid du har till förfogande.

Nättidning

En grundskola skulle vilja göra en nättidning. Kontakta skolan och kom överens om hur applikationen skall fungera. Eleverna skall utan kunskaper om HTML kunna skriva in sina artiklar och redaktören skall kunna bestämma vilka artiklar som skall publiceras. Gamla artiklar lagras och görs sökbara på både rubrik och innehåll.

Community


Ett community är en webbplats som, i regel, är inriktat på en grupp människor med ETT gemensamt intresse. Det kan vara en idrottsförening, gravida kvinnor, diabetiker, flugfiskare etc.

En webbplats med användarkonton som ger tillgång till olika tjänster. Det bör finnas ett forum, en nyhetssida, intern-mail mellan olika användare. Man bör kunna se vilka som är inloggade och när man senast var inloggade. Efter inloggning skall man kunna se nya inlägg, ny internpost.


Webhotell för hemsidor


Ett webbhotell där alla utan kunskaper om HTML skall kunna skapa sina personliga hemsidor och själva administrera dessa. Användarna skall genom enkla formulär kunna lägga till och ändra information samt lägga upp bilder och välja mellan olika layouter/stilmallar. Det kan exempelvis ske genom att man väljer mellan olika fördefinierade teman.


Hus & Hemsida


En plats där alla mäklare kan registrera hus/lägenheter/tomter till försäljning. Det skall vara möjligt att lägga bud på objekten direkt på webplatsen. Kontrollera med en mäklare vilken information som skall behandlas om objekten. (Titta gärna på www.hemnet.se för ideer och inspiration)



Andra projektidéer

http://www.ida.his.se/ida/projekt/dep/2003/projektarbete.html



PS!

Ni får naturligtvis komma med egna förslag på databas-applikationer som ni kan realisera på ert projektarbete under kursen.


//Patrik



Omarbetat version av dokument av:

Ove och Jonas Hullebäcksgymnasiet.