Arkkitehtuuri ja tekniset ratkaisut
WimmaLab forum
0.1
Julkinen dokumentti
Vastuuhenkilö Riku Härkälä
P1384@student.jamk.fi
Johdatus
Tässä dokumentissa kuvataan yleisellä tasolla miten Corpo Ration Corp (JAMK TTK20S1OTL/te-team1) on kehittänyt WimmaLabia varten keskustelufoorumia, joka perustuu avoimeen "Conduit"-palveluun; Github gothinkster.
Yleiskuvaus
- Keskustelufoorumi, joka on tarkoitettu WimmaLabiin osallistuville.
- Tuote on toteutettu projektityönä perustuen gothinksterin lähdekoodeihin.
- Tuotteen jatkokehitystä varten tarvitaan Docker-kontitusympäristö sekä React ja NodeJS -ohjelmointikieliin sopiva koodieditori.
Käytetyt teknologiat
- Frontend: React
- Backend: NodeJS/Express
- Tietokanta: MongoDB
- koodaus: npm, html, css, JavaScript
Tuotekehitysympäristöjen kuvaukset
- Kehitysympäristö: Windows 10 / Linux Mint / Ubuntu
- Testausympäristö: virtualisoitu Linux, Virtualbox
- Ajo/suoritusympäristö: Linux ja Docker
- Demoympäristö: 2 x Linux-palvelin (Ubuntu server 20.04) toteutettuna CSC:n Pouta-pilvipalvelussa (Open stack)
Käytetyt työvälineet
- Visual Studio Code
- debuggeri zky v2.05
- Notepad ++
- Sublime Text Version
- gedit
- GNU nano
- Brackets
- Git for Windows
- Gitlab
- xed
- Firefox
- Chrome
- Brave Version 1.17.72 Chromium
- Microsoft Excel
- Microsoft PowerPoint
- Microsoft Teams
- LibreOffice Draw
- Ghostwriter
Tärkeimmät tekniset ratkaisut joihin tuote nojaa
- Käytetyt kehikot: React, NodeJS
- Kyseiset tekniikat oli product owner (Marko Rintamäki) valikoinut gothinksterin esimerkkivalikoimasta
Suoritysympäristön (tuotanto) kuvaus
- Ubuntu server 20.04, virtualisoituna CSC:n Pouta-pilvipalvelussa
- Docker-kontitusympäristö,
- Apache2 http-palvelin: reverse proxy, SSL-sertifiointi ja liikenteen ohjaus https-protokollan kautta internetin (käyttäjien) suuntaan
- Backup server Ubuntu server 20.04, virtualisoituna CSC:n Pouta-pilvipalvelussa
- Ajastetut varmuuskopiot tietokannasta ja palvelun käyttölogeista SSH-yhteyden kautta
Tietokantakuvaukset
- MongoDB
- Varmuuskopiot tietokannasta automatisoitu toiselle palvelimelle, toteutettu python-ohjelmointikielellä: python käyttää omaa ajastintaan ja ajaa varmuuskopiointi-scriptit.