Welcome to the Final Group Project!
Pre-work, Wednesday afternoon before you leave!
- Choose a Name for the Group
- Select a Team Mascot from Google Images
- Take a Group Picture
- Motivational Team Slogan
- Select Team Colors for your theme (the team mascot colors are a good source for this)
Coding of the project will occur all day on Thursday, donuts will be provided. Please be on time, and plan to stay all day. The day will go by fast, and you do not want to demonstrate a non-working application because you did not put in enough time to complete it.
On Friday, coding will continue until 9:30am, then code reviews will start and all coding will stop. Each team will be reviewed publicly for at least 20 mins. This is a real code review. Come prepared to explain your code and personal contribution to the class.
Build an Online Voting web application using HTML/CSS/JS and the libraries React and Redux
The application must support 3 of 3 workflows.
-
Create a voter registration system which collects the following information from the voter. Fields: First Name, Last Name, Address, County/City, Birthdate, Email, Phone
-
From a main screen, the user will click a "Register Voter" button. A registration form will be displayed. The user will enter the data, click "Complete Registration" and return to the main screen.
-
Finally, on the main screen there should be a button to display the list of registered voters.
-
Once created, users cannot be modified or deleted.
-
From the main screen, select a ballot to be used for voting. Then click a button named 'Vote' to commence the voting process.
-
The user should type in their identifying information. If their identifying information is valid the ballot should be shown. If the identifying information is not valid, the ballot should not be shown, and an error message should be shown.
-
The ballot should list the items under consideration with a checkbox next to each item. Checking the box is considered to be 'Yes', leaving it blank is a 'No'.
-
When the ballot is completed, the user should click a 'Cast Vote' button. A success screen is shown with a button to return to the main screen.
-
Elections are a list of questions (one or more). Create a form to collect new election, and a table to display the elections in the system.
-
Each row in the table should a 'View Results' button to see the completed ballots for a particular election.
-
Once created, elections cannot be modified or deleted.
-
The theme of the web site should match the color scheme of the mascot image.
-
On each page, display a header which includes the team name and mascot picture. Also, include some kind of motivational team slogan statement in the header.
-
Elsewhere on the main page, display the team photo.
-
Concerning state, use Redux to manage application state, use React to manage form control state. Please use React-Redux to connect React and Redux, and use Redux-Thunk for handling asychronous operations.
-
Where possible use stateless functions instead of class components.
-
Each component and other classes should be in their own files.
-
Three of the three workflows are completed.
-
There are no errors in the console.
-
All of the requirements are met.
-
Each member of the team made a significant contribution, and can describe to the instructor what they coded (this will be asked publicly during the presentation).
-
The application looks good. There will be some evidence of effort to make it look good and use the color theme.