You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A simple idea of a bot that we can launch fast without building full apps.
It works everywhere and uses Telegram’s built-in chat, media, and login features, as Boris proposed
2. An Example of Telegram Bot commands
Bot commands:
/start → Choose role: Reporter or Citizen.
/report_vote → For reporters to log a vote count.
/report_entry → Log a voter entering/exiting.
/incident → Report an irregularity (photo/video/text).
/view_results → Citizens see live results.
/station → Select polling station to monitor.
3. Example MVP Flow
Reporter Flow
Reporter sends /start → chooses Reporter.
Bot asks for polling station ID (or location).
Reporter can:
/report_entry → Bot asks: "Entered or Exited?" + optional gender/age.
flowchart TD
A[Reporter opens Bot] --> B[Bot requests access code]
B --> C[Reporter enters code]
C --> D[Backend verifies code]
D -->|Valid| E[Access granted]
D -->|Invalid| F[Access denied + error message]
Loading
Flow 2 – Select Polling Station
flowchart TD
A[Authenticated reporter] --> B[Bot requests polling station]
B --> C[Reporter enters ID or shares location]
C --> D[Backend links reporter to polling station]
D --> E[Confirmation and proceed to actions]
Loading
Flow 3 – Record Observed Vote
flowchart TD
A[Reporter selects Report vote] --> B[Bot displays candidate list]
B --> C[Reporter selects candidate]
C --> D[Bot records vote with unique ID + timestamp]
D --> E[Backend updates results]
E --> F[Bot confirms submission]
Loading
Flow 4 – Report Incident
flowchart TD
A[Reporter selects Report incident] --> B[Bot requests incident type]
B --> C[Reporter selects type]
C --> D[Bot requests description and media]
D --> E[Reporter sends text/photo/video/audio]
E --> F[Bot records incident with unique ID]
F --> G[Backend publishes incident to public board]
G --> H[Bot confirms submission]
Loading
Flow 5 – Citizen Role Selection
flowchart TD
A[Citizen opens Bot] --> B[Bot offers choice: Reporter or Citizen]
B --> C[Citizen selects Citizen]
C --> D[Bot shows citizen options]
Loading
Flow 6 – Select Polling Station or National View
flowchart TD
A[Citizen selects View results] --> B[Bot requests Polling station or National]
B --> C[Citizen selects option]
C --> D[Bot retrieves corresponding data]
Loading
Flow 7 – View Results
flowchart TD
A[Citizen has selected station or national] --> B[Bot displays votes per candidate]
B --> C[Citizen can refresh or change view]
Loading
Flow 8 – View Incidents
flowchart TD
A[Citizen selects View incidents] --> B[Bot requests station or national]
B --> C[Citizen selects]
C --> D[Bot displays incidents with date, type, media]
Loading
Flow 9 – Data Reception and Validation (Backend)
flowchart TD
A[Bot receives data] --> B[Assigns unique ID]
B --> C[Stores in database]
C --> D[Checks for duplicates]
D -->|OK| E[Marks as valid]
D -->|Duplicate| F[Rejects + logs anomaly]
Loading
Flow 10 – Real-Time Distribution
flowchart TD
A[Backend validates data] --> B[Updates aggregated results]
B --> C[Sends to citizen bots]
C --> D[Publishes to public board]
Loading
5. Notes
Uniqueness of votes in the MVP is ensured by:
Give each vote a unique ID (reporter ID + station ID + vote number + timestamp)
Compare reports from different reporters at the same station
Spot unusual patterns, like too many votes in a short time (telegram rate limit ? @Sanix-Darker )
Validation is done by:
Immediate bot confirmation with vote ID and timestamp.
Storing all events in a secure backend database.
Publishing results in real time for public verification.
UFRECS – MVP Flows (Telegram Bot Version)
1. Overview
A simple idea of a bot that we can launch fast without building full apps.
It works everywhere and uses Telegram’s built-in chat, media, and login features, as Boris proposed
2. An Example of Telegram Bot commands
Bot commands:
/start→ Choose role: Reporter or Citizen./report_vote→ For reporters to log a vote count./report_entry→ Log a voter entering/exiting./incident→ Report an irregularity (photo/video/text)./view_results→ Citizens see live results./station→ Select polling station to monitor.3. Example MVP Flow
Reporter Flow
/start→ chooses Reporter./report_entry→ Bot asks: "Entered or Exited?" + optional gender/age./report_vote→ Bot asks: "Candidate?" → increments count./incident→ Send photo/video/audio + description.Citizen Flow
/start→ chooses Citizen./view_results→ See live vote counts./incidents→ See reported irregularities.4. MVP diagrams
Flow 1 – Reporter Authentication
flowchart TD A[Reporter opens Bot] --> B[Bot requests access code] B --> C[Reporter enters code] C --> D[Backend verifies code] D -->|Valid| E[Access granted] D -->|Invalid| F[Access denied + error message]Flow 2 – Select Polling Station
flowchart TD A[Authenticated reporter] --> B[Bot requests polling station] B --> C[Reporter enters ID or shares location] C --> D[Backend links reporter to polling station] D --> E[Confirmation and proceed to actions]Flow 3 – Record Observed Vote
flowchart TD A[Reporter selects Report vote] --> B[Bot displays candidate list] B --> C[Reporter selects candidate] C --> D[Bot records vote with unique ID + timestamp] D --> E[Backend updates results] E --> F[Bot confirms submission]Flow 4 – Report Incident
flowchart TD A[Reporter selects Report incident] --> B[Bot requests incident type] B --> C[Reporter selects type] C --> D[Bot requests description and media] D --> E[Reporter sends text/photo/video/audio] E --> F[Bot records incident with unique ID] F --> G[Backend publishes incident to public board] G --> H[Bot confirms submission]Flow 5 – Citizen Role Selection
flowchart TD A[Citizen opens Bot] --> B[Bot offers choice: Reporter or Citizen] B --> C[Citizen selects Citizen] C --> D[Bot shows citizen options]Flow 6 – Select Polling Station or National View
flowchart TD A[Citizen selects View results] --> B[Bot requests Polling station or National] B --> C[Citizen selects option] C --> D[Bot retrieves corresponding data]Flow 7 – View Results
flowchart TD A[Citizen has selected station or national] --> B[Bot displays votes per candidate] B --> C[Citizen can refresh or change view]Flow 8 – View Incidents
flowchart TD A[Citizen selects View incidents] --> B[Bot requests station or national] B --> C[Citizen selects] C --> D[Bot displays incidents with date, type, media]Flow 9 – Data Reception and Validation (Backend)
flowchart TD A[Bot receives data] --> B[Assigns unique ID] B --> C[Stores in database] C --> D[Checks for duplicates] D -->|OK| E[Marks as valid] D -->|Duplicate| F[Rejects + logs anomaly]Flow 10 – Real-Time Distribution
flowchart TD A[Backend validates data] --> B[Updates aggregated results] B --> C[Sends to citizen bots] C --> D[Publishes to public board]5. Notes