Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GUI Reporting Option – Final Results Report by Center/Station/Municipality/Race Type #453

Open
JohnMwashuma opened this issue Feb 10, 2025 · 0 comments

Comments

@JohnMwashuma
Copy link
Member

JohnMwashuma commented Feb 10, 2025

Context

Tally managers and administrators need immediate and intuitive access to the final election results to verify outcomes and make informed decisions. Currently, the system provides a CSV export of final results that aggregates data by center, station, municipality name, municipality code, and race type. Although this CSV export logic was fixed and validated during the previous municipality election, it remains a static report that requires manual processing. There is now a business need to transition this functionality into an interactive, web-based report integrated within the Tally system. This report will allow users to view, filter, and sort final results data in real time—streamlining operations and enhancing data accessibility.

Current Issues Identified:

  • Static Reporting:
    The current CSV export does not support real-time interaction and forces users to rely on offline analysis.
  • Limited Accessibility:
    Non-technical users find it challenging to work with CSV exports, reducing timely oversight of final results.
  • Inefficient Analysis:
    Without interactive filtering and sorting, quickly identifying trends or discrepancies in the final results is cumbersome.
  • Operational Delays:
    Manual CSV generation and external processing slow down the decision-making process.

By providing an interactive GUI report that mirrors the existing CSV export logic, tally managers and administrators can more easily review and analyze the final results directly within the Tally system.


Proposed Changes

  • Interactive Final Results Report:
    Offer an integrated, web-based report that displays final results grouped by center, station, municipality name, municipality code, and race type.
  • Real-Time Filtering and Sorting:
    Enable users to dynamically filter and sort the data, making it easier to drill down into specific centers, stations, or municipalities.
  • Consistent Data Presentation:
    Ensure that the interactive report faithfully replicates the finalized CSV export logic, providing the same grouping and aggregation of election outcomes.
  • Seamless Integration:
    Incorporate the report into the Tally system’s existing reporting dashboard, allowing easy navigation and secure access for tally managers and administrators.

Proposed Implementation Plan

  • View Development:

    • Task 1: Develop the Report View with Aggregation & Filtering
      • Analyze the existing CSV export logic and design a strategy to map it into a class-based view (e.g., FinalResultsReportView).
      • Integrate filtering options by municipality,race type, center and station
  • Template Creation:

    • Task 2: Create the Interactive Report Template
      • Develop a new template (e.g., reports/final_results.html) that renders the aggregated data in an interactive table.
  • URL and Navigation Updates:

    • Task 3: Add a new URL route (e.g., /reports/final-results/) mapped to the new report view.
    • Update the reporting dashboard and navigation menus to include a link to the new final results report.
  • Testing and Validation:

    • Task 4: Write unit and integration tests to ensure the aggregation logic is accurate and the user interface functions correctly.
    • Conduct QA/UAT sessions with tally managers and administrators to validate usability and performance.
  • Documentation and Deployment:

    • Task 5: Update system documentation and deploy the changes following standard release procedures.

Acceptance Criteria

  • A new GUI report is accessible via a dedicated URL (e.g., /reports/final-results/).
  • The report displays final results data grouped by center, station, municipality name, municipality code, and race type.
  • Users can interactively filter, sort, and paginate the data.
  • The aggregated data in the report matches the logic and output of the previously fixed final results CSV export.
  • The interface is user-friendly and consistent with the existing Tally system design.
  • The report is accessible only to authorized users (tally managers, administrators) and passes all QA/UAT validations.

Estimated Level of Effort (LOE)

Task Complexity Estimated Time
1. Develop the Report View with Aggregation & Filtering 🟠 High 16-24 hours
2. Create the Interactive Report Template 🟠 High 16-24 hours
3. Update URL Configuration & Navigation Integration 🟢 Low 2-3 hours
4. Write Unit Tests & Update Existing Tests 🟡 Medium 3-5 hours
5. QA & UAT (User Testing & Validation) 🟠 High 4-6 hours
6. Deployment & Documentation Updates 🟢 Low 2-3 hours

Total Estimated LOE: ~43-65 hours (~6-9 working days)

🚀 Effort Level: 🟠 High Complexity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant