- client - some testing code for now
- documentation
- microservices
- common
- eventservice
- recordservice
- statsservice
- 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|
+---------+ +--------+ +---------------+ +-------+ +-------+
Processes all incoming event objects. Works as frontend before other services that do actual event processing:
- Record service
- Stats service
- Achievements service
processEvent(Event event)
Store events
storeEvent(Event event)
List<Event> Event getEvents()
# todo: add some period or whatever
Update stats with each event.
updateStats(Event event)
Stats getStats()
Get the list of possible achievements, and track current progress
List<Achievement> getAchievements()
AchievementsProgress getAchievementProgress(Achievement achievement)
updateAchievements(Event event)
Handle user creation, login, etc.
TBD
Handle users tags that are used to categorize events
addTag(Tag tag)
removeTag(Tag tag)
# todo: what will happen with tagged events???List<Tag> getTags()
Event:
- start date
- end date
- tag
Tag:
- name
Achievement:
- name
AchievementsProgress:
- achieved
- update everything with userIds and authentication
- add getByTag method to record service