cis3296f24 / applebaum-final-project-section-005-applebaum

cis3296f24-classroom-applebaum-final-project-project-proposal-template created by GitHub Classroom
0 stars 0 forks source link

Voting App #6

Open tus29603 opened 1 month ago

tus29603 commented 1 month ago

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

  1. Knowledge Resources:
  1. Software Resources:
  1. Deployment Resources:
tus29603 commented 1 month ago

VotingApp.pptx

gutbash commented 4 weeks ago

i would do this if it was an imessage app https://developer.apple.com/imessage/