Ohjelmistokehitysprojekti
Tällä sivulla on kerrottu lyhyesti miten fullstack-projektin läpivienti oppilaitoksella tapahtuisi.

Työajanseuranta
Aloittakaa suunnittelemalla Excel-taulukko työajanseurantaa varten. Voitte käyttää annettua esimerkkiä pohjana ja muokata sitä tarpeen mukaan.
GitHub-repository
- Luokaa uusi GitHub-repository Tredu-organisaation sisälle.
- Nimetkää repository seuraavasti: `fs-projekti-tiimin-nimi`
- Kutsukaa kaikki ryhmän jäsenet mukaan repositoryyn: Settings → Collaborators
Kansiorakenne
Luokaa repositoryyn seuraavat kansiot:
/
├── documents/
│ ├── UI-suunnitelma
│ ├── tietokantasuunnitelma
│ ├── sprint1.md
│ └── loppuraportti.md
│
└── project/
├── backend/
├── frontend/
└── database/
documents/-kansioon tallennetaan projektin dokumentaatio.
project/-kansioon tulee projektin lähdekoodi. Jakakaa lähdekoodi esimerkiksi backend-, frontend- ja database-kansioihin.
Projektin suunnittelu
Ennen varsinaisen ohjelmoinnin aloittamista suunnitelkaa sovelluksen rakenne ja käyttöliittymä.
Tietokantasuunnitelma
Suunnitelkaa sovelluksen tietokanta ja tehkää siitä visuaalinen tietokantakaavio.
Voitte käyttää esimerkiksi:
- Microsoft Visiota
- drawSQL-sovellusta
Tietokantakaaviossa voidaan käyttää esimerkiksi kukonaskel-mallia (Crow's Foot).
Tallentakaa valmis tietokantasuunnitelma `documents`-kansioon.
Käyttöliittymän suunnittelu
Suunnitelkaa sovelluksen käyttöliittymä eli tehkää rautalankamalli (wireframe).

Voitte käyttää esimerkiksi:
- Figmaa
- Adobe XD:tä
Yksilöprojekti
Suunnitelkaa vähintään:
- yksi desktop-näkymä
- yksi mobiilinäkymä
Ryhmäprojekti
Jakakaa käyttöliittymän suunnittelu ryhmän jäsenten kesken. Sopikaa, kuka suunnittelee mitkäkin näkymät.
- Suosituksena on käyttää Figmaa ja jakaa sama työtila koko ryhmälle.
- Tallentakaa valmis UI-suunnitelma `documents`-kansioon.
User storyt ja projektin hallinta
Suunnitelkaa projektin user storyt ja lisätkää ne GitHubin Projects-osioon.
Luokaa projektia varten Kanban-taulu.
Kanban-taulun sarakkeet
Taululla tulee olla vähintään seuraavat sarakkeet:
| Sarake | Tarkoitus |
|---|---|
| Backlog | Kaikki suunnitellut user storyt |
| Current Sprint | Tämänhetkiseen sprinttiin valitut user storyt |
| In Progress | Työn alla olevat tehtävät. Tehtävälle on määritetty tekijä. |
| Done | Valmiit user storyt |
| Daily | Päiväpalaverien tiedot |
Daily-sarake
Kirjatkaa päiväpalaverista vähintään:
- päivämäärä
- paikalla olleet henkilöt
- mitä kukin tekee tai mitä on työn alla
- mahdolliset erityiset huomiot tai ongelmat
Sprintit
Jakakaa projekti esimerkiksi kahteen sprinttiin.
Suositeltu sprintin pituus on noin 2–3 viikkoa.
Sprintin aikana seurataan tehtävien etenemistä GitHubin Project-taululla.
Sprintin päättäminen
Jokaisen sprintin lopussa tehkää sprintin päätösmuistio.
Tallentakaa muistio `documents`-kansioon esimerkiksi nimellä:
`sprint1.md`
Sprintin päätösmuistion sisältö
Kirjatkaa esimerkiksi:
Sprintin päätyttyä täydentäkää myös projektitaulua.
Käykää yhdessä tiimin kanssa läpi, mitä seuraavaan sprinttiin kannattaa ottaa mukaan.Projektin loppuvaihe
Kun sovellus on valmis, tehkää sille systeemitestaus.
Testauksen voi toteuttaa esimerkiksi:
- Excel-työkirjan avulla
- Cypress-testeillä
Testatkaa, että sovelluksen keskeiset toiminnallisuudet toimivat suunnitellusti.
Loppuraportti
Projektin lopuksi tehkää loppuraportti ja tallentakaa se `documents`-kansioon.
Esimerkiksi:
`loppuraportti.md`
Käyttäkää loppuraportissa annettua loppuraportin mallipohjaa.
Loppuraportissa kuvataan muun muassa projektin toteutus, eteneminen, lopputulos ja projektin aikana tehdyt havainnot.
Projektin eteneminen lyhyesti
Projektin eteneminen voidaan tiivistää seuraavasti:
1. Suunnittelu
- Työajanseurannan suunnittelu
- Tietokantasuunnitelma
- UI-/rautalankamallit
- User storyt
- GitHubin valmistelu
- Repository
- Kansiorakenne
- Tiimin jäsenten lisääminen
- GitHub Project / Kanban-taulu
2. Sprintti 1
- Tehtävien toteutus
- Päiväpalaverien kirjaaminen
- Tehtävien seuranta Kanban-taululla
- Sprintin päätösmuistio
3. Sprintti 2
- Uusien tehtävien toteutus
- Projektin viimeistely
- Testaus
4. Projektin päättäminen
- Systeemitestaus
- Loppuraportti
- Projektin dokumentaation viimeistely