# Toimeksianto 2019/02

{% hint style="warning" %}
**Huom!** Opiskelijoille suunnatuissa projekteissa heidän arviointinsa ja palautettavat dokumentit on kuvattu tarkemmin heidän omalla oppimisalustallaan.
{% endhint %}

## Tekniset rajaukset toimeksiannon ohjelmalle <a href="#vaatimukset-toimeksiannon-ohjelmalle" id="vaatimukset-toimeksiannon-ohjelmalle"></a>

* Ohjelmointikielenä C#.
* Ohjelmoinnissa pitää olla sovellettu olio-ohjelmointiin liittyviä käsitteitä, koska näitä on opetettu toisessa osuudessa.
* Ohjelma on ns. konsolisovellus.
* Esimerkkejä alapuolella. Käyttöliittymän toteuttaminen tällaiselle ohjelmalle on vapaasti ryhmän päätettävissä miten sen haluaa toimivan.
* Ohjelman tulee tallentaa ja lukea tietoa vähintään tekstitiedostosta. Muut tallennustavat ryhmän päätettävissä taitotasoon nähden.
* Kun tilausjärjestelmä aukaistaan uudelleen, sen pitää pystyä säilyttämään tieto entisistä tilauksista, joten tiedot eivät saa hukkua kun ohjelma lopetetaan.

![Esimerkki: Käyttäjän valinta](/files/-LnakB39ae-U1wSWx-hM)

![Esimerkki: Toimintojen valinta](/files/-LnakFfrH6gZtF0c1bRT)

![Esimerkki: Tuotelista](/files/-LnakIlx2YMv9Sl-ZKUB)

## Vähimmäisvaatimukset ominaisuuksille

Ohjelman tulee toiminnaltaan toteuttaa alla olevat vähimmäisvaatimukset. Näiden lisäksi kehitystiimillä on mahdollisuus toteuttaa lisäominaisuuksia. Ainoa rajoite on annettu aika, joten projektin palautus ei saa myöhästyä lisäominaisuuksien takia. **Kehitystiimin tulee siis priorisoida tavoitteensa.**

Ohjelman ominaisuudet liittyvät erilaisia tuotteita myyvän asiakkaan tilausjärjestelmän toteuttamiseen. Tilausjärjestelmällä tarkoitetaan sellaista ohjelmaa, jolla voidaan luoda tilaus ja käsitellä tilaus asiakkaan tarpeiden mukaan.

Esimerkkinä tilausjärjestelmästä voidaan pitää verkkokauppaa. Verkkokaupassa tuotteen tilaaja voi luoda tilauksen. Tilausjärjestelmän omistaja puolestaan voi käsitellä vastaanotetun tilauksen.

Ennen toimeksiannon aloittamista kannattaa tutustua vanhaan projektitoimeksiantoon, jossa on samankaltaista sisältöä.

**Tilausjärjestelmän minimivaatimukset:**

* Tilausjärjestelmän käyttäjän pitää pystyä luomaan uusi tilaus.
* Tilausjärjestlemän käyttäjän pitää pystyä merkitsemään tilaus käsitellyksi.
* Tilausjärjestlemän käyttäjän pitää pystyä merkitsemään tilaus lähetetyksi.
* Tilausjärjestelmän pitää pystyä listaamaan uudet saapuneet tilaukset.
* Tilausjärjestelmän pitää pystyä listaamaan käsitellyt tilaukset.
* Tilausjärjestlemän pitää pystyä listaamaan lähetetyt tilaukset.

## Kehitystiimin työskentely <a href="#kehitystiimin-tyoeskentely" id="kehitystiimin-tyoeskentely"></a>

Toimeksiannon aikana on tarkoitus oppia myös työskentelytavoista. Kyseisiä asioita otetaan esille lähituntien yhteydessä sekä ryhmiä ohjattaessa. Pääasiassa käsittelemme seuraavia asioita: [Agile esimerkki](/ketterae-ohjelmistokehitys/agile-esimerkki-sykli.md)

## Palvelut ja ohjelmistot <a href="#tarvittavat-ohjelmistot" id="tarvittavat-ohjelmistot"></a>

{% embed url="<https://github.com/>" %}

​


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.sovelluskontti.com/toimeksiannot-2019-02/untitled.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
