Keywords
section #: 005
Programming Language: JavaScript, TypeScript, react,
Development Platform: Web app, mobile-friendly, real-time updates
Type of Application: Group decision-making, real-time voting, collaborative suggestion-based polling
Project Abstract
This document proposes an application designed to streamline Voting. The Voting App allows a user to create a topic (e.g., "Where should we meet?"), share a unique link with friends or team members, and invite them to contribute their own suggestions. Once all suggestions are submitted, users can then vote on the options. The app aggregates the votes using a ranking algorithm to determine the top choice. The entire process updates in real time, so all participants can see the evolving results and quickly reach a group consensus. This app is ideal for social gatherings, team planning, or family decisions.
High Level Requirement
Topic Creation and Link Sharing: A user can start a new topic and generate a unique link to invite participants to contribute suggestions.
User-Submitted Suggestions: Participants join the poll, add their own choices to the list of options, and view other users' suggestions in real time.
Voting and Ranking: Once suggestions are finalized, each user can vote or rank the options. The app uses a ranking algorithm (such as Borda Count) to aggregate votes and determine the top option.
Real-Time Results Display: Votes are calculated and displayed in real time, allowing all participants to view the poll’s progress and final results instantly.
Frontend:
Framework: React or Vue.js for creating a responsive and interactive interface.
Libraries: Chart.js or D3.js for real-time results visualization.
Backend:
Framework: Node.js with Express to handle requests for topic creation, suggestions, and voting.
Database: Firebase Firestore or MongoDB for storing poll data and providing real-time updates.
Real-Time Communication: Firebase Firestore or WebSockets for instant updates across users.
Algorithm: Use the Borda Count or another rank-based voting method to determine the most preferred option among the group.
System Flow:
Create Topic: The creator starts a new topic (e.g., “Best movie for movie night”), shares the link, and invites others.
Submit Suggestions: Each participant submits their own suggestion, which updates in real time for all users.
Vote on Suggestions: After all entries are in, users vote or rank their favorite options from the list.
View Results: The app aggregates votes using the ranking algorithm, displays live updates, and highlights the top choice.
The Group Decision-Maker App focuses on collaborative decision-making by enabling users to create polls, submit options, and vote within a simple and intuitive interface. Real-time updates keep participants engaged and allow for rapid consensus building.
Comparison to Similar Products:
Google Forms and Trello Polls provide polling capabilities, but they lack real-time interaction, live updates, and flexible user-submitted options.
Difference: Unlike typical poll tools, this app incorporates a unique suggestion feature, real-time visualization, and an algorithm to rank user preferences.
Required Resources
Knowledge Resources:
Familiarity with ranking algorithms like Borda Count or Condorcet for aggregated voting.
Basic knowledge of Firebase integration for real-time data syncing.
Software Resources:
Firebase: For handling real-time updates and storing poll data.
Node.js & Express: To build and run the backend API.
React/Vue: For creating a responsive and engaging user interface.
Database Workbench Tool:
DBeaver (multi-database support) or MongoDB Compass if using MongoDB for database management, querying, and visualization.
Deployment Resources:
Hosting solutions: The university database hosting or Firebase Hosting or Heroku for backend deployment.
Version Control: GitHub for code collaboration and version management.
Keywords section #: 005 Programming Language: JavaScript, TypeScript, react, Development Platform: Web app, mobile-friendly, real-time updates Type of Application: Group decision-making, real-time voting, collaborative suggestion-based polling
Project Abstract
This document proposes an application designed to streamline Voting. The Voting App allows a user to create a topic (e.g., "Where should we meet?"), share a unique link with friends or team members, and invite them to contribute their own suggestions. Once all suggestions are submitted, users can then vote on the options. The app aggregates the votes using a ranking algorithm to determine the top choice. The entire process updates in real time, so all participants can see the evolving results and quickly reach a group consensus. This app is ideal for social gatherings, team planning, or family decisions.
High Level Requirement
Topic Creation and Link Sharing: A user can start a new topic and generate a unique link to invite participants to contribute suggestions. User-Submitted Suggestions: Participants join the poll, add their own choices to the list of options, and view other users' suggestions in real time. Voting and Ranking: Once suggestions are finalized, each user can vote or rank the options. The app uses a ranking algorithm (such as Borda Count) to aggregate votes and determine the top option. Real-Time Results Display: Votes are calculated and displayed in real time, allowing all participants to view the poll’s progress and final results instantly.
Conceptual Design
Hardware Requirements:
Internet-enabled devices (computers, tablets, smartphones). Software Architecture:
Frontend: Framework: React or Vue.js for creating a responsive and interactive interface. Libraries: Chart.js or D3.js for real-time results visualization. Backend: Framework: Node.js with Express to handle requests for topic creation, suggestions, and voting. Database: Firebase Firestore or MongoDB for storing poll data and providing real-time updates. Real-Time Communication: Firebase Firestore or WebSockets for instant updates across users. Algorithm: Use the Borda Count or another rank-based voting method to determine the most preferred option among the group. System Flow:
Create Topic: The creator starts a new topic (e.g., “Best movie for movie night”), shares the link, and invites others. Submit Suggestions: Each participant submits their own suggestion, which updates in real time for all users. Vote on Suggestions: After all entries are in, users vote or rank their favorite options from the list. View Results: The app aggregates votes using the ranking algorithm, displays live updates, and highlights the top choice.
Proof of Concept
https://github.com/tus29603/Group-decision-maker.git
presentation slide
VotingApp.pptx
Background
Detailed Product Description:
The Group Decision-Maker App focuses on collaborative decision-making by enabling users to create polls, submit options, and vote within a simple and intuitive interface. Real-time updates keep participants engaged and allow for rapid consensus building. Comparison to Similar Products:
Google Forms and Trello Polls provide polling capabilities, but they lack real-time interaction, live updates, and flexible user-submitted options. Difference: Unlike typical poll tools, this app incorporates a unique suggestion feature, real-time visualization, and an algorithm to rank user preferences.
Required Resources
Familiarity with ranking algorithms like Borda Count or Condorcet for aggregated voting.
Basic knowledge of Firebase integration for real-time data syncing.
Firebase: For handling real-time updates and storing poll data.
Node.js & Express: To build and run the backend API.
React/Vue: For creating a responsive and engaging user interface.
Database Workbench Tool:
DBeaver (multi-database support) or MongoDB Compass if using MongoDB for database management, querying, and visualization.
Hosting solutions: The university database hosting or Firebase Hosting or Heroku for backend deployment.
Version Control: GitHub for code collaboration and version management.