BPROF:offer

A Miau Wiki wikiből

RFQ

Bevezetés

Az általam fejlesztett és a következőkben bemutatandó alkalmazás egy magyarországi papírgyár igénye alapján jött létre. Az alkalmazás lényege a következő:

  • A számtalan Excel táblában tárolt információk egy alkalmazásban szerepeljenek. Feltételezés: a szigetszerűen tárolt, esetleges gyakorisággal, sikerességgel frissített adatáramlás egyetlen egy nagy központ (SQL?) adatbázison át történik a jövőben? S ez az OLAP-jellegű alapvetés kiváltja az eddigi pl. PIVOT-alapú részleges funkcionalitásokat? Illetve minden más egyéb EXCEL-függvényláncolatokra alapozó funkcionalitást?

Kifejteni!

  • A sokszor csak fejben lévő összefüggések jelenjenek meg az alkalmazás logikájában (vagyis elvileg létezni fog egy kiindulási folyamatábra és egy idealizált, a célrendszert bemutató folyamatábra már tervszinten, azaz hamarosan?!) Igen, ez lesz.
  • Egyszerűsítse a rendelés igénylést
  • Kiváltsa a szaktudást (KNUTH!)
    ChatGPT --> node.js
  • Az alkalmazás segítségével lehessen rendelések leadni (tesztelés: hányféleképpen lehet esetlegesen hibát kiváltani a fejlesztés adott fázisában)

funkcionális és UAT tesztelés (önálló fejezetben)

  • Az alkalmazás első körben belső használatra van szánva, de ugyanakkor alkalmasnak kell lennie külső felhasználó, vásárlók rendeléseinek leadására is (ez mit jelent architekturálisan, funkcionálisan?) Kidolgozni a választ!
    Loggolás!

Az alkalmazás

Kiinduló pont:

Jelenleg számtalan Excel fájlban tárolnak különböző információkat. (melléklet tételes objektum, attribútum felmérés a jelenről és tervek az ideálról: vö. pl. kombinatorikai tér és ennek részlegesség-kezelése) Ezek az adatok sokszor nem egyeznek meg (redundancia-kezelés terve). A fluktuáció következtében sokszor elveszik a tudás (mi számít tudásnak? Pl. képletek, képletláncok? – volt-e eddig önellenőrzés? Pl. két eltérő úton azonos eredmény kihozásának képessége – lehet-e ilyen a jövőben? – egyéb konzisztencia-ellenőrzések lehetősége?), hogy adott termékeket milyen kombinációban képes a gyár legyártani. Az elsődleges cél az volt, hogy ezeket az információkat egy alkalmazás alá vonjuk, a megrendelési folyamatot egyszerűsítsük, sőt automatizáljuk (teljes mértékben?).

A megvalósításhoz szükséges kompetenciák

  • AWS architect
  • Node.js
  • Adatbázis ismeretek
  • Machine Learning (milyen kérdések kapcsán?)
    reporting, ajánlás, rendelések, termékek elemzése

Az alkalmazás felé támasztott követelmények

Az alkalmazásnak tudnia kell egy előre megadott paraméterek és azok kapcsolatai alapján egy dinamikus form létrehozására. Minden egyes elem kiválasztása meghatározza a következő elemet a form-ban. Szükséges bizonyos matematikai kalkulációkat menet közben elvégezni a megadott paraméterek alapján (pl. A papírhengerek súlya, vagy az 1 kamionra pakolható mennyiség) Bizonyos logikát is kellett beépíteni. Pl. A 260 cm magasságú kamion rakterébe 1 240 cm tekercs pakolható be, ugyanakkor ennek tömege kétszerese, mint a 2x120 cm-es tekercs egyenként, amik ugyanazt a helyet foglalják el, így optimalizálható a szállítás. Az alkalmazásnak több rendelést is képesnek kell lennie eltárolni, hogy azokat egyszerre adhassák le. (terheléses teszt? Bármit jelentsen is a terhelés maga, ill. párhuzamos szálak esetleges ütközései, jogosultságkezelés?) Kidolgozni! A bementi paramétereket szükség esetén lehessen módosítani, illetve bővíteni az alkalmazás további fejlesztése nélkül. Az ajánlatkérésnek emailben kell megérkezniük egy megadott email címre. Minden ajánlatkérést el kell tárolni későbbi elemzés (pl?) Külön fejezetben céljából.

Az alkalmazás modulok

A jelenlegi terv szerint az alkalmazás a következő modulokból fog felépülni:

  • Beléptető modul
    A megrendelői oldal regisztrálására és beléptetésére szolgáló modul, mivel az az alkalmazás bár publikus neten keresztül elérhető, de tartalma privát, így csak az arra jogosultak érhetik el.
  • Ajánlatkérő modul
    Ez a modul 3, vizuálisan is jól elkülöníthető területre oszlik el.
    • Termékek
      A rendelhető termékek kiválasztására és paraméterezésére szolgáló felület
    • Cím
      A megrendelői oldal adatainak bevitelére szolgáló felület. Jelenleg manuálisan kell kitölteni. Regisztráció és belépés után természetesen ez automatikus lesz.
    • Ajánlatkérések
      A tárolt, folyamatban lévő ajánlatok listázásra, törlésére szolgáló felület. Lesz-e automatikus ajánlatértékelő modul? (pl. melyik ajánlat jelenti a legjobb ár/teljesítmény-viszonyt?)

Háttérben futó folyamat, ami a felvitt ajánlatokat értékeli ki a múltbeli adatok alapján

  • Adminisztrációs modul
    A termékek és a paraméterek konfigurálásra szolgáló oldal, ami segítségével lehet vizuálisan felvinni, módosítani és eltávolítani termékeket és paramétereiket, ezáltal elkerülhető az adatbázis oldali módosítás, ami komolyabb szakértelmet kíván.
  • Riporting modul (dashboard-tervek? Kinek miért mit hogyan?)
    Gyártói oldalról van lehetőség riportok készítésére.
  • Fiók modul
    A regisztrált ügyfél adatok módosítására, a regisztráció megszüntetésére szolgáló felület

Válaszott technológiák

Minősített AWS architeként az Amazon Web Service-t választottam futtató környezetként. Ebben megrendelői oldalról nem volt semmilyen megkötés.

Elastic Beanstalk

Az Elastic Beanstalk egy webalkalmazások és -szolgáltatások üzembe helyezésére és méretezésére szolgáló szolgáltatás. Az EB automatikusan kezel olyan szolgáltatásokat, mint a Load Balancer, Autoscaling, monitoring.

S3

Az Amazon Simple Storage service egy objektum alapú tároló. Az S3-ban lesznek tárolva az úgynevezett Technical Data Sheet-ek (TDS).

Amazon RDS

Az Amazon Relational Database Service egy PaaS adatbázis, ami az alkalmazás adatbázis rétegét fogja szolgáltatni.

Rendszerterv

Az alkalmazás logikai felépítését az alábbi ábra (ábra 1) szemlélteti. Fizikai? Kifejteni!

Vajda.drawio.png

Minden nézet minden objektuma (inkl. nyilak, vonalak, színek, ikonok alábontása kötelező)… Részletesen kifejteni a teljes ábrát minden objektumot!


Adatmodell

Az adatbázis felépítése az alábbi adatmodellek alapján történik. Az ábra 2 szemlélteti a megrendelő adatainak, jogosultságainak és ajánlatkéréseinek adatkapcsolatát.

Datamodel-Page-1.drawio.png

ábra 2


A következő adatmodell (ábra 3) a regisztrált termékek és paramétereinek tárolását mutatja meg.

Datamodel-Page-2.drawio.png

ábra 3


Riportok? Használat érdekében Technikai önellenőrzés (pl. redundancia-kizárás) érdekében? Adathiány-feltárás érdekében? Stb.


IT security - Client side helyett server side