Skip to content

[idea] Proposition of MVP flow using telegram bot #3

@GenjiruSUchiwa

Description

@GenjiruSUchiwa

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

  1. Reporter sends /start → chooses Reporter.
  2. Bot asks for polling station ID (or location).
  3. Reporter can:
    • /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

  1. Citizen sends /start → chooses Citizen.
  2. Bot asks for polling station ID or "Nationwide".
  3. Citizen can:
    • /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]
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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions