Harjoitustyön aiheena on sovellus, jonka avulla on mahdollista hoitaa verkkokauppaa harjoittavan yrityksen tilausten käsittely, laskutus sekä varastosaldojen ylläpito. Jokainen sovelluksen käyttäjä on joko työntekijä tai asiakas.
Sovellus on laadittu Helsingin yliopiston kevään 2022 kurssille Aineopintojen harjoitustyö: Tietokantasovellus.
- Kaikki käyttäjät voivat kirjautua sisään ja ulos.
- Asiakkaat voivat luoda itselleen uuden tunnuksen.
- Asiakkaat voivat tarkastella tuotteiden tietoja.
- Työntekijät voivat lisätä uusia tuotteita ja muokata olemassaolevien tuotteiden tietoja (esim. tuotekuvaukset, hinnat, varastosaldot).
- Asiakkaat voivat tarkastella ja päivittää omia yhteystietojaan, ja työntekijät voivat päivittää asiakkaiden yhteystietoja.
- Asiakkaat voivat lisätä tuotteita ostoskoriin ja tehdä ostoskoriin lisätyistä tuotteista uuden tilauksen.
- Työntekijät voivat selailla ja käsitellä tilauksia.
- Asiakkaat voivat selailla aiempia tilauksiaan.
- Järjestelmä huolehtii automaattisesti siitä, että tuotteiden varastosaldot ovat ajan tasalla sekä siitä, että tuotteita ei voi tilata enempää kuin niitä on varastossa.
- Työntekijät voivat lisätä työntekijän oikeuksia muille käyttäjille.
- Toteutuneiden myyntien tarkastelu esimerkiksi tuotteen, ajankohdan tai asiakkaan mukaan
- Laskujen ja maksumuistutusten lähettäminen
Tässä vaiheessa olen priorisoinut sovelluksen perustoiminnallisuuksia. Esimerkiksi sovelluksen ulkoasu on askeettinen, koska sivuja ei vielä ole muotoiltu CSS:llä. Lisäksi koodia jaetaan useampaan tiedostoon myöhemmissä vaiheissa.
Toimintoja on nyt laajennettu, ja suurin osa toiminnallisuuksista on nyt toteutettu. Tietokantataulujen määrä on kasvanut kahdesta kuuteen. Koodia on myös selkiytetty jakamalla sitä useampaan tiedostoon. Ennen lopullista palautusta sovellukseen lisätään vielä loputkin ominaisuudet. Myös sovelluksen ulkoasua parannetaan.
Loputkin toiminnallisuudet on lisätty sovellukseen. Tietoturvaa on parannettu lisäämällä käyttäjäoikeuksien tarkistuksia ja estämällä CSRF-haavoittuvuuden hyödyntäminen. Myös ulkoasua on parannettu CSS:n avulla.
- Python (versio 3.8.10 tai uudempi)
- pip-paketinhallintajärjestelmä
- Pythonin standardikirjastoon kuuluva venv-kirjasto
- Git-versionhallintajärjestelmä
- PostgreSQL-tietokannan hallintajärjestelmä
Aloita lataamalla sovelluksen lähdekoodi zip-tiedostona tai kloonaa projekti komennolla
$ git clone https://github.com/valtterikantanen/tsoha.git
Luo virtuaaliympäristö ja aktivoi se komennoilla
$ python3 -m venv venv
$ source venv/bin/activate
Asenna sovelluksen riippuvuudet komennolla
(venv) $ pip install -r requirements.txt
Luo tarvittavat tietokantataulut komennolla
$ psql < schema.sql
Palvelimen voi käynnistää komennolla
(venv) $ flask run
Nyt palvelin on käynnissä ja sovellusta voi käyttää osoitteessa http://127.0.0.1:5000/
.
- Ohjelma olettaa, että tiedostossa
.env
on määritelty tietokannan osoite muuttujassaDATABASE_URL
sekä salainen avain muuttujassaSECRET_KEY
. - Halutessaan tietokantaan voi syöttää myös esimerkkidataa komennolla
psql < example.sql
, mikä poistaa nykyiset taulut ja luo tilalle uudet. Tällöin luodaan myös kaksi käyttäjää, joiden käyttäjätunnukset ja salasanat ovat seuraavat:
Rooli | Käyttäjätunnus | Salasana |
---|---|---|
asiakas | customer |
qXd9Y8ok |
työntekijä | admin |
op33RfQ4 |