Skip to content

Add React Web Dashboard for Poll Results Visualization #10

@maprokes

Description

@maprokes

Overview
Create a React web application hosted on Firebase Hosting that provides a visual dashboard for viewing and analyzing poll results from the Slack Open Poll app.

Requirements

Core Features

Poll Results Display: Show poll questions, options, and vote counts in an intuitive UI
Responsive Design: Mobile-friendly interface for viewing on all devices
(Optional) Real-time Updates: Use Firestore real-time listeners to update results as votes come in
(Optional) Poll Filtering: Filter polls by date, channel, creator, or status (open/closed)
(Optional) Search Functionality: Search polls by question text or creator

Technical Implementation

Framework: React 19 with TypeScript
Hosting: Firebase Hosting (integrate with existing Firebase project)
Database: Connect to existing Firestore database with poll data
Authentication: Firebase Auth integration (optional: restrict access to workspace members)
Styling: Modern UI library (Tailwind CSS)

Data Integration

Reuse existing Poll and vote data structures from functions/src/types/poll.ts
TBD -

Deployment

  • Add Firebase Hosting configuration to existing firebase.json
  • Create build and deploy scripts in root package.json
  • Update GitHub Actions workflow to deploy both Functions and Hosting

File Structure

web/
├── src/
│ ├── components/
│ ├── hooks/
│ ├── services/
│ ├── types/
│ └── utils/
├── public/
├── package.json
└── tsconfig.json

Docs

Acceptance Criteria

React app displays all polls from Firestore
Real-time vote count updates without page refresh
Polls can be filtered and searched
Responsive design works on mobile and desktop
Deployed to Firebase Hosting and accessible via custom URL
CI/CD pipeline deploys both Functions and web app
This would complement your existing Slack bot by providing a web interface for poll analytics and management.

Sub-issues

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions