Purpose: A light-weight app/web tool for clubs to run live polls, Q&As or collect instant feedback during events.
Visit - Event Pulse ↗️
use this poll id kwHTrpGvqIEzLaAPWuzt to join a pre-created poll.
The Event Pulse allows users to:
- Create Polls with multiple-choice questions.
- Join Polls using a unique Poll ID.
- Vote on Polls by selecting an answer.
- View Results dynamically updated in Firestore.
lib/
├── main.dart # Entry point of the app
├── pages/
│ ├── home_page.dart # Main screen with navigation buttons
│ ├── create_poll.dart # Poll creation screen
│ ├── join_poll.dart # Poll voting interface
│ ├── poll_results.dart # Poll results display
│ ├── view_polls.dart # View user's created pollsStores poll metadata:
{
"pollId": "abc123",
"title": "Best Programming Language?",
"createdBy": "user123",
"questions": [
{
"questionId": "q1",
"question": "Which language do you prefer?",
"choices": ["Python", "JavaScript", "C++"]
}
]
}Stores user responses:
{
"userId": "xyz456",
"selectedChoice": "Python"
}- Users enter a poll title and create questions with multiple choices.
- Data is stored in Firestore.
- Users enter a Poll ID and select their choices.
- Answers are stored dynamically.
- Poll results are retrieved in real-time.
- Votes are counted and displayed.
- 🎨 UI Improvements → Advanced button animations, custom theme support.
- 📊 Analytics & Charts → Integrate graphs to visualize poll data.
- 🔗 Sharing Poll Links → Enable users to copy & share poll links.
- Cause: Improper Firebase initialization or missing dependencies.
- Fix: Ran
flutter clean, ensured Firebase was properly initialized inmain.dart, and corrected Web deployment settings.
- Cause: Firebase Auth wasn’t registering listeners properly.
- Fix: Ensured
firebase_options.dartcontained correct API keys and re-enabled Anonymous Auth in Firebase Console.
- Cause:
TextEditingControllerretained previous entries. - Fix: Cleared controllers using
joinPollId.clear()when opening dialog.
- Cause: Missing filtering for user-created polls.
- Fix: Used
.where('createdBy', isEqualTo: userId)to fetch only the polls created by the logged-in user.
- Cause:
ListView.builderinside aColumncaused overflow issues. - Fix: Wrapped the list in
Expandedto ensure dynamic resizing.