Department of Information Technology Final Year Project: Election data presentation Project Definition Document Due: October 27th 2006 Project Supervisor: Team: Pat Byrne Sandra Fox Damien Mc Clafferty Table of Contents Chapter 1: Understanding the Project 1.1 Project Definition 1.2 Stakeholders 1.3 Scope 1.4 Goals and Objectives 1.5 1.4.1 Project Goals and Objectives 1.4.2 Personal Goals and Objectives Project Constraints Chapter 2: Project Requirements 2.1 System requirements 2.1.1 Functional requirements 2.1.2 Non functional requirements Chapter 3: Research 3.1 Outline of procedure 3.2 Elimination 3.3 Filling last seat 3.4 STV is Non-monotonic Chapter 4: Implementing the Technologies 4.1 Technology Consideration 4.2 Possible extra functionality/ features Chapter 5: Project Management 5.1 Roles and Responsibilities 5.2 Risk Analysis 5.3 Scheduling 5.3.1 5.3.2 Gantt Chart 5.3.3 Work Breakdown Structure 5.3.4 Milestones Chapter 6: 6.1 Work plan References References 1: Understanding the Project 1.1 Project Definition: The main aim of this project is to create a suitable program which will allow the display of upcoming election result information by means of animated charts and visualisations. These will be highly suitable for a television show which will represent the election results to the electorate. We are designing the program to accept all the election results on the regions, constituencies, so that we can clearly provide details on the amount of votes received for each politician, political party, how many seats each political party wins, the current winner, whom has exceeded the quota, and also the overall votes within each constituency. We can compare these results with the previous election. Also in this Program will also be able to provide a prediction as to which political party will succeed in winning the most seats and will provide us with a predicted overall election outcome, based on the figures received to date. We will also provide and compare the number of seats each political party has either gained or lost since the previous election, therefore, this will show the percentage swings for each political party. We will also apply the use of proportional representation so that a result could be predicted for each constituency from the first count. 1.2 Stakeholders: Key Stakeholders: Pat Byrne: Project supervisor Damien Mc Claffetry & Sandra Fox: Since we are the one’s that are going to build this system , which will make understanding the election system and results much easier for the public, we have a keen interest for a good outcome for the system. We will also gain from this project by hopefully achieving a good final year result. College: They own some of the rights to our project. Broadcaster: The television station will want to attract as many viewers as possible on the election night’s to increase profits. In order to do this, they will want their stations to be able to produce the results in an interesting, new and attractive way, but at the same time keeping the general public entertained. Electorate: The electorate will be eager to find out who is winning the election, also who in their constituency is being voted in and if the candidate they vote for will be voted in. They are interested to know who exactly will be presenting them in government. Politician: The politician’s will want to find out exactly how well they are doing, and to find out exactly where there political party is popular and unpopular. Public: The general public will be interested to see find out what political party will be running the country, also how the people they have voted for got on. Key stakeholders needs and expectations: Pat Byrne: Requires us to have an in-depth understand of the background on how the electorate system works. Expects us to design an excellent program to display animated charts/visualisation of the election results and to be able to explain and defend the approaches which we took throughout the project. Damien Mc Clafferty & Sandra Fox: Need to build a system that will help the Irish citizens interpret the election system. Will expect to receive a fair grade, for there work, effort and final system. College: Need a well developed final year project. Expect that a good effort will be put into the plan, development and implementation of the system. Broadcaster: Needs to increase viewer rating. Expect that the program will attract viewers. Electorate: Need to be informed on current results. Expect to be well informed of the election status. Politician: Need to be informed on current results. Expect to be well informed on their status and their parties’ status and whom they voted for. Public: Need to be informed of the results. Expect the results to be well displayed so they can be easily understood. 1.3 Scope: Included: o The system will hold a list of all political parties. o We will list all politicians that ran for the last general election and all politicians from the current election. o It will also hold information on how many seats each political party had previously and how many seats they are currently winning. o It will calculate the amount of votes each politician gains. o It will show if the politician has exceeded the quota. o It will calculate the over all election outcome. o It will show the percentage swing for each political party between this election and the last election. Excluded: o This system does not have electorate personal information stored, i.e. their name along with who they voted for. 1.4 Goals & objectives: 1.4.1 Project goals & objectives o We need to complete detailed research on the election process and the different ways to present the election data o We need to research the different technologies that are readably available out there and analyse their suitability for our project. o Choose, undertake and learn the necessary technologies. o We need to follow the work breakdown chart and Gantt chart to stay within the scheduled time. o Build a well functional system that meets all the requirements. o Work very hard on all documentation and the project in order to build a good working system that will provide and present all relevant information to the general public, so that they will understand the process. o Make sure we have a fully functional system before the deadline. 1.4.2 Personal Goals/Objectives: o We will build on our team building skills such as building and communication to a great extent while on this project. It will also stand to us after college. o Learn more bout following plans and time management. o We will learn new technologies such as python, ASP.net, extensive databases in Access and become extremely skilled in them. o Extensive research into how the election system works. Before this we were not so familiar in the way it worked. o To work hard on our documentation and on building our project in order to gain a high mark overall. o To work to the best of our ability on all project elements and thus produce a Project document and working tool that will be worthy of a good mark. o To ensure that both group members contribute evenly to all aspects of the project development 1.5. Project Constraints There are many constraints involved within this project. o This project a deadline so we have a schedule that we need to follow. However because of the upcoming exams and other projects, we have to divide our time between all, so that we can work efficiently and gain a good mark in all. o As we have so many other project groups we might not always be available to meet one another when necessary so this will impact our flexibility and time constraints. o Another serious constraint is the Christmas holidays. Because of the distance between each other, it will be impossible to work as a team on the project for a period of time. o We will also need the use of the IT computers and college library. This may be limited during the Christmas period depending on opening and closing times. This will therefore impact our development over the Christmas period. o After taking this into account, we have discussed the issue and we have that it will be necessary that we will have to work a bit alone by using alternative resources but we will always be contactable by phone, email or chat. o This project is worth 25% of our overall I.T Degree, which is a lot of marks, but we cannot forget that there is another 75%. By Christmas we will have another 25% already complete, so we will have time to work on the other 50% of our degree. o This project will require that we will have to learn some new technologies, such as, python, advanced Access, ASP.net. Such technologies may prove extremely time consuming and difficult to learn. We feel that the database side to the project will be quite taxing. So all in all we have a few critical constraints, but we hope to surpass these and deliver a good quality project. 2: Project Requirements. 2.1 System requirements: Our understanding of this project is to develop a program that will show clear, understandable, colourful and eye-catching diagrams, charts and visualizations, of the results of a general election in Ireland These visualizations should be fit to be screened on television, while at the same time keep the audience entertained and interested These visualizations should show the results of every constituency within Ireland, giving the details of exactly how many votes each politician won, therefore how many seats each political party has won and also how many seats the political parties had gained or lost on the previous general election 2.1.1 Functional requirements The functional requirements: o Results of general election o This program should display the results of the entire general election, as to how many seats each political party has won, and therefore which party has won the election. o Results of each constituencies o The total number of votes from every count for every candidate from each constituency, needs to recorded to show who has won the seats available in each constituency o Percentage swings (compare these results to previous election results) o This program should also be able to show graphically or visually how many seats a party has gained or lost since the last general election. Therefore showing the percentage swings for each political party since the last general election. o Be able to predict at any stage of the election , as to who will be elected and therefore which party will win o This program should be able to give a prediction as to which political party is going to win the most seats and therefore the overall election outcome, based on results received to date. This will be achieved by knowing exactly how many votes and seats each party had won in the last general election. From this information the program will assume that since the constituency was in favour of a particular party during the last general election, then there is no reason to suggest that this time round they will favour a different party. o The program may also apply the use of proportional representation so that a result could be predicted for each constituency from the first count o For each region involved the program should also be able to give an accurate prediction as to who or which party will win the seats for each constituency from the information gained from the first round of votes. This will be achieved by how many people are voting, and then putting this information into a mathematical equation. Fig 1. 2.1.2 Non functional requirements o Reliability/Performance: Users will be able to depend on the program, in that while in use it will not crash and it will bring up the relevant information that it is required to produce o Ease of use: The program should be simple to use and easy to understand o Maintenance: The program will be easy to update and easy to fix if for some reason a problem occurs. o Style: The simplicity of the design of the system will make it more user friendly. The graphs and visualisations will be colourful but to the point. The data and information will be clear, easy to read and understand 3 Research Ireland’s electoral system is proportional representation by means of a single transferable vote (STV) in multi-seat constituencies. Voters are asked to rank the candidates in order of preference on there ballot paper. All constituencies have three, four or five seats. Small threeseater constituencies favour the larger parties, and it is generally accepted that the optimal size for STV constituencies is at least five. There are 42 constituencies in total. 166 politicians can get elected in total to the Dáil Eireann. There are around 10 political parties but the main 8 political parties are Fianna Fáil, Fine Gael, Labour, Progressive Democrats, Green Party, Sinn Fein, Socialist and the Independent. 3.1 Outline of the procedure o At the beginning of the count for a constituency, all valid ballot papers are thoroughly mixed together and then sorted according to first preferences. o If we denote the total valid poll by P and let N be the number of seats, then the quota Q is calculated by the formula Q = 1+ P/N +1, where we round down if this number is not an integer. This is the smallest number of votes that guarantees election. If the number of votes for any candidates is equal to or greater than the quota they are deemed elected. o The surplus of an elected candidate is the number of votes by which that candidate’s total number of votes, original and transferred, exceeds the quota. o When a candidate is elected, the surplus ballots may be transferred to the remaining candidates according to the next preference on the ballots. o The ballots are physically divided into sub-parcels (literally different piles of ballots). Some ballots may not have a next preference for a continuing candidate, and these ballots are called non-transferable. o Ballots that do have a lower preference for a continuing candidate are called transferable. o The general idea is that a surplus is transferred if and only if at least one of the following conditions is met. o If transferring the surplus could elect the highest remaining candidate. o If transferring the surplus could bring the lowest remaining candidate equal to or above the second lowest remaining candidate. o If transferring the surplus could bring the lowest remaining candidate up to one quarter of the quota (candidates whose total reaches that figure qualify for reimbursement of some election expenses) 3.2 Elimination If none of the three conditions for transferring a surplus are met for any of the surpluses or the sum of the un-transferred surpluses, we eliminate the candidate with the lowest number of votes. All the transferable votes of the eliminated candidate are transferred to the remaining candidates according to the next preference. The non-transferable votes are classified as “non-transferable not effective,” since they did not have any effect on the election, and are set aside. 3.3 Filling last seats After the final count, the candidate or candidates who have the highest votes among those remaining will be deemed elected, even if they have failed to secure a quota 3.4 STV is Non-monotonic One odd aspect of STV is that it is non-monotonic. This means that getting more votes may prevent you from being elected. For example: Three candidates from party X are fighting for the last seat in county Z. When X3 is eliminated, the transfers are evenly split among X1 and X2 and X1 is elected. But X2 does not like X1, and demands a recount. The recount shows that two X1 ballots had been placed among the X2 ballots, so at the second to last count X1 actually has 7999 and X2 4000. But when X2 is eliminated, it turns out that all the votes have X3 as their next preference, and X3 is elected! 4 Implementing the Technologies 4.1 Technology Consideration There are many programming languages and other software available, in which we could develop this project in. After some research and asking around we have come to the conclusion that we will probably be using one of the following programs, python, asp.net, or Microsoft visual studio. We will also have to develop a database to hold all the voting information. Python Python was designed to be a highly readable language. It aims toward an uncluttered visual layout, uses English keywords frequently where other languages use punctuation, and has notably fewer syntactic constructions than many structured languages. The standard library is particularly well tailored to writing Internet-facing applications, with a large number of standard formats and protocols supported. It contains modules for creating graphical user interfaces and can connect to relational databases. Python is a remarkably powerful dynamic programming language that is used in a wide variety of application domains. ASP.NET ASP.net is a set of web application development technologies marketed by Microsoft. Programmers can use it to build dynamic web sites, web applications and XML web services. It is part of Microsoft's .NET platform and is the successor to Microsoft's Active Server Pages (ASP) technology. Programmers can write ASP.NET code using any of the different programming languages supported by the .NET Framework, usually C#, Visual Basic.NET, or JScript .NET, but also including open-source languages such as Perl and Python. ASP.NET has performance benefits over other script-based technologies because the serverside code is compiled to one or a few DLL files on a web server. Microsoft Visual Studio Microsoft Visual Studio is an integrated development environment by Microsoft. It helps programmers create programs, web sites, web applications, and web services that run on various platforms. Supported platforms include Microsoft Windows servers and workstations, PocketPC, Smartphones, and World Wide Web browsers. Visual Studio includes the following: o o o o Visual Basic Visual C++ Visual C# Visual J# Relational databases Relational database is a database that conforms to the relational model. The term refers to the database's data, and to the database's structure of that data, known as a schema. The software used to create a relational database is called the Relational Database Management System (RDBMS), but sometimes that software is mistakenly called the relational database. An RDBMS is sometimes incorrectly called a relational database. But, strictly speaking, Oracle, Microsoft SQL Server,PostgreSQL, and MySQL are not relational databases. Under popular usage of the term, these software packages are called "Relational Database Management Systems" (RDBMS), and as such they can be used to create relational databases 4.2 Possible extra functionality/ features We are hoping to build a website for any user who would like to view the election results online. This would have a list of constituencies, political parties, politicians. It will enable the user to compare the results of this current election to the previous one. We would like to also cover all the functionalities of the system we are building for the television station. 5 Project Management 5.1 Roles and Responsibilities As this is a rather large project, we have decided to assign specific roles and responsibilities to each team members. Project Leader: We have assigned our project supervisor Pat Byrne as our project leader. Her main roles within the project will be: o Set project goals o Hold team meetings o Approve all the project plans o Resolve issues that can’t be resolved within the working team o Monitor team progress o Provide expertise and guidance when required Team Members Roles: All team members, Sandra and Damien, will be assigned equal roles within the project. Each of us will be performing different tasks within the project, depending on our IT knowledge but our work load will be shared equally throughout the project. Our main roles within the project will be: o Arrange regular team meetings o Decide on what work needs to be done o Give support and help to one another o Keep each other up to date on current project progress 5.2 Risk Analysis With all big projects there are certain obstacles or risks involved from the project being late or unfinished. Here we have tried to for see what future risks might be involved in this project, which should help us in the long run. Time If we don’t follow the plan that we have set out for ourselves we could run out of time to finish this project, which would be a disaster. Other problems that might occur if we don’t follow our time scale are that we might end up rushing certain key areas of the project which could affect our possibilities of gaining a good grade. By setting reasonable deadlines and objectives we should be able to tell whether we are on the correct path to achieving our goal. Lack of skills We may come up to a part of the project that both our knowledge and skill levels are of no good to us, in that we might not have enough knowledge of certain software that is needed to do the project or that to gain enough knowledge to use a certain program may take up to much time within the project. Resources We may find out that after setting out our ideas as to how we want our program to work and run, the required resources or software is not available out there. Hopefully this situation should not arise if we do enough research. Changes to plan or program functionality At the minute we do not see any changes to the project, but one cannot disregard the occurrence of these events happening in the future. 5.3 Scheduling 5.3.1 Work Plan Since this is quite a large project, we came to the conclusion that a work plan would be beneficial to us as we progress through the project. This plan will be updated of course as we progress through the days and weeks of the project. Task Week Number 1 1-3 Phase Deliverable General Research Constructing PDD 2 3-4 3 4-5 4 5-6 5 6-7 6 7-8 7 8-10 8 10-11 9 25/09/06 - 20/10/06 Project Definition Document Researching technology requirements Designing the web page Start – End Date 20/10/06 - 27/10/06 10/30/06 - 3/11/06 Web Page 8/11/06 - 15/11/06 Design phase 1 16/11/06 - 24/11/06 Study 27/11/06 - 1/12/06 Exams 4/12/07 - 15/12/06 Design phase 2 19/12/06 - 21/12/06 Holidays 22/12/06 - 8/01/07 Design phase 3 9/01/07 -14/02/07 Testing 15-02/07-14/02/07 Gathering information for final report 15/03/07 - 21/03/07 11-13 13-17 10 9 18-21 10 21-22 11 23 12 24 13 25 Fig 2. 22/03/07 - 25/03/07 Bench demonstration Final Project Report Documentation Presentation Viva voce demonstration Viva Voce 02/04 - 06/04/07 Draft final year report 26/03/07 - 30/03/07 5.3.2 Gantt chart The Gantt chart (fig. 3) is a breakdown of the tasks to be done, the time to be spent on them and the milestone deliverable dates. Fig 3. 5.3.3 Work breakdown structure Election Data Presentation 1.1 Define Project (PDD) 2.1 Election Procedure 2.2.1 Research into programming Languages 3. Design 2. Research 1. Project Management 1.2 Delegate Workload 3.1 Program Architecture 3.2 Design Database 3.3 Graphical Design 2.2 Technology Research 2.2.2 Research of Database technologies 2.2.3 Animation programs 4.1 Functionality Testing Fig 4. 5.3.4 Milestones Important dates for presentations and submissions: Milestone: Project Definition Document Web Page Summarising Project Final Project Report Project Bench Demonstration Project Viva Voce 4. Testing Due Date: Friday, 27th October 2006 Friday, 10th November 2006 Friday, March 23rd, 2007. Week Beginning March 26th, 2007. Week Beginning April 2nd, 2007. 4.2 Reliability Testing 6 References 6.1 References: We gathered our information from different online sites. 1: Irish election database http://election.polarbears.com/default.htm 2: ElectionsIreland.org http://www.electionsireland.org/ 3: The Oireachtas http://www.oireachtas.ie/ 4: Wikipedia http://en.wikipedia.org/wiki/Main_Page 5: ASP.NET www.asp.net/ 6: Python www.python.org/