Skip to content

Latest commit

 

History

History
103 lines (79 loc) · 2.87 KB

README.md

File metadata and controls

103 lines (79 loc) · 2.87 KB

Modules:

  • client - some testing code for now
  • documentation
  • microservices
    • common
    • eventservice
    • recordservice
    • statsservice

Draft microservice structure:

  • for now there is no concept of user in a system
  • User service is out of scope
                                   +--------------+
                                   |Web/App client|
                                   +------+--+----+
                                          |  |
                                          |  |
         +---------------+                |  |
         |Event Service  +----------------+  +--------------------+--------------+
         +--+---------+--+                                        |              |
            |         |                                           |              |
            |         +-------------------+                       |              |
            |         |                   |                       |              |
+-----------+--+  +---+---------+  +------+-------------+  +------+-----+  +-----+------+
|Record Service|  |Stats Service|  |Achievements Service|  |User Service|  |Tags Service|
+------+-------+  +------+------+  +---------+----------+  +------+-----+  +------+-----+
       |                 |                   |                    |               |
       |                 |                   |                    |               |
  +----+----+       +----+---+       +-------+-------+        +---+---+       +---+---+
  |Record DB|       |Stats DB|       |Achievements DB|        |User DB|       |Tags DB|
  +---------+       +--------+       +---------------+        +-------+       +-------+

EventService

Processes all incoming event objects. Works as frontend before other services that do actual event processing:

  • Record service
  • Stats service
  • Achievements service

Methods:

  • processEvent(Event event)

Record Service

Store events

Methods:

  • storeEvent(Event event)
  • List<Event> Event getEvents() # todo: add some period or whatever

Stats Service

Update stats with each event.

Methods:

  • updateStats(Event event)
  • Stats getStats()

Achievements Service

Get the list of possible achievements, and track current progress

Methods:

  • List<Achievement> getAchievements()
  • AchievementsProgress getAchievementProgress(Achievement achievement)
  • updateAchievements(Event event)

User service

Handle user creation, login, etc.

TBD

Tags Service

Handle users tags that are used to categorize events

Methods:

  • addTag(Tag tag)
  • removeTag(Tag tag) # todo: what will happen with tagged events???
  • List<Tag> getTags()

Objects

Event:

  • start date
  • end date
  • tag

Tag:

  • name

Achievement:

  • name

AchievementsProgress:

  • achieved

Future considerations:

  • update everything with userIds and authentication
  • add getByTag method to record service