-
Notifications
You must be signed in to change notification settings - Fork 0
Technical Architecture
Flagit is comprised of a few key components:
This is a NextJS Web-app, which acts as the main user view into the data that Flagit collects.
This is an API around Firebase, which acts as the interface for the database to be accessed by either the Dashboard or the Bot.
This is a set of Bot implementations which each translate received messages into anonymous data to be cached. There is one implementation for each communication platform we support.
As an observability platform, Flagit's data flow is uni-directional. i.e. data flows from the Bot to the Query API to the Dashboard.
Flagit's Data Flow covers a few key flows.
- Authentication Flow
- Chat Group Linking Flow
Beyond these initial setup flows, the user has minimal action afforded to them.
- A Community Admin can Flag a message
- User engagement metrics are collected automatically
In both of the above cases, the data flows automatically from Bot to Query API to be cached, and the Dashboard can query this as needed.
- Flagit User = A Community Manager who has a Flagit Account
- Flagit User ID = A Flagit Account identifier; an email
- Flagit Community = A Community which has 1 or more Community Managers, and 0 or more Groups
- Flagit Community ID = A Community identifier; a UUID
- Group = A Group on a Platform (e.g. Telegram Group, Discord Server, Whatsapp Community)
- Group ID = A Group identifier; a UUID
- Group Admin ID = An administrator of a Group; a Platform User ID
- Platform = A Platform for Group Social Messaging (e.g. Telegram, Discord, Whatsapp)
- Platform Type = The name of a Platform; a string (e.g. "Telegram")
- Platform User ID = A Platform Account identifier; depends on platform (UUID for Telegram)
In practice we will not refer to 'Platform', but to the specific platform in use; e.g. Telegram, Telegram User ID, Telegram Channel, Telegram Group, etc...