/todoapp

Kiinduló alkalmazás az adatbáziskat és api gateway-t bemutató anyagrészekhez

Primary LanguageTypeScript

TODO alkalmazás mikroszolgáltatásokra építve

Labor célja

A labor célja bemutatni a mikroszolgáltatásokra épülő rendszerek esetében gyakran használt polyglot elvet: mikroszolgáltatásonként más-más platformot és nyelvet, valamint más adatbázis rendszer használunk. A szolgáltatásokat pedig egy API gateway fogja össze.

Előkövetelmények

Az alkalmazás teljes egészében platformfüggetlen. A kényelmes fejlesztéshez azonban a forráskód Microsoft Visual Studio-t feltételez.

  • Microsoft Visual Studio 2017/2019
  • Docker
    • Volume sharing engedélyezve
    • Minimum 2 GB memória allokálva a Docker-nek
  • NPM és YARN (path-ban elérhető)
    • Csak akkor szükséges, ha a fronted kódban fejleszteni szeretnénk
  • Postman
  • 8 GB RAM

Feladatok

A master ág állapotából kiindulva kövessük a feladatokat.

A kész megoldás elérhető a megoldas nevű ágon.

Rendszer felépítése

A rendszer az alábbi mikroszolgáltatásokból épül fel:

  • todos: A teendőket kezelő alkalmazás, ASP.NET Core platformon, REST API-t biztosítva. Elasticsearch adatbázist és Redis cache-t használ.
  • web: React-ra épülő SPA webalkalmazás TypeScript-ben, NGINX webszerverrel kiszolgálva.
  • users: Felhasználókat kezelő alkalmazás Python-ban, MongoDB adatbázisra épülve REST API-t biztosít.
                   +----+     +-------+     +---------+
                   |    +---->+ todos +--+->+ elastic |
+-----------+      |API |     +-------+  |  +---------+
|  browser  +----->+gate|                |
+-----------+      |way |                |  +-------+
                   |    |     +------+   +->| redis |
                   |    +---->+ web  |      +-------+
                   |    |     +------+
                   |    |
                   |    |     +-------+      +---------+
                   |    +---->+ users +----->+ mongodb |
                   +----+     +-------+      +---------+

Futtatás

Microsoft Visual Studio-ból

Az src/todoapp.sln solution fájlt megnyitva a docker-compose nevű projektet startup project-nek beállítva F5-tel indítható. A forráskódban történő bármely változtatás után (akár C# kód, akár más kód) ugyanígy fordítás és debug módú indítás szükséges.

Konzolból

Az src/docker könyvtárból az alábbi parancsokkal fordítható és indítható az alkalmazás:

docker-compose build
docker-compose up

URL-ek

Az egyes szolgáltatások az alábbi URL-eken érhetően el: