Sovellus on luotu osana Helsingin yliopiston tietojenkäsittelutieteen kurssia "Aineopintojen harjoitustyö: Tietokantasovellus"
Sovellus löytyy osoitteesta https://candytracker.herokuapp.com/
Uuden käyttäjän saa luotua klikkaamalla 'Sign up' tai sisäänkirjaus onnistuu myös testikäyttäjällä testduudyksi
(ja salasanalla salasana
).
CandyTracker on makeisten syönnin seurantaan soveltuva päiväkirja. Sovellus saattaa toimia apuna hillitsemään omaa sokerinkulutusta, tai esittämään kulutetun sokerin määrän.
CandyTrackerissä voit muodostaa kavereiden, tai vaikka tuntemattomien kanssa ryhmiä, ja kilpailla haasteissa muita ryhmiä vastaan.
- Python
- Flask
- PostgreSQL
- Bootstrap
- jonka osana mm. jQuery
- Chart.js
- Select2
- Duet Date Picker
- Teenyicons
- Vierailija voi rekisteröityä
- Käyttäjä voi kirjautua sisään ja ulos
- Käyttäjä voi hakea makeisia valmistajan nimellä tai makeisen nimellä
- Käyttäjä voi lisätä puuttuvan makeisen listaan
- Käyttäjä voi lisätä omaan kulutushistoriaansa makeisen
- Käyttäjä voi tarkastella omaa sokerin/makeisten kulutuksta
- Käyttäjä voi luoda ryhmän
- Käyttäjä voi pyytää liittymistä avoimeen ryhmään
- Käyttäjä voi poistua ryhmästä
- Käyttäjä voi aktivoida haasteen/tavoitteen ryhmässä
- Käyttäjä voi lähettää viestin ryhmässä
Ryhmien ensimmäinen käyttäjä (luoja) on admin, ja hän näkee hieman enemmän ryhmissä kuin muut. Jos admin poistaa itsensä ryhmästä, toiseksi vanhimmasta ryhmäläisestä tulee admin.
Ensimmäisellä kerralla
$ cd CandyTracker
$ python3 -m venv venv
$ source venv/bin/activate
(venv) $ pip install -r requirements.txt
(venv) $ flask run
Seuraavilla kerroilla
$ source venv/bin/activate
(venv) $ flask run
- Sovellus toimii, kun käyttäjä testaa sitä
- Sovellusta on mukavaa käyttää ja on selvää, mitä toiminnot tekevät
- Jos käyttäjä antaa väärää tietoa, tästä tulee selkeä ilmoitus
- Sovelluksen käyttöliittymä ja ulkoasu ovat viimeisteltyjä
- Tiedosto README.md antaa hyvän kuvan sovelluksesta
- Koodia on helppo lukea ja muuttujien, funktioiden, jne. nimet on valittu hyvin
- [-] Koodi on tiivistä ja suoraviivaista
- Koodi on jaettu järkevästi osiin tiedostoiksi ja funktioiksi
- Koodin tyyli on yhdenmukainen kaikissa sovelluksen osissa
- Versionhallinnassa commitit ja niiden viestit on tehty hyvin
- Tietokanta on suunniteltu järkevästi sovelluksen vaatimusten mukaisesti
- Taulut ja sarakkeet on nimetty selkeästi ja yhdenmukaisesti
- Tauluissa on käytetty viiteavaimia ja tarvittaessa muita määreitä
- SQL-kyselyt on toteutettu suoraviivaisesti eikä haeta turhaa tietoa
- Jos tiedot voi hakea järkevästi yhdellä kyselyllä, ei suoriteta useita kyselyjä
- Käyttäjät pääsevät näkemään vain tietoja, joihin heillä on oikeus
- Käyttäjän syöte tarkastetaan ennen tietokantakomentoja
- Sovelluksessa ei ole SQL-injektion mahdollisuutta eikä XSS- ja CSRF-haavoittuvuuksia
- Salasanat tallennetaan tietokantaan asianmukaisesti
- Versionhallinnassa ei ole salaista tietoa (kuten .env-tiedostoa)