Dec 21, 2012 - include a feed to media houses, an API for app developers and the .... Price/Cost Proposal â Offerors w
REQUEST FOR PROPOSAL (RFP-13-050)
THIS REQUEST FOR PROPOSAL (RFP) IS THE EXCLUSIVE, CONFIDENTIAL, PROPRIETARY PROPERTY OF THE INTERNATIONAL FOUNDATION FOR ELECTORAL SYSTEMS (IFES). IT MAY NOT BE COPIED, TRANSMITTED, OR DISCLOSED BY ANY MEANS WITHOUT THE EXPRESS WRITTEN CONSENT OF IFES. BY ACCEPTING A COPY HEREOF, RECIPIENT AGREES TO (I) BE BOUND BY THE TERMS AND CONDITIONS CONTAINED HEREIN (INCLUDING BUT NOT LIMITED TO THE CONFIDENTIALITY PROVISONS), (II) USE THE RFP (AND ANY RELATED DOCUMENTS) SOLELY FOR EVALUATION PURPOSES AND FOR RESPONDING TO THIS RFP, AND (III) RETURN OR DESTROY THE RFP (AND ANY RELATED DOCUMENTS) UPON IFESs REQUEST OR UPON YOUR DECISION NOT TO RESPOND TO THIS RFP.
REQUEST FOR PROPOSAL (RFP) RFP Title:
Kenya Election Results Transmission System (RTS)
RFP #:
RFP-13-050
Issued on:
Friday, December 21st 2012
Proposal Deadline:
Friday, January 4th 2013, 17:00hrs Nairobi time
I. INTRODUCTION & BACKGROUND Under the U.S. Agency for International Development (USAID)-funded KEPPS program1, the International Foundation for Electoral Systems (IFES) is providing technical assistance to build the capacity and sustainability of the Independent Electoral and Boundaries Commission (IEBC) to implement their expanded electoral mandate, as well as to the newly created Office of the Registrar of Political Parties (ORPP) as it creates regulations and procedures to fulfil its new mandate. IFES’ targeted support includes capacity building in the areas of voter registration, voter education, results transmission, oversight of political parties, and the development of a dispute resolution mechanism to facilitate the IEBC’s role in conducting transparent, credible, and violence-free elections. In order to assist the IEBC in its preparations for General Elections scheduled for March 4 th 2013, IFES is conducting a number of procurements in relation to the systems and services necessary to deliver Electronic Vote Transmission and presentation. For further information on IFES please see www.ifes.org For further information on IEBC please visit www.iebc.or.ke
2
1
Kenya Election And Political Process Strengthening, USAID Associate Cooperative Agreement No. 623-LA-11-00007, under the Leader Cooperative Agreement No. DFD-A-00-08-00350-00
II. PURPOSE This RFP is aimed at seeking a suitably qualified and experienced software development company to develop, test, deliver, deploy and support a Results Transmission System for the Independent Electoral and Boundaries Commission of Kenya. The RTS is a key component of IEBC’s wider Electronic Vote Transmission and Results Management Systems.
III. SCOPE OF WORK & DELIVERABLES The Commission requires an Electronic Vote Transmission (EVT) System that allows provisional results to be transmitted electronically from all polling stations to the tallying centres where these results are consolidated and reported. The system is intended to work with a GPRS-enabled mobile device that transmits over a Virtual Private Network provided by the local telecommunication network operators. The Electronic Vote Transmission system requires each polling centre reporting the provisional results of six (6) elections to transmit these results to three (3) different Tally Centres across the country. The solution should fully automate the process as required to address the complexity of the expanded scope of multiple elections. Following the counting of ballots and the completion of the official paper forms by IEBC Presiding Officers, a mobile device will be used by each presiding officer to enter the data from those forms into a specially developed application (that is one deliverable of this RFP). This device will securely transmit these provisional results over mobile data network to servers at IEBC for consolidation and publication. The application running on the servers is another deliverable of this RFP. Meanwhile, the paper forms will be moved to the relevant Tally Centres for official consolidation and reporting. On receipt of the paper forms at the relevant Tally Centre, and once approved by the Returning Officer there, IEBC operators will enter the official results data into the RTS system (which functionality is a deliverable of this RFP). At this point, the system will contain both Provisional and Official Results. The RTS at the Tally Centres will allow tabular and basic bar chart reporting of provisional and results data, as well as other relevant management and status reports as required.
3
Results Transmission Procedure The transmission system will be required to authenticate itself to a centralized authentication, authorization and provisioning system; this will in turn give a list of races, their candidates and reporting IP addresses (national level IP addresses, county level IP address and constituency level IP address) to the authenticated and authorized phones. The phones should therefore transmit results for each race to three specified destination IP addresses (the National Tally Centre, the County Tally Centre and the Constituency Tally Centre). The server system should then return a confirmation number for each race that is
successfully transmitted. Retransmission should be made possible after server side authorization. The system should also send a log of all previously attempted yet failed transmission for auditing purposes.
Constituency Tally Centre
County Tally Centre
National Tally Centre
Tally Centre Presentation **
Tally Centre Presentation **
Polling Stations
**basic **basic tabular tabular and and chart chart reports reports
EVT Components
Internet
Results Presentation System*
RTS TELECOMS RPS
*digital *digital mapping, mapping, visualization visualization etc etc
Figure 1 Illustration of the Proposed Workflow for Transmission of Results
The chosen vendor will develop, test, deploy and support: (1) an application that will run on the mobile device provided to each Polling Station (2) the applications that will run on the IEBC servers (3) the applications that will allow IEBC to manage and configure the mobile devices The chosen vendor will also develop and deliver appropriate training of trainers to allow IEBC to train Presiding Officers. The vendor will liaise closely with:
4
IEBC IFES
IEBC’s telecommunications provider IEBC’s electoral information presentation and visualization partner (Google)
The selected vendor will NOT be required to deliver: (1) Any hardware other than that used for training, testing and support. (2) GPRS/EDGE/3G connectivity – this will be procured separately. However, close interoperability between the chosen vendor and IEBC’s Telecoms provider is essential. (3) Results presentation or visualization or mapping functionality. Only numerical reporting (tabular reports, across multiple levels (polling station, county assembly ward, constituency, county, national) is required from the solution being procured under this RFP. The project requires the management of electoral results for all the major elections conducted by IEBC. The objectives of the project are to obtain a high availability and secure system that: • Provides the commission with a modern automated solution of managing results • Provides transparency in relaying of results to the public • Is able to do Fast, accurate and efficient tabulation and tallying of results The project involves the IEBC, the transmission software developers and the mobile services providers. The mobile service provider will provide a Virtual Private Networks (VPN) within the existing GSM/GPRS/3G network and configured on the mobile phones SIM cards. The software should be able to report the results for the six elections (Presidential, Governor, Senator, Women Rep, National Assembly Rep. and the County assembly ward rep) carried out in 47 counties, 290 constituencies and 1,450 Wards when transmitted from more than 25,000 polling stations.
The project must ensure that proper training of all stakeholders (political parties, development partners and the Public) is carried out to get acceptance and understanding of the system.
The IEBC has, since 2010 implemented an EVT system. That system has several limitations:
5
i. Scope – the original EVT system was not designed for the expanded number of elections under the Constitution and is limited to transmitting results to only two tallying centres (National and Constituency) instead of the three (National, Constituency and County)
ii. User Interface - the original EVT system has a poor user interface that requires a sender to perform several confirmations in order to transmit results. The data entry interface makes it difficult to correct wrong entries. It does not provide device data validation or integrity checks. iii. Security – the original EVT system does not provide data encryption on the phone interface but relies on the security provided by the mobile service provider’s VPN. iv. In addition to this, the original EVT system does not authenticate or authorize users/presiding officers who utilize the mobile system. The network operators VPN security should provide a second level of security, in a multi-tier security framework. v. User security – the original EVT system does not provide application-level user authentication. vi. Feedback – while the original EVT system notifies the user of successful sending, it fails to send a confirmation of successful receipt. vii. Multiple deployments – the original EVT system requires multiple deployments of the same software to be carried out since data of candidates and destination servers is embedded into the installation and thus requires a separate installation for each ward. viii. Poor integration with digital maps. ix. The current system does not support satellite phone platforms and there are many polling centres that do not have mobile telephony network coverage. This RFP specifies a system that overcomes these deficiencies. Note that the integration with digital maps has been removed from RTS. IEBC will collaborate with Google in order to achieve widespread dissemination of results data. For an example of IEBC-Google collaboration on the visualization of Voter Registration location data, please visit http://vote.iebc.or.ke
IV. FUNCTIONAL SPECIFICATIONS OF DESIRED SYSTEM Application Security The application should comply with the ISO IEC 17799 and ISO 27001/27002 standards on Access Control and the use of both authentication and authorization.
6
1. The application should have a user’s security management module that shall enable for creation, activation, deactivation, transfers and management of users permissions and rights both at the central and regional levels. 2. Users will identify themselves using parameters that include but are not limited to: i. Phone IMEI ii. Device IP Address iii. Username
3.
4. 5. 6.
iv. Password v. Polling Station The IMEI Number and the Device IP address will be used to authenticate devices to the central system based on a white list maintained at the central database at the Headquarters. The application should have the ability to use strong encryption and also digitally sign all data transmitted. No data will be transmitted in clear text. The central administration of these certificates should make it possible for administrators to revoke certificates on rogue mobile devices. The system should in collaboration with the security provided by network providers provide multi-level security.
User Interface The Application should comply with the ergonomics and basic principles of human centered design for interactive systems as defined by ISO 9241. This will enhance usability, familiarity, effective usage of the system, and thus enhancing user satisfaction and system acceptance. 1. In general, the application should demonstrate the following features: The system should have visibility and legibility of menus, text and graphics, The interface actions and elements should be consistent. Error messages should explain how to recover from the error. Undo should be available for most actions. Actions which cannot be undone should ask for confirmation. The screen layout and color should be appealing. It should be easy for the user to use the navigation keys on the phone to navigate. The user documentation and help should be complete. The help should be context sensitive and explain how to achieve common tasks. The system should be easy to use, navigate and learn. The system should be customizable to meet specific user needs. 2. The screen of the application should be laid out in the manner illustrated in Appendix 2. Data Entry The general objectives of designing data entry functions is to establish consistency of data entry transactions, minimize input actions and memory load on the user, ensure compatibility of data entry with data display, and provide flexibility of user control of data entry. The following requirements on data entry should be satisfied in the proposed solution.
7
1. The candidates list should be presented in alphabetical order of surnames i.e. in the same order candidates appear in the ballot paper. 2. The data entry screen should be simplified and optimized for data entry of 40-50 candidates per race and also allow for easy correction of wrong entries in a fast
3.
4. 5. 6. 7.
8.
manner. The application should enable capturing and transmission of the following information per race and. a. Total number of valid votes per candidate b. Total Number of spoilt votes c. Total number of rejected votes d. Total Number of rejections objected to Enable acknowledgement of completion of a data entry transaction with a confirmation message, if data entry was successful, or else with an error message. Enable easy navigation from one race to the next after completion of a data entry transaction. The system should display a message before sending data for user confirmation and also a confirmation message for successfully transmitted results. The application should provide 2 levels of validation namely: Candidate level validation that ensures only positive numbers are accepted (Negative Numbers should not be accepted). Race level validation that ensures the total turnout does not exceed the registered voters in that particular polling station. The system should also keep a log of exceptions generated (attempts to send turnouts that are above the number of voters registered at polling centre) e.t.c. to improve on transparency.
Results Transmission – Presiding officer The transmission device and user will be required to authenticate to a centralized authentication, authorization and provisioning system; this will in turn give a list of races, their candidates and reporting IP addresses (national level IP addresses, county level IP address and constituency level IP address) to the authenticated and authorized phones. The phones should therefore transmit results for each race to a specified destination IP address. The server system should then return a confirmation number for each race that is successfully transmitted. Re-transmission should be made possible after server side authorization. The system should also send a log of all previously attempted yet failed transmission for auditing purposes. The results transmission mechanisms implemented in the proposed solution must enable the following;
8
1. Transmission of results should be enabled only after fully authentication and authorization of the devices and users. 2. Data should be transmitted only in an encrypted form and digitally signed. 3. Enable simultaneous transmission of results to the constituency tally centre, county tally centre and the national tally centre. 4. Enable both offline saving of results and allow for re-transmission of results when
network becomes available. 5. A confirmation message should be sent from the receiving station to the sending station upon receipt of results. 6. The system should have configurable time restrictions before which results cannot be accepted to prevent sending of results before polling stations have been closed.
Results verification - Returning Officer Upon receipt of provisional results from the polling station together with the documentation and signed copies of the relevant forms, the returning officer shall verify and enter the final results into a web based version that will be synchronized with the central database.
Other requirements 1. The software should provide immutable logs for ensuring a strong auditing process of the reported results. 2. The software should not only be tamper-proof but also tamper- evident – logs of attacks will need to be kept.
INTERFACE WITH EXTERNAL SYSTEMS Import requirements
9
1. The system will interface with the candidate nomination system. The candidate nomination system will produce the boundary data (counties, constituencies, wards, polling stations, each with names and codes) the six races o Presidential o Governor, o Senator , o Women representative o National Assembly representative (Member of Parliament) o County Assembly Ward representative the candidates for the above positions (names, sponsorship (party, independent), symbol) 2. This data should be available to the results transmission system as soon as IEBC has certified the nominations – once the data has been released for ballot paper production, i.e. late January 2013. 3. The RTS system should ensure that changes in the candidate nomination system data can be quickly reflected in the EVT system.
IMPORT SCHEMA The system will be required to import data from a nomination system that represents entities in the following manner.
All Primary and foreign keys are 36 byte Global unique identifiers (GUIDs, UUIDs). The relationship between all the entities is illustrated using the foreign keys (dashed lines). The link between the Races entity and the Locations (county, constituency and wards) in which offices are going to be competed for in is represented using the EntityID and entitytype fields. The type of race is denoted by racetype field. The EntityID contains the unique identifier (primary key) of the Location and the entitytype denotes the type of Location it is. For presidency – the EntityID is always null. The nomination system represents the Entitytype using the following enumeration National = 5, Region = 4, County = 3, Constituency = 2, Ward = 1 The racetype is defined using the following enumeration Presidential = 1, Governor = 2, Senator = 3, NationalAssembly = 4, WomenRepresentative = 5, CountyAssemblyRepresentative = 6, Referendum = 7 The candidate status is represented using the following enumeration Deleted = 6, Deceased = 5, Nominated = 4, Disqualified = 3, Withdrawn = 2, Pending = 1, Registered = 0
Independent candidates are flagged as independent as opposed to them being in a “party” called “independent” For a complete schema for the candidate nominations system, please see Appendix 1 – Database Schema - Nominations System – ATTACHED AS PDF
Export requirements The system should enable exporting of data to other systems e.g. Results Presentation System (RPS) for visualization and for external reporting. The system will need to specify the output format enabling third party software to present and visualize the data captured. A data dictionary should document all the fields used to store this data. A push mechanism should be enabled that may push data as soon as availed to subscribed services using open data formats, this will include a feed to media houses, an API for app developers and the election day result display system e.t.c. The system will forward the Races, Candidates, Parties, locations (Regions, Counties, Constituencies, Wards and Polling stations) will be forwarded to the visualization system as visualized above via CSV. The results will be PUSHED to the results visualization system as soon as they are available using JSON. A sample result for a certain race from a certain polling station will be as illustrated below [ { "PollingCentreID": "d014a4fa-12d3-11e2-a853-00ff98e4ecf6", "PollingCentreName": "Nakuru High School", "raceID": "18110e72-13d1-11e2-9b34-00ff98e4ecf6", "Disputed": 34, "Rejected": 20,
12
"Spoilt": 40, "results": [ { "CandidateID": "156918f6-14c3-11e2-9b34-00ff98e4ecf6", "votes": 300 }, { "CandidateID": "fe6352ad-14c2-11e2-9b34-00ff98e4ecf6", "votes": 380 }, { "CandidateID": "6104dca0-14c3-11e2-9b34-00ff98e4ecf6", "votes": 500 }, { "CandidateID": "084708fd-13d2-11e2-9b34-00ff98e4ecf6", "votes": 400 } ]
Other requirements include; 1. The system will need to specify the output format enabling third party software to present and visualize the data captured. 2. A data dictionary should document all the fields used to store this data. 3. A push mechanism should be enabled that may push data as soon as availed to subscribed services using open data formats, this will include a feed to media houses, an API for app developers and the election day result display system e.t.c.
13
MANAGEMENT REPORTS The system should provide management and analytical reports for internal use within the commission. This should include but not limited to the following;
1. 2. 3. 4. 5.
A.
Summary of results received Summary of results verified Constituency tally results County tally results National tally results
PART I: DATA ENTRY AND TRANSMISSION APPLICATION
DEVICE REQUIREMENTS Mobile Device – primary platform for RTS The IEBC has in the region of twenty thousand Nokia 1680 Classic phone. This will be the primary platform for the mobile application being procured in this RFP. Details of this device are available here: http://www.developer.nokia.com/Devices/Device_specifications/1680_classic/ The supplied mobile application will run on this and equivalent devices (should IEBC purchase additional handsets).
14
Satellite Device Additionally, the IEBC owns a quantity of Thuraya satellite phones, also capable of supporting Java. The mobile RTS application should also be capable of installation and running on this handset. Details of this device are available here: http://www.thuraya.com/products/voice/thuraya-sg The supplied mobile application should run on this and equivalent satellite devices (should IEBC purchase additional satellite handsets). SIM Card IEBC will separately procure SIM cards from its Telecom partner. It is expected that the SIM card will configure the handsets so that each phone connected to a dedicated APN, thereby ensuring that all communications will be on a private network. Other configuration options may be included in the SIM. Operating Platform (Java) The application will use a Java micro edition (Java ME) program able to run on the IEBC’s Nokia 1680 Classic GSM phone, as well as the IEBC’s Thuraya satellite handsets. Additionally, the IEBC may require that some of its Biometric Voter Registration Laptops be used for RTS. Please see Appendix 4 for specifications of this device. Device Power Autonomy The target device should be able to run the whole day and election night. Sufficient batteries will be available. However, the delivered solution should be engineered in a manner that is sensitive to power consumption. FUNCTIONAL REQUIREMENTS USER INTERFACE
15
The screen of the application should be laid out in the following manner: •
•
Login Screen -> races screen -> candidate screen -> candidate data entry/correction screen. It should be easy for the user to use the navigation keys on the phone to navigate.
SPECIFICATIONS FOR VOTING DAY REPORTING FUNCTIONALITY In addition to the transmission of results, the application should also be capable of collecting events on voting day. These events are
Hourly voter turnout and spoilt votes Opening of polling stations Closing of polling stations Start of counting Finish of counting Problems encountered falling in a predefined list of categories namely o Shortage or non delivery Strategic materials o Shortage or non delivery non-Strategic materials o Security incidences o Missing voters on an hourly basis All the application requirements will need to be used for this as well. This means that the application will provide
16
end to end multi-layer security application level user authentication and authorization
notification of successful receipt immutable logs for all activities
The voting day reporting module will have data collected from polling stations and require all incidents reports such as missing strategic items, hourly voter turnout, opening of polling stations, closing of polling station, start time of counting, and finish time of counting. The envisage reports are: Hourly voter turnout and spoilt votes Opening of polling stations Closing of polling stations Start of counting Finish of counting Transmitting of results Voting Progress Analysis The system should provide an Election Day management presentation for management team at national tallying centres providing information analyzing the process from the opening of polling stations to close of polling and counting. Reports to include basic graphical and tabular presentation of: • • • • • •
17
Percentage Number of polling stations opened over a specified period e.g. 6 am to 7am Percentage Number of polling stations closed over a specified period 5pm to 7pm Percentage Voter turnout graph per constituency Percentage Number of polling stations closed and started counting over a specified period 5pm to 7pm Statistics of polling stations that have reported problem in various categories e.g. Strategic Materials, Non Strategic Materials
Other than tabular and basic charting detailed here, no digital mapping or other visualization of voting day event data is required.
Figure 2 Sample Presentation for one of the envisaged reports
Training Requirements
18
Training (including appropriate materials) will be required for the following categories of personnel: 1. Mobile RTS application users 2. Field support staff 3. Tally Centre application users 4. Regional and HQ operations staff 5. Staff of the ICT Directorate at HQ and Regional locations 6. Managerial staff of IEBC and partners Additionally, the offerer will be required to make appropriate material available to the IEBC Public Communications department to facilitate stakeholder (including political parties, media, public and domestic & international observers) awareness. The offeror is required only to deliver the top of a cascade training model – i.e. Training of Trainers (approximately 40) and IEBC will be responsible for ongoing training of its personnel. The scope of training should be in: i. ii. iii. iv. v. vi. vii.
19
Configuring the system to connect and import data from the external nomination system Configuring the system with destination IP addresses Adding users/editing authorizing them Removal/locking of rogue phones Use of the voting day operations application Use of the results transmission module Administration training on where this data is stored
DATA ENTRY OF OFFICIAL RESULTS AT TALLY CENTRES Following the electronic transmission of provisional results from polling stations, the official results contained on the paper Form 16 will be transported to Constituency or County Tally centres as appropriate (County Assembly Ward results will move to County Tally Centres, while other results will move to Constituency Tally centres as appropriate). The software at the servers will permit the data entry by authorised IEBC personnel of official results. In addition to reconciliation of provisional and official results, the Tally Centre server applications will present all results received and transmit official results to National Tally Centre for consolidation.
WORKSTATION AND SERVER OPERATING SYSTEM AND DATABASE ENVIRONMENTS Redundant high-end application servers, running Windows Server 2008 Enterprise Edition R2 will be deployed by IEBC at the National Tally Centre. The offeror is asked to provide RDBMS with its solution. MySQL or Microsoft SQL Server is preferred. At the Constituency and County Tally Centres, workstations will be provided, running Windows 7 64-bit OS. Offerors are asked to provide RDBMS, MySQL preferred.
TESTING Please See Appendix 5 Testing. Vendors are expected to submit, with their proposals, a test plan that elaborates how it will test the delivered solutions, in line with Appendix 5.
20
V. CONTRACT MECHANISM & TERMS OF PAYMENT IFES anticipates issuing a firm fixed price contract to an offeror. IFES will issue fixed payment(s) based on submission and IFES and IEBC acceptance of deliverables. Once an award is issued, it will include a fixed price payment schedule with deliverables specified in the Scope of Work.
VI. PROPOSAL SUBMISSION REQUIREMENTS Offerors should read the following proposal instructions carefully. All interested offerors must provide the following: 1.
Capability and Technical Experience Statement – not to exceed 10 pages, indicating the following: a. Brief, general overview of organization. b. Capabilities and experience for conducting similar scopes of work as described above, with emphasis on electoral projects, and in particular on the capture and transmission of results on mobile devices. c. Description of methodologies, sample design, time line of activities, and reporting plan you are recommending to achieve the described scope of work. d. Description of any partner organization or subcontractor that you might contract with to do a portion of the scope of work, and a description of the division of level of effort and responsibility between your organization and the partner or subcontractor. e. If the offeror has a website or can post examples of their work, please indicate the website. Do not send any hardware with the proposal.
21
2.
Staffing – Please identify no more than 5 key personnel and the percentage of the time they will spend on this activity. Include no more than a half-page biosketch of each key personnel.
3.
Price/Cost Proposal – Offerors will submit fixed price proposal in a separate, sealed envelope labelled “BUDGET PROPOSAL” with sufficient detail to allow evaluation of elements of costs proposed. Budgets should be submitted in the currency of the country within
which your organization is located. If the proposal is being submitted electronically, please send the technical and price/cost proposal in separate emails, clearly labeled “technical proposal” and “price/cost proposal”. Please provide a price proposal for the total fixed amount. The fixed price proposal should only include a fixed price for each deliverable as described in the scope of work, above. 1. Please note that IFES cannot honour exchange rates included in a budget and payments will be made according to the exchange rate at the time of payment. 2. Please indicate the inclusion/exclusion of any applicable VAT. IFES is generally exempt from VAT payments and thus will not reimburse for VAT.
22
4.
References: Please include three client references and contact information. References should have worked with your agency within the past two years and specific to countries or regions (and if possible, subject matter) applicable to this RFP.
5.
Additional Terms and Conditions – Please review Appendix 6.
6.
Certifications– Please read and sign the required Certifications attached in Appendix 7.
VII. CRITERIA FOR EVALUATION Proposals will be evaluated and ranked by committee according to the conditions described in the evaluation criteria below. Proposals will first be evaluated from a technical standpoint. Those proposals that are considered to be technically acceptable shall then be evaluated in terms of cost. Technical Scores
Points
Technical Command and Grasp
40
Staff and Quality Control Mechanisms
10
Regional Experience
40
Proposed Timeline*
10
Total Technical Score
TT - max 100
*Please understand that adherence to the required timeline is a fundamental prerequisite for award of this tender. The points being awarded above will reflect the evaluators’ confidence in the offerer’s ability and commitment to the electoral calendar for Kenya, 2013. Financial Scores The evaluation committee will determine if the financial proposals are complete and without computational errors. After initial review for reasonableness of costs to complete the assignment, points are assigned. Price:
23
PP - max 40
The lowest price (LP) proposal will be given a financial score (Sf) of the maximum points (PP). The financial scores of all other proposals will be computed as follows: Sf = PP x LP/P1,…….P2, P3 where P1, P2, P3 are the prices of the other proposals.
Total Technical Score
+
Sf
=
Total Points
TT
+
Sf
=
TP
For the purposes of comparison, all prices will be converted to USD$ at the rate applicable on the date of proposal deadline. The vendor with the highest Total Points will be awarded the contract.
VIII. RFP RESPONSE INFORMATION All responses to this RFP must be received no later than 1700hrs (Nairobi time), 4th January, 2013 Proposals should be submitted in the following format(s):
24
1) All inquiries and requests for clarification of this RFP must be submitted by e-mail to
[email protected];
[email protected] and
[email protected] , reference RFP-13-050, no later than 1200hrs, Nairobi, 28th December, 2012. Inquiries and answers to inquiries will be shared with all offerors. 2) Electronic email copy must be submitted in PDF format to Joshua Hayes at
[email protected] , Jaime Acosta at
[email protected] and Genet Menelik at
[email protected] . Original copies may be mailed (not required) to Genet Menelik at the following address: The International Foundation for Electoral Systems 11th Floor Embankment Plaza Longonot Road Upper-Hill PO Box 29654-00100, Nairobi KENYA
IFES will not compensate offerors for their preparation of any response to this RFP.
IX. TERMS AND CONDITIONS Offerors are responsible for review of the terms and conditions described below and in the award template attached. If relevant, particular attention should be paid to clauses regarding USAID geographic code, marking and branding requirements and equipment and commodity purchases.
25
WITHDRAWALS OF PROPOSALS Offerors may withdraw proposals by written notice via email received at any time before award. Proposals may be withdrawn in person by an offeror or his/her authorized representative, if the representative’s identity is made known and the representative signs a receipt for the proposal before award. RIGHT TO SELECT/REJECT IFES reserves the right to select and negotiate with those firms it determines, in its sole discretion, to be qualified for competitive proposals and to terminate negotiations without incurring any liability. IFES also reserves the right to reject any or all proposals received without explanation.
DISCLAIMER This RFP represents only a definition of requirements. It is merely an invitation for submission of proposals and does not legally obligate IFES to accept any of the submitted proposals in whole or in part, nor is IFES obligated to select the lowest priced proposal. IFES reserves the right to negotiate with any or all firms, both with respect to price, cost and/or scope of services. IFES has no contractual obligations with any firms based upon issuance of this RFP. It is not an offer to contract. Only the execution of a written contract shall obligate IFES in accordance with the terms and conditions contained in such contract. REQUEST FOR PROPOSAL FIRM GUARANTEE All information submitted in connection with this RFP will be valid for three (3) months from the RFP due date. This includes, but is not limited to, cost, pricing, terms and conditions, service levels, and all other information. If your firm is awarded the contract, all information in the RFP and negotiation process is contractually binding. OFFER VERIFICATION IFES may contact offerors to confirm contact person, address, bid amount and to confirm that the bid was submitted for this solicitation.
26
FALSE STATEMENTS IN OFFER Offerors must provide full, accurate and complete information as required by this solicitation and its attachments. CONFLICT OF INTEREST Offerors must provide disclosure of any past, present or future relationships with any parties associated with the issuance, review or management of this solicitation and anticipated award. Failure to provide full and open disclosure may result in IFES having to re-evaluate selection of a potential offeror. RESERVED RIGHTS All RFP responses become the property of IFES and IFES reserves the right in its sole discretion to: o To disqualify any offer based on offeror failure to follow solicitation instructions; o IFES reserves the right to waive any deviations by offerors from the requirements of this solicitation that in IFES's opinion are considered not to be material defects requiring rejection or disqualification; or where such a waiver will promote increased competition; o Extend the time for submission of all RFP responses after notification to all offerors; o Terminate or modify the RFP process at any time and re-issue the RFP to whomever IFES deems appropriate; o IFES reserves the right to issue an award based on the initial evaluation of offers without discussion; o Award only part of the activities in the solicitation or issue multiple awards based on solicitation activities. Governing Law and Language This solicitation and any resulting contract shall be interpreted in accordance with the laws of the U.S. Government except in cases where they contradict Kenyan law. The English language version of this solicitation and any resulting contract shall govern, and all notices pursuant to the provisions of this solicitation and any resulting contract shall be in English.
27
X. RFP ATTACHMENTS Appendix 1:
Database Schema – Nominations System
Appendix 2:
Mobile Client User Interface Screenshots
Appendix 3:
Server Functionality Screenshots
Appendix 4:
IEBC BVR Laptop Computer Specifications
Appendix 5:
Draft Test Plan
Appendix 6:
Procurement Template
Appendix 7:
Certifications
– END OF MAIN RFP – ATTACHMENTS FOLLOW –
28
APPENDIX 1 – DATABASE SCHEMA - NOMINATIONS SYSTEM – ATTACHED AS PDF
29
APPENDIX 2 – MOBILE CLIENT USER INTERFACE SCREENSHOTS Start Screen, with IEBC logo
Securing Communications
30
Login Screen
31
32
33
Races List (red dot is Not Sent, green dot is Sent)
34
Select a Race and the candidates are downloaded
35
List of candidates – party and votes ordered in the same way they are ordered in the ballot and on the results Form
36
Enter the number of votes cast for each candidate in turn Enter the number of votes cast for each candidate in turn
37
38
Enter other information from the Results Form (Disputed, Rejected, etc)
39
Review completed data entry
40
41
Navigation Options
42
Choose SEND option
43
Sending progress screen
44
Once a given Race has been sent, the dot on the Races screen turns from Red to Green.
45
Not illustrated: A confirmation message should be sent from the receiving station to the sending station upon receipt of results.
46
APPENDIX 3 – SERVER FUNCTIONALITY SCREENSHOTS Login Screen
47
Home Page (Dashboard)
48
Waiting Page
49
Results Received Page
50
Result Verification – 1
51
Result Verification – 2
52
Result Received Report
53
Electronic Version of Form 16 Data
54
Provisional Form 17
55
Transmission to HQ
56
Presentation Tally Percentages and Results
57
Presentation of Totals per Candidate before Final Results
58
Presentation of Totals Per Candidate with partial Official Results confirmed
59
Sample Bar Graph Presentation
60
Sample Pie Chart Presentation
61
Sample Presentation – Bar Chart showing both Provisional and Confirmed (Official) results, by Constituency
62
Sample Presentation of Timestamps of Receipt of Results
63
APPENDIX 4 – IEBC BVR LAPTOP COMPUTER SPECIFICATIONS •DELL E 6320 LATITUDE MODEL • Processor : Intel® CoreTM i3 2330 • Operating System : Windows XP • Memory : 2GB DDR3 SDRAM (1333 MHz) • Mobile Intel® QM67 Express Chipset • Intel® HD Graphics 3000 • Display : 13.3” HD (1366x768) Anti-Glare LED • 500GB HDD 7200 rpm SATA • Removable DVD-ROM, DVD+/-RW • Battery : 6-cell (58Wh) 3 Year Warranty Lithium Ion battery • Power 65W AC Adapter • 10/100/1000 Gigabit Ethernet • Dual Pointing Keyboard • QWERTY Keyboard • 3 x USB-2 Ports
A suitable GSM modem dongle will be procured as required.
APPENDIX 5 – DRAFT TEST PLAN – SEE ATTACHED PDF
65
APPENDIX 6 – ADDITIONAL TERMS AND CONDITIONS Drug Trafficking: IFES AND/OR THE US GOVERNMENT RESERVE THE RIGHT TO TERMINATE THIS PURCHASE ORDER/SUBCONTRACT TO DEMAND A REFUND OR TAKE OTHER APPROPRIATE MEASURES IF THE VENDOR/SUBCONTRACTOR IS FOUND TO HAVE BEEN CONVICTED OF A NARCOTICS OFFENSE OR TO HAVE BEEN ENGAGED IN DRUG TRAFFICKING AS DEFINED IN 22 CFR PART 140.
TERRORISM E.O. 13224: Vendor/Subcontractor agrees to take all necessary actions to comply with Executive Order No. 13224 on Terrorist Financing; blocking and prohibiting transactions with persons who commit, threaten to commit, or support terrorism. (E.O. 13224 text provided and also available at: http://www.whitehouse.gov/news/releases/2001/09/20010924-1.html Note: The attachment does not include ‘Names of Those Designated’ after 23 September 2001; therefore, you are required to obtain the updated list at the time of procurement of goods or services. The updated list is available at: http://treasury.gov/offices/enforcement/ofac/sanctions/terrorism.html
66
APPENDIX 7 – CERTIFICATIONS THE FOLLOWING THREE CERTIFICATIONS – MUST BE COMPLETED AND SIGNED BY EACH BIDDER AND RETURNED AS PART OF THE PROPOSAL SUBMISSION PACKAGE CERTIFICATION # 1 CERTIFICATION REGARDING TERRORIST FINANCING
By signing and submitting this application, the prospective recipient provides the certification set out below: 1. The Recipient, to the best of its current knowledge, did not provide, within the previous ten years, and will take all reasonable steps to ensure that it does not and will not knowingly provide, material support or resources to any individual or entity that commits, attempts to commit, advocates, facilitates, or participates in terrorist acts, or has committed, attempted to commit, facilitated, or participated in terrorist acts, as that term is defined in paragraph 3. 2. The following steps may enable the Recipient to comply with its obligations under paragraph 1: a. Before providing any material support or resources to an individual or entity, the Recipient will verify that the individual or entity does not (i) appear on the master list of Specially Designated Nationals and Blocked Persons, which list is maintained by the U.S. Treasury’s Office of Foreign Assets Control (OFAC) and is available online at OFAC’s website: http://www.treas.gov/offices/eotffc/ofac/sdn/t11sdn.pdf, or (ii) is not included in any supplementary information concerning prohibited individuals or entities that may be provided by USAID to the Recipient. b. Before providing any material support or resources to an individual or entity, the Recipient also will verify that the individual or entity has not been designated by the United Nations Security (UNSC) sanctions committee established under UNSC Resolution 1267 (1999) (the “1267 Committee”) [individuals and entities linked to the Taliban, Usama bin Laden, or the Al Qaida Organization]. To determine whether there has been a published designation of an individual or entity by the 1267 Committee, the Recipient should refer to the consolidated list available online at the Committee’s website: http://www.un.org/Docs/sc/committees/1267/1267ListEng.htm. c. Before providing any material support or resources to an individual or entity, the Recipient will consider all information about that individual or entity of which it is aware and all public information that is reasonably available to it or of which it should be aware. d. The Recipient also will implement reasonable monitoring and oversight procedures to safeguard against assistance being diverted to support terrorist activity.
67
3. For purposes of this Certificationa. “Material support and resources” means currency or monetary instruments or financial securities, financial services, lodging, training, expert advice or assistance, safehouses, false documentation or identification, communications equipment, facilities, weapons, lethal substances, explosives, personnel, transportation, and other physical assets, except medicine or religious materials.” b. “Terrorist act” means(i) an act prohibited pursuant to one of the 12 United Nations Conventions and Protocols related to terrorism (see UN terrorism conventions Internet site: http://untreaty.un.org/English/Terrorism.asp); or (ii) an act of premeditated, politically motivated violence perpetrated against noncombatant targets by subnational groups or clandestine agents; or (iii) any other act intended to cause death or serious bodily injury to a civilian, or to any other person not taking an active part in hostilities in a situation of armed conflict, when the purpose of such act, by its nature or context, is to intimidate a population, or to compel a government or an international organization to do or to abstain from doing any act. c. “Entity” means a partnership, association, corporation, or other organization, group or subgroup. d. References in this Certification to the provision of material support and resources shall not be deemed to include the furnishing of USAID funds or USAID-financed commodities to the ultimate beneficiaries of USAID assistance, such as recipients of food, medical care, micro-enterprise loans, shelter, etc., unless the Recipient has reason to believe that one or more of these beneficiaries commits, attempts to commit, advocates, facilitates, or participates in terrorist acts, or has committed, attempted to commit, facilitated or participated in terrorist acts. e. The Recipient’s obligations under paragraph 1 are not applicable to the procurement of goods and/or services by the Recipient that are acquired in the ordinary course of business through contract or purchase, e.g., utilities, rents, office supplies, gasoline, etc., unless the Recipient has reason to believe that a vendor or supplier of such goods and services commits, attempts to commit, advocates, facilitates, or participates in terrorist acts, or has committed, attempted to commit, facilitated or participated in terrorist acts. This Certification is an express term and condition of any agreement issued as a result of this application, and any violation of it shall be grounds for unilateral termination of the agreement by IFES prior to the end of its term.
For Subcontractor:
Signature: Typed Name: Title: Name of Organization: Date:
68
CERTIFICATION #2. CERTIFICATION REGARDING DEBARMENT, SUSPENSION, AND OTHER RESPONSIBILITY MATTERS -PRIMARY COVERED TRANSACTIONS (a)
Instructions for Certification
1. By signing and submitting this proposal, the prospective primary participant is providing the certification set out below. 2. The inability of a person to provide the certification required below will not necessarily result in denial of participation in this covered transaction. The prospective participant shall submit an explanation of why it cannot provide the certification set out below. The certification or explanation will be considered in connection with the department or agency’s determination whether to enter into this transaction. However, failure of the prospective primary participant to furnish a certification or an explanation shall disqualify such person from participation in this transaction. 3. The certification in this clause is a material representation of fact upon which reliance was placed when the department or agency determined to enter into this transaction. If it is later determined that the prospective primary participant knowingly rendered an erroneous certification, in addition to other remedies available to the Federal Government, the department or agency may terminate this transaction for cause or default. 4. The prospective primary participant shall provide immediate written notice to the department or agency to whom this proposal is submitted if at any time the prospective primary participant learns that this certification was erroneous when submitted or has become erroneous by reason of changed circumstances. 5. The terms “covered transaction,” “debarred,” “suspended,” “ineligible,” “lower tier covered transaction,” “participant,” “person,” “primary covered transaction,” “principal,” “proposal,” and “voluntarily excluded,” as used in this clause, have the meaning set out in the Definitions and Coverage sections of the rules implementing Executive Order 12549. You may contact the department or agency to which this proposal is being submitted for assistance in obtaining a copy of those regulations. 6. The prospective primary participant agrees by submitting this proposal that, should the proposed covered transaction be entered into, it shall not knowingly enter into any lower tier covered transaction with a person who is debarred, suspended, declared ineligible, or voluntarily excluded from participation in this covered transaction, unless authorized by the department or agency entering into this transaction. 7. The prospective primary participant further agrees by submitting this proposal that it will include the clause titled “Certification Regarding Debarment, Suspension, Ineligibility and Voluntary Exclusion--Lower Tier Covered Transaction,” provided by the department or agency entering into this covered transaction, without modification, in all lower tier covered transactions and in all solicitations for lower tier covered transactions. 8. A participant in a covered transaction may rely upon a certification of a prospective participant in a lower tier covered transaction that it is not debarred, suspended, ineligible, or
69
voluntarily excluded from the covered transaction, unless it knows that the certification is erroneous. A participant may decide the methods and frequency by which it determines the eligibility of its principals. Each participant may, but is not required to, check the Nonprocurement List. 9. Nothing contained in the foregoing shall be construed to require establishment of a system of records in order to render in good faith the certification required by this clause. The knowledge and information of a participant is not required to exceed that which is normally possessed by a prudent person in the ordinary course of business dealing. 10. Except for transactions authorized under paragraph 6 of these instructions, if a participant in a covered transaction knowingly enters into a lower tier covered transaction with a person who is suspended, debarred, ineligible, or voluntarily excluded from participation in this transaction, in addition to other remedies available to the Federal Government, the department or agency may terminate this transaction for cause or default. (b) Certification Regarding Debarment, Suspension, and Other Responsibility Matters--Primary Covered Transactions (1) The prospective primary participant certifies to the best of its knowledge and belief, the it and its principals: (A) Are not presently debarred, suspended, proposed for debarment, declared ineligible, or voluntarily excluded from covered transactions by any Federal department or agency; (B) Have not within a three-year period preceding this proposal been convicted of or had a civil judgement rendered against them for commission of fraud or a criminal offense in connection with obtaining, attempting to obtain, or performing a public (Federal, State or local) transaction or contract under a public transaction; violation of Federal or State antitrust statutes or commission of embezzlement, theft, forgery, bribery, falsification or destruction of records, making false statements, or receiving stolen property; (C) Are not presently indicted for or otherwise criminally or civilly charged by a governmental entity (Federal, State or local) with commission of any of the offenses enumerated in paragraph (1)(B) of this certification; (D) Have not within a three-year period proceeding this application/proposal had one or more public transactions (Federal, State or local) terminated for cause or default. (2) Name: Title: Date:
70
Where the prospective primary participant is unable to certify to any of the statements in this certification, such prospective participant shall attach an explanation to this proposal.
CERTIFICATION #3. CERTIFICATION REGARDING DEBARMENT, SUSPENSION, INELIGIBILITY AN VOLUNTARY EXCLUSION – LOWER TIER COVERED TRANSACTIONS (Code of Federal Regulations 22 CFR 208: Government-wide Debarment and Suspension (Nonprocurement) and Government-wide Requirements for Drug-Free Workplace (Grants); Appendix B: Certification Regarding Debarment, Suspension, Ineligibility and Voluntary Exclusion – Lower Tier Covered Transactions Instructions for Certification: By signing and submitting this proposal, the prospective lower tier participant is providing the certification set out below. 2. The certification in this clause is a material representation of fact upon which reliance was placed when this transaction was entered into. If it is later determined that the prospective lower tier participant knowingly rendered an erroneous certification, in addition to other remedies available to the Federal Government, the department or agency with which this transaction originated may pursue available remedies, including suspension and/or debarment. 3. The prospective lower tier participant shall provide immediate written notice to the person to which this proposal is submitted if at any time the prospective lower tier participant learns that its certification was erroneous when submitted or has become erroneous by reason of changed circumstances. 4. The terms Acovered transaction,@ Adebarred,@ Asuspended,@ Aineligible,@ Alower tier covered transaction,@ Aparticipant,@ Aperson,@ Aprimary covered transaction,@ Aprincipal,@ Aproposal,@ and Avoluntary excluded,@ as used in this clause, has the meanings set out in the Definitions and Coverage sections of rules implementing Executive Order 12549. You may contact the person to which this proposal is submitted for assistance in obtaining a copy of those regulations. 5. The prospective lower tier participant agrees by submitting this proposal that, should the proposed covered transaction be entered into, it shall not knowingly enter into any lower tier covered transaction with a person who is debarred, suspended, declared ineligible, or voluntarily excluded from participation in this covered transaction, unless authorized by the department or agency with which this transaction originated. 6. The prospective lower tier participant further agrees by submitting this proposal that it will include this clause titled ACertification Regarding Debarment, Suspension, Ineligibility and Voluntary Exclusion--Lower Tier Covered Transaction,@ without modification, in all lower tier covered transactions and in all solicitations for lower tier covered transactions.
71
7. A participant in a covered transaction may rely upon a certification of a prospective participant in a lower tier covered transaction that it is not debarred, suspended, ineligible, or voluntarily excluded from the covered transaction, unless it knows that the certification is erroneous. A participant may decide the method and frequency by which it determines the eligibility of its principals. Each participant may, but is not required to, check the Non-Procurement List.
8. Nothing contained in the foregoing shall be construed to require establishment of a system of records in order to render in good faith the certification required by this clause. The knowledge and information of a participant is not required to exceed that which is normally possessed by a prudent person in the ordinary course of business dealings. 9. Except for transactions authorized under paragraph 5 of these instructions, if a participant in a covered transaction knowingly enters into a lower tier covered transaction with a person who is suspended, debarred, ineligible, or voluntarily excluded from participation in this transaction, in addition to other remedies available to the Federal Government, the department or agency with which this transaction originated may pursue available remedies, including suspension and/or debarment. Certification Regarding Debarment, Suspension, Ineligibility and Voluntary Exclusion--Lower Tier Covered Transactions: (1) The prospective lower tier participant certifies, by submission of this proposal, that neither it nor its principals is presently debarred, suspended, proposed for debarment, declared ineligible, or voluntarily excluded from participation in this transaction by any Federal department or agency. (2) Where the prospective lower tier participant is unable to certify to any of the statements in this certification, such prospective participant shall attach an explanation to this proposal.
Name: Title: Date:
72
PHYSICAL MODEL FOR PROJECT
Candidate Nominations MODEL
SQL Server 2008 R2 Version 1.0
IEBC (c) by Ben Created: 06/12/2012 Last Modified: 07/12/2012
Entities
Entity Report Entity Name
Primary Key
# Attribu tes
dbo.Candidates dbo.Constituencies dbo.Counties dbo.Elections dbo.PoliticalParties dbo.PollingCentres dbo.Races dbo.Regions dbo.Wards
CandidateID ConstituencyID CountyID ElectionID PoliticalPartyID PollingCentreID RaceID RegionID WardID
25 24 11 12 12 12 11 3 9
- 2-
Entities
Entity 'dbo.Candidates' Caption Primary Key
Candidates PK_candidates
Entity Properties Filegroup TEXTIMAGE_ON Filegroup
PRIMARY PRIMARY
Primary Key 'PK_candidates' Attribute Name CandidateID
type PK
Parent Entity -----
- 3-
Entities
Attributes Key PK
FK
FK
Attribute Name CandidateI D OtherNam es PoliticalPa rtyID Independe nt RaceID Surname RunningM ateSurnam e RunningM ateOtherN ames RunningM ateIDCard Number RunningM ateVoterC ardNumbe r EmailAddr ess IDCardNu mber PassportC ardNumbe r VoterCard Number Symbol Photo SymbolDe sc RunningM atePhoto Status ReasonNot Contesting LastUpdat edByUserI D
Domain
N1)
U2)
C3)
D4)
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
Varchar(50)
NO
NO
NO
NO
Varchar(50)
NO
NO
NO
NO
Varchar(50)
NO
NO
NO
NO
Varchar(50)
NO
NO
NO
NO
Varchar(50)
NO
NO
NO
NO
Varchar(50)
NO
NO
NO
NO
Varchar(50)
NO
NO
NO
NO
Varchar(50)
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
Data Type Uniqueident ifier Varchar(20 0) Uniqueident ifier Bit Uniqueident ifier Varchar(50)
Varbinary( max) Varbinary( max) Varchar(ma x) Varbinary( max) Int Varchar(ma x) Uniqueident ifier
- 4-
Comments
Entities CreatedOn IP Location UpdatedO n
Datetime Varchar(20) Varchar(20 0)
NO NO
NO NO
NO NO
NO NO
NO
NO
NO
NO
Datetime
NO
NO
NO
NO
Relationships Relationship Name FK_Candidates_Politic alPartyID FK_Candidates_RaceI D
Relationship Type
Parent Entity
Child Entity
Card.
Non-identifying
dbo.PoliticalParties
dbo.Candidates
1:N
Non-identifying
dbo.Races
dbo.Candidates
1:N
- 5-
Entities
Entity 'dbo.Constituencies' Caption Primary Key
Constituencies PK_Constituency
Entity Properties Filegroup TEXTIMAGE_ON Filegroup
PRIMARY PRIMARY
Primary Key 'PK_Constituency' Attribute Name ConstituencyID
type PK
Parent Entity -----
- 6-
Entities
Attributes Key PK FK
Attribute Name Constituen cyID CountyID Constituen cyName Constituen cyCode TotalRegis teredVoter s AverageDi stanceToP Cs Population Over18 Area OfficeLoca tion OfficeSpa ceArea WardsNu mber NoOfPollin gStations WaterAvai lable Electricity Available InternetAv ailable Telephone Available DistanceFr omNairobi ApproxLen OfTarmac Cover StaffingLe vel LastUpdat edByUserI D CreatedOn IP Location
Domain
N1)
U2)
C3)
D4)
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
Varchar(10)
NO
NO
NO
NO
Int
NO
NO
NO
NO
Float
NO
NO
NO
NO
Int
NO
NO
NO
NO
Float Varchar(ma x)
NO
NO
NO
NO
NO
NO
NO
NO
Float
NO
NO
NO
NO
Int
NO
NO
NO
NO
Int
NO
NO
NO
NO
Bit
NO
NO
NO
NO
Bit
NO
NO
NO
NO
Bit
NO
NO
NO
NO
Bit
NO
NO
NO
NO
Float
NO
NO
NO
NO
Float
NO
NO
NO
NO
Varchar(ma x)
NO
NO
NO
NO
Uniqueident ifier
NO
NO
NO
NO
NO NO
NO NO
NO NO
NO NO
NO
NO
NO
NO
Data Type Uniqueident ifier Uniqueident ifier Nvarchar(2 00)
Datetime Varchar(20) Varchar(20 0)
- 7-
Comments
Entities UpdatedO n
Datetime
NO
NO
NO
NO
Relationships Relationship Name FK_Constituencies_Co untyID FK_WARDS_Constitue ncyID
Relationship Type
Parent Entity
Child Entity
Card.
Non-identifying
dbo.Counties
dbo.Constituencies
1:N
Non-identifying
dbo.Constituencies
dbo.Wards
1:N
- 8-
Entities
Entity 'dbo.Counties' Caption Primary Key
Counties PK_District
Entity Properties Filegroup
PRIMARY
Primary Key 'PK_District' Attribute Name CountyID
type PK
Parent Entity -----
Attributes Key
Attribute Name
PK
CountyID
FK
RegionID
Domain
CountyNa me CountyCo de TotalRegis teredVoter s AverageDi stanceToP Cs LastUpdat edByUserI D CreatedOn IP Location UpdatedO n
N1)
U2)
C3)
D4)
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
Varchar(10)
NO
NO
NO
NO
Int
NO
NO
NO
NO
Float
NO
NO
NO
NO
Uniqueident ifier
NO
NO
NO
NO
Datetime Varchar(20) Varchar(20 0)
NO NO
NO NO
NO NO
NO NO
NO
NO
NO
NO
Datetime
NO
NO
NO
NO
Data Type Uniqueident ifier Uniqueident ifier Nvarchar(2 00)
Comments
Relationships Relationship Name FK_Constituencies_Co untyID FK_County_RegionID
Relationship Type
Parent Entity
Child Entity
Card.
Non-identifying
dbo.Counties
dbo.Constituencies
1:N
Non-identifying
dbo.Regions
dbo.Counties
1:N
- 9-
Entities
Entity 'dbo.Elections' Caption Primary Key
Elections PK_Elections
Entity Properties Filegroup
PRIMARY
Primary Key 'PK_Elections' Attribute Name ElectionID
type PK
Parent Entity -----
Attributes Key
Attribute Name
PK
ElectionID
Domain
ElectionNa me ElectionDa te Nominatio nStartDate Nominatio nEndDate Generated ElectionTy pe LastUpdat edByUserI D CreatedOn IP Location UpdatedO n
N1)
U2)
C3)
D4)
YES
NO
NO
YES
NO
NO
NO
NO
Datetime
NO
NO
NO
NO
Datetime
NO
NO
NO
NO
Datetime
NO
NO
NO
NO
Bit
NO
NO
NO
NO
Smallint
NO
NO
NO
NO
Uniqueident ifier
NO
NO
NO
NO
Datetime Varchar(20) Varchar(20 0)
NO NO
NO NO
NO NO
NO NO
NO
NO
NO
NO
Datetime
NO
NO
NO
NO
Data Type Uniqueident ifier Varchar(20 0)
Comments
Relationships Relationship Name FK_Races_ElectionID
Relationship Type Non-identifying
Parent Entity
Child Entity
Card.
dbo.Elections
dbo.Races
1:N
-10-
Entities
Entity 'dbo.PoliticalParties' Caption Primary Key
PoliticalParties PK_PoliticalParties
Entity Properties Filegroup TEXTIMAGE_ON Filegroup
PRIMARY PRIMARY
Primary Key 'PK_PoliticalParties' Attribute Name PoliticalPartyID
type PK
Parent Entity -----
Attributes Key PK
Attribute Name PoliticalPa rtyID PartyCode PartyNam e Acronymn SymbolDe sc Registered On Approved Symbol LastUpdat edByUserI D CreatedOn IP
Domain
Location UpdatedO n
N1)
U2)
C3)
D4)
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
Datetime
NO
NO
NO
NO
Varbinary( max)
NO
NO
NO
NO
Uniqueident ifier
NO
NO
NO
NO
Datetime Varchar(20) Varchar(20 0)
NO NO
NO NO
NO NO
NO NO
NO
NO
NO
NO
Datetime
NO
NO
NO
NO
Data Type Uniqueident ifier Varchar(50) Varchar(20 0) Varchar(10) Varchar(25 0)
Comments
Relationships Relationship Name
Relationship Type
Parent Entity
Child Entity
Card.
FK_Candidates_Politic alPartyID
Non-identifying
dbo.PoliticalParties
dbo.Candidates
1:N
Indexes Index Name IX_PoliticalParties
Attributes PartyCode
Unique NO
-11-
Entities
Entity 'dbo.PollingCentres' Caption Primary Key
PollingCentres PK_PollingCentre_PollingCentreID
Entity Properties Filegroup
PRIMARY
Primary Key 'PK_PollingCentre_PollingCentreID' Attribute Name PollingCentreID
type PK
Parent Entity -----
Attributes Key PK
FK
Attribute Name PollingCen treID PollingCen treName
Domain
WardID PollingCen treCode LastUpdat edByUserI D Registered Voters Streams TypeOfPol lingStation CreatedOn IP Location UpdatedO n
N1)
U2)
C3)
D4)
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
Varchar(10)
NO
NO
NO
NO
Uniqueident ifier
NO
NO
NO
NO
Int
NO
NO
NO
NO
Int
NO
NO
NO
NO
Int
NO
NO
NO
NO
Datetime Varchar(20) Varchar(20 0)
NO NO
NO NO
NO NO
NO NO
NO
NO
NO
NO
Datetime
NO
NO
NO
NO
Data Type Uniqueident ifier Varchar(20 0) Uniqueident ifier
Comments
Relationships Relationship Name
Relationship Type
Parent Entity
Child Entity
Card.
FK_PollingCentres_Wa rdID
Non-identifying
dbo.Wards
dbo.PollingCentres
1:N
-12-
Entities
Entity 'dbo.Races' Caption Primary Key
Races PK_Races
Entity Properties Filegroup
PRIMARY
Primary Key 'PK_Races' Attribute Name RaceID
type PK
Parent Entity -----
Attributes Key
Attribute Name
PK
RaceID
Domain
RaceNam e RaceType FK
ElectionID EntityID EntityType LastUpdat edByUserI D CreatedOn IP Location UpdatedO n
N1)
U2)
C3)
D4)
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
Datetime Varchar(20) Varchar(20 0)
NO NO
NO NO
NO NO
NO NO
NO
NO
NO
NO
Datetime
NO
NO
NO
NO
Data Type Uniqueident ifier Varchar(20 0) Int Uniqueident ifier Uniqueident ifier Tinyint Uniqueident ifier
Comments
Relationships Relationship Name FK_Candidates_RaceI D FK_Races_ElectionID
Relationship Type
Parent Entity
Child Entity
Card.
Non-identifying
dbo.Races
dbo.Candidates
1:N
Non-identifying
dbo.Elections
dbo.Races
1:N
-13-
Entities
Entity 'dbo.Regions' Caption Primary Key
Regions PK_Regions_RegionID
Entity Properties Filegroup
PRIMARY
Primary Key 'PK_Regions_RegionID' Attribute Name RegionID
type PK
Parent Entity -----
Attributes Key
Attribute Name
PK
RegionID
Domain
RegionNa me RegionCo de
Data Type Uniqueident ifier Varchar(20 0) Varchar(10)
N1)
U2)
C3)
D4)
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
Comments
Relationships Relationship Name FK_County_RegionID
Relationship Type Non-identifying
Parent Entity
Child Entity
Card.
dbo.Regions
dbo.Counties
1:N
-14-
Entities
Entity 'dbo.Wards' Caption Primary Key
Wards Key12
Entity Properties Filegroup
PRIMARY
Primary Key 'Key12' Attribute Name WardID
type PK
Parent Entity -----
Attributes Key
Attribute Name
PK
WardID
FK
Domain
WardNam e Constituen cyID WardCode LastUpdat edByUserI D CreatedOn IP Location UpdatedO n
N1)
U2)
C3)
D4)
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
Datetime Varchar(20) Varchar(20 0)
NO NO
NO NO
NO NO
NO NO
NO
NO
NO
NO
Datetime
NO
NO
NO
NO
Data Type Uniqueident ifier Varchar(25 0) Uniqueident ifier Varchar(25 0) Uniqueident ifier
Comments
Relationships Relationship Name FK_PollingCentres_Wa rdID FK_WARDS_Constitue ncyID
Relationship Type
Parent Entity
Child Entity
Card.
Non-identifying
dbo.Wards
dbo.PollingCentres
1:N
Non-identifying
dbo.Constituencies
dbo.Wards
1:N
1)
Not Null Unique 3) Check 4) Default 2)
-15-
Attributes
Attribute Report Attribute Name
Entity Name
Domain
CandidateID
dbo.Candidates
CreatedOn EmailAddress IDCardNumber Independent IP
dbo.Candidates dbo.Candidates dbo.Candidates dbo.Candidates dbo.Candidates
LastUpdatedByUserID
dbo.Candidates
Location OtherNames PassportCardNumber
dbo.Candidates dbo.Candidates dbo.Candidates
Photo
dbo.Candidates
PoliticalPartyID
dbo.Candidates
RaceID
dbo.Candidates
ReasonNotContesting
dbo.Candidates
RunningMateIDCardNumber RunningMateOtherNames
dbo.Candidates dbo.Candidates
RunningMatePhoto
dbo.Candidates
RunningMateSurname RunningMateVoterCardNum ber Status Surname
dbo.Candidates
Uniqueidentif ier Datetime Varchar(50) Varchar(50) Bit Varchar(20) Uniqueidentif ier Varchar(200) Varchar(200) Varchar(50) Varbinary(m ax) Uniqueidentif ier Uniqueidentif ier Varchar(max ) Varchar(50) Varchar(50) Varbinary(m ax) Varchar(50)
dbo.Candidates dbo.Candidates dbo.Candidates
Symbol
dbo.Candidates
SymbolDesc
dbo.Candidates
UpdatedOn VoterCardNumber ApproxLenOfTarmacCover Area AverageDistanceToPCs ConstituencyCode
dbo.Candidates dbo.Candidates dbo.Constituencies dbo.Constituencies dbo.Constituencies dbo.Constituencies
ConstituencyID
dbo.Constituencies
ConstituencyName
dbo.Constituencies
CountyID
dbo.Constituencies
-16-
Data Type
PK
FK
YES
NO
NO NO NO NO NO
NO NO NO NO NO
NO
NO
NO NO NO
NO NO NO
NO
NO
NO
YES
NO
YES
NO
NO
NO NO
NO NO
NO
NO
NO
NO
Varchar(50)
NO
NO
Int Varchar(50) Varbinary(m ax) Varchar(max ) Datetime Varchar(50) Float Float Float Varchar(10) Uniqueidentif ier Nvarchar(20 0) Uniqueidentif ier
NO NO
NO NO
NO
NO
NO
NO
NO NO NO NO NO NO
NO NO NO NO NO NO
YES
NO
NO
NO
NO
YES
Attributes CreatedOn DistanceFromNairobi ElectricityAvailable InternetAvailable IP
dbo.Constituencies dbo.Constituencies dbo.Constituencies dbo.Constituencies dbo.Constituencies
LastUpdatedByUserID
dbo.Constituencies
Location NoOfPollingStations
dbo.Constituencies dbo.Constituencies
OfficeLocation
dbo.Constituencies
OfficeSpaceArea PopulationOver18
dbo.Constituencies dbo.Constituencies
StaffingLevel
dbo.Constituencies
TelephoneAvailable TotalRegisteredVoters UpdatedOn WardsNumber WaterAvailable AverageDistanceToPCs CountyCode
dbo.Constituencies dbo.Constituencies dbo.Constituencies dbo.Constituencies dbo.Constituencies dbo.Counties dbo.Counties
CountyID
dbo.Counties
CountyName
dbo.Counties
CreatedOn IP
dbo.Counties dbo.Counties
LastUpdatedByUserID
dbo.Counties
Location
dbo.Counties
RegionID
dbo.Counties
TotalRegisteredVoters UpdatedOn CreatedOn ElectionDate
dbo.Counties dbo.Counties dbo.Elections dbo.Elections
ElectionID
dbo.Elections
ElectionName ElectionType Generated IP
dbo.Elections dbo.Elections dbo.Elections dbo.Elections
LastUpdatedByUserID
dbo.Elections
Location NominationEndDate NominationStartDate
dbo.Elections dbo.Elections dbo.Elections
-17-
Datetime Float Bit Bit Varchar(20) Uniqueidentif ier Varchar(200) Int Varchar(max ) Float Int Varchar(max ) Bit Int Datetime Int Bit Float Varchar(10) Uniqueidentif ier Nvarchar(20 0) Datetime Varchar(20) Uniqueidentif ier Varchar(200) Uniqueidentif ier Int Datetime Datetime Datetime Uniqueidentif ier Varchar(200) Smallint Bit Varchar(20) Uniqueidentif ier Varchar(200) Datetime Datetime
NO NO NO NO NO
NO NO NO NO NO
NO
NO
NO NO
NO NO
NO
NO
NO NO
NO NO
NO
NO
NO NO NO NO NO NO NO
NO NO NO NO NO NO NO
YES
NO
NO
NO
NO NO
NO NO
NO
NO
NO
NO
NO
YES
NO NO NO NO
NO NO NO NO
YES
NO
NO NO NO NO
NO NO NO NO
NO
NO
NO NO NO
NO NO NO
Attributes UpdatedOn Acronymn
dbo.Elections dbo.PoliticalParties
ApprovedSymbol
dbo.PoliticalParties
CreatedOn IP
dbo.PoliticalParties dbo.PoliticalParties
LastUpdatedByUserID
dbo.PoliticalParties
Location PartyCode PartyName
dbo.PoliticalParties dbo.PoliticalParties dbo.PoliticalParties
PoliticalPartyID
dbo.PoliticalParties
RegisteredOn SymbolDesc UpdatedOn CreatedOn IP
dbo.PoliticalParties dbo.PoliticalParties dbo.PoliticalParties dbo.PollingCentres dbo.PollingCentres
LastUpdatedByUserID
dbo.PollingCentres
Location PollingCentreCode
dbo.PollingCentres dbo.PollingCentres
PollingCentreID
dbo.PollingCentres
PollingCentreName RegisteredVoters Streams TypeOfPollingStation UpdatedOn
dbo.PollingCentres dbo.PollingCentres dbo.PollingCentres dbo.PollingCentres dbo.PollingCentres
WardID
dbo.PollingCentres
CreatedOn
dbo.Races
ElectionID
dbo.Races
EntityID
dbo.Races
EntityType IP
dbo.Races dbo.Races
LastUpdatedByUserID
dbo.Races
Location
dbo.Races
RaceID
dbo.Races
RaceName RaceType UpdatedOn RegionCode
dbo.Races dbo.Races dbo.Races dbo.Regions
-18-
Datetime Varchar(10) Varbinary(m ax) Datetime Varchar(20) Uniqueidentif ier Varchar(200) Varchar(50) Varchar(200) Uniqueidentif ier Datetime Varchar(250) Datetime Datetime Varchar(20) Uniqueidentif ier Varchar(200) Varchar(10) Uniqueidentif ier Varchar(200) Int Int Int Datetime Uniqueidentif ier Datetime Uniqueidentif ier Uniqueidentif ier Tinyint Varchar(20) Uniqueidentif ier Varchar(200) Uniqueidentif ier Varchar(200) Int Datetime Varchar(10)
NO NO
NO NO
NO
NO
NO NO
NO NO
NO
NO
NO NO NO
NO NO NO
YES
NO
NO NO NO NO NO
NO NO NO NO NO
NO
NO
NO NO
NO NO
YES
NO
NO NO NO NO NO
NO NO NO NO NO
NO
YES
NO
NO
NO
YES
NO
NO
NO NO
NO NO
NO
NO
NO
NO
YES
NO
NO NO NO NO
NO NO NO NO
Attributes RegionID
dbo.Regions
RegionName
dbo.Regions
ConstituencyID
dbo.Wards
CreatedOn IP
dbo.Wards dbo.Wards
LastUpdatedByUserID
dbo.Wards
Location UpdatedOn WardCode
dbo.Wards dbo.Wards dbo.Wards
WardID
dbo.Wards
WardName
dbo.Wards
Uniqueidentif ier Varchar(200) Uniqueidentif ier Datetime Varchar(20) Uniqueidentif ier Varchar(200) Datetime Varchar(250) Uniqueidentif ier Varchar(250)
-19-
YES
NO
NO
NO
NO
YES
NO NO
NO NO
NO
NO
NO NO NO
NO NO NO
YES
NO
NO
NO
Attributes
Attribute 'CandidateID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique Default
CandidateID dbo.Candidates YES NO Uniqueidentifier YES NO (newsequentialid())
Attribute Properties Default Constraint Name
DF__Candidate__Candi__1273C1CD
Attribute 'CreatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
CreatedOn dbo.Candidates NO NO Datetime NO NO
Attribute 'EmailAddress' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
EmailAddress dbo.Candidates NO NO Varchar(50) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'IDCardNumber' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
IDCardNumber dbo.Candidates NO NO Varchar(50) NO NO
-20-
Attributes
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'Independent' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Independent dbo.Candidates NO NO Bit NO NO
Attribute 'IP' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
IP dbo.Candidates NO NO Varchar(20) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'LastUpdatedByUserID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
LastUpdatedByUserID dbo.Candidates NO NO Uniqueidentifier NO NO
Attribute 'Location' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Location dbo.Candidates NO NO Varchar(200) NO NO
-21-
Attributes
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'OtherNames' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
OtherNames dbo.Candidates NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'PassportCardNumber' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
PassportCardNumber dbo.Candidates NO NO Varchar(50) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'Photo' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Photo dbo.Candidates NO NO Varbinary(max) NO NO
-22-
Attributes
Attribute 'PoliticalPartyID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
PoliticalPartyID dbo.Candidates NO YES Uniqueidentifier NO NO
Parent Entity
dbo.PoliticalParties
RaceID dbo.Candidates NO YES Uniqueidentifier NO NO
Parent Entity
dbo.Races
Attribute 'RaceID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Attribute 'ReasonNotContesting' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
ReasonNotContesting dbo.Candidates NO NO Varchar(max) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'RunningMateIDCardNumber' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RunningMateIDCardNumber dbo.Candidates NO NO Varchar(50) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
-23-
Attributes
Attribute 'RunningMateOtherNames' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RunningMateOtherNames dbo.Candidates NO NO Varchar(50) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'RunningMatePhoto' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RunningMatePhoto dbo.Candidates NO NO Varbinary(max) NO NO
Attribute 'RunningMateSurname' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RunningMateSurname dbo.Candidates NO NO Varchar(50) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'RunningMateVoterCardNumber' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RunningMateVoterCardNumber dbo.Candidates NO NO Varchar(50) NO NO
-24-
Attributes
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'Status' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Status dbo.Candidates NO NO Int NO NO
Attribute 'Surname' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Surname dbo.Candidates NO NO Varchar(50) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'Symbol' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Symbol dbo.Candidates NO NO Varbinary(max) NO NO
Attribute 'SymbolDesc' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
SymbolDesc dbo.Candidates NO NO Varchar(max) NO NO
-25-
Attributes
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'UpdatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
UpdatedOn dbo.Candidates NO NO Datetime NO NO
Attribute 'VoterCardNumber' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
VoterCardNumber dbo.Candidates NO NO Varchar(50) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'ApproxLenOfTarmacCover' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
ApproxLenOfTarmacCover dbo.Constituencies NO NO Float NO NO
Attribute 'Area' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Area dbo.Constituencies NO NO Float NO NO
-26-
Attributes
Attribute 'AverageDistanceToPCs' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
AverageDistanceToPCs dbo.Constituencies NO NO Float NO NO
Attribute 'ConstituencyCode' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
ConstituencyCode dbo.Constituencies NO NO Varchar(10) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'ConstituencyID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique Default
ConstituencyID dbo.Constituencies YES NO Uniqueidentifier YES NO (newsequentialid())
Attribute 'ConstituencyName' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
ConstituencyName dbo.Constituencies NO NO Nvarchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
-27-
Attributes
Attribute 'CountyID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
CountyID dbo.Constituencies NO YES Uniqueidentifier NO NO
Parent Entity
Attribute 'CreatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
CreatedOn dbo.Constituencies NO NO Datetime NO NO
Attribute 'DistanceFromNairobi' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
DistanceFromNairobi dbo.Constituencies NO NO Float NO NO
Attribute 'ElectricityAvailable' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
ElectricityAvailable dbo.Constituencies NO NO Bit NO NO
Attribute 'InternetAvailable' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
InternetAvailable dbo.Constituencies NO NO Bit NO NO
-28-
dbo.Counties
Attributes
Attribute 'IP' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
IP dbo.Constituencies NO NO Varchar(20) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'LastUpdatedByUserID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
LastUpdatedByUserID dbo.Constituencies NO NO Uniqueidentifier NO NO
Attribute 'Location' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Location dbo.Constituencies NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'NoOfPollingStations' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
NoOfPollingStations dbo.Constituencies NO NO Int NO NO
-29-
Attributes
Attribute 'OfficeLocation' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
OfficeLocation dbo.Constituencies NO NO Varchar(max) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'OfficeSpaceArea' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
OfficeSpaceArea dbo.Constituencies NO NO Float NO NO
Attribute 'PopulationOver18' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
PopulationOver18 dbo.Constituencies NO NO Int NO NO
Attribute 'StaffingLevel' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
StaffingLevel dbo.Constituencies NO NO Varchar(max) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
-30-
Attributes
Attribute 'TelephoneAvailable' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
TelephoneAvailable dbo.Constituencies NO NO Bit NO NO
Attribute 'TotalRegisteredVoters' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
TotalRegisteredVoters dbo.Constituencies NO NO Int NO NO
Attribute 'UpdatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
UpdatedOn dbo.Constituencies NO NO Datetime NO NO
Attribute 'WardsNumber' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
WardsNumber dbo.Constituencies NO NO Int NO NO
Attribute 'WaterAvailable' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
WaterAvailable dbo.Constituencies NO NO Bit NO NO
-31-
Attributes
Attribute 'AverageDistanceToPCs' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
AverageDistanceToPCs dbo.Counties NO NO Float NO NO
Attribute 'CountyCode' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
CountyCode dbo.Counties NO NO Varchar(10) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'CountyID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique Default
CountyID dbo.Counties YES NO Uniqueidentifier YES NO (newsequentialid())
Attribute 'CountyName' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
CountyName dbo.Counties NO NO Nvarchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
-32-
Attributes
Attribute 'CreatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
CreatedOn dbo.Counties NO NO Datetime NO NO
Attribute 'IP' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
IP dbo.Counties NO NO Varchar(20) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'LastUpdatedByUserID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
LastUpdatedByUserID dbo.Counties NO NO Uniqueidentifier NO NO
Attribute 'Location' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Location dbo.Counties NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
-33-
Attributes
Attribute 'RegionID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RegionID dbo.Counties NO YES Uniqueidentifier NO NO
Parent Entity
Attribute 'TotalRegisteredVoters' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
TotalRegisteredVoters dbo.Counties NO NO Int NO NO
Attribute 'UpdatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
UpdatedOn dbo.Counties NO NO Datetime NO NO
Attribute 'CreatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
CreatedOn dbo.Elections NO NO Datetime NO NO
Attribute 'ElectionDate' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
ElectionDate dbo.Elections NO NO Datetime NO NO
-34-
dbo.Regions
Attributes
Attribute 'ElectionID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique Default
ElectionID dbo.Elections YES NO Uniqueidentifier YES NO (newsequentialid())
Attribute 'ElectionName' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
ElectionName dbo.Elections NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'ElectionType' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
ElectionType dbo.Elections NO NO Smallint NO NO
Attribute 'Generated' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Generated dbo.Elections NO NO Bit NO NO
-35-
Attributes
Attribute 'IP' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
IP dbo.Elections NO NO Varchar(20) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'LastUpdatedByUserID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
LastUpdatedByUserID dbo.Elections NO NO Uniqueidentifier NO NO
Attribute 'Location' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Location dbo.Elections NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'NominationEndDate' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
NominationEndDate dbo.Elections NO NO Datetime NO NO
-36-
Attributes
Attribute 'NominationStartDate' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
NominationStartDate dbo.Elections NO NO Datetime NO NO
Attribute 'UpdatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
UpdatedOn dbo.Elections NO NO Datetime NO NO
Attribute 'Acronymn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Acronymn dbo.PoliticalParties NO NO Varchar(10) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'ApprovedSymbol' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
ApprovedSymbol dbo.PoliticalParties NO NO Varbinary(max) NO NO
-37-
Attributes
Attribute 'CreatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
CreatedOn dbo.PoliticalParties NO NO Datetime NO NO
Attribute 'IP' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
IP dbo.PoliticalParties NO NO Varchar(20) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'LastUpdatedByUserID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
LastUpdatedByUserID dbo.PoliticalParties NO NO Uniqueidentifier NO NO
Attribute 'Location' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Location dbo.PoliticalParties NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
-38-
Attributes
Attribute 'PartyCode' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
PartyCode dbo.PoliticalParties NO NO Varchar(50) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'PartyName' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
PartyName dbo.PoliticalParties NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'PoliticalPartyID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique Default
PoliticalPartyID dbo.PoliticalParties YES NO Uniqueidentifier YES NO (newsequentialid())
Attribute Properties Default Constraint Name
DF__Political__Polit__40058253
-39-
Attributes
Attribute 'RegisteredOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RegisteredOn dbo.PoliticalParties NO NO Datetime NO NO
Attribute 'SymbolDesc' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
SymbolDesc dbo.PoliticalParties NO NO Varchar(250) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'UpdatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
UpdatedOn dbo.PoliticalParties NO NO Datetime NO NO
Attribute 'CreatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
CreatedOn dbo.PollingCentres NO NO Datetime NO NO
-40-
Attributes
Attribute 'IP' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
IP dbo.PollingCentres NO NO Varchar(20) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'LastUpdatedByUserID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
LastUpdatedByUserID dbo.PollingCentres NO NO Uniqueidentifier NO NO
Attribute 'Location' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Location dbo.PollingCentres NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'PollingCentreCode' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
PollingCentreCode dbo.PollingCentres NO NO Varchar(10) NO NO
-41-
Attributes
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'PollingCentreID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique Default
PollingCentreID dbo.PollingCentres YES NO Uniqueidentifier YES NO (newsequentialid())
Attribute Properties Default Constraint Name
DF__PollingCe__Polli__75A278F5
Attribute 'PollingCentreName' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
PollingCentreName dbo.PollingCentres NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'RegisteredVoters' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RegisteredVoters dbo.PollingCentres NO NO Int NO NO
-42-
Attributes
Attribute 'Streams' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Streams dbo.PollingCentres NO NO Int NO NO
Attribute 'TypeOfPollingStation' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
TypeOfPollingStation dbo.PollingCentres NO NO Int NO NO
Attribute 'UpdatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
UpdatedOn dbo.PollingCentres NO NO Datetime NO NO
Attribute 'WardID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
WardID dbo.PollingCentres NO YES Uniqueidentifier NO NO
Parent Entity
Attribute 'CreatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
CreatedOn dbo.Races NO NO Datetime NO NO
-43-
dbo.Wards
Attributes
Attribute 'ElectionID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
ElectionID dbo.Races NO YES Uniqueidentifier NO NO
Parent Entity
Attribute 'EntityID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
EntityID dbo.Races NO NO Uniqueidentifier NO NO
Attribute 'EntityType' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
EntityType dbo.Races NO NO Tinyint NO NO
Attribute 'IP' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
IP dbo.Races NO NO Varchar(20) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
-44-
dbo.Elections
Attributes
Attribute 'LastUpdatedByUserID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
LastUpdatedByUserID dbo.Races NO NO Uniqueidentifier NO NO
Attribute 'Location' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Location dbo.Races NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'RaceID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique Default
RaceID dbo.Races YES NO Uniqueidentifier YES NO (newsequentialid())
Attribute 'RaceName' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RaceName dbo.Races NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
-45-
Attributes
Attribute 'RaceType' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RaceType dbo.Races NO NO Int NO NO
Attribute 'UpdatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
UpdatedOn dbo.Races NO NO Datetime NO NO
Attribute 'RegionCode' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RegionCode dbo.Regions NO NO Varchar(10) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'RegionID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique Default
RegionID dbo.Regions YES NO Uniqueidentifier YES NO (newsequentialid())
-46-
Attributes
Attribute 'RegionName' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
RegionName dbo.Regions NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'ConstituencyID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
ConstituencyID dbo.Wards NO YES Uniqueidentifier NO NO
Parent Entity
Attribute 'CreatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
CreatedOn dbo.Wards NO NO Datetime NO NO
Attribute 'IP' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
IP dbo.Wards NO NO Varchar(20) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
-47-
dbo.Constituencies
Attributes
Attribute 'LastUpdatedByUserID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
LastUpdatedByUserID dbo.Wards NO NO Uniqueidentifier NO NO
Attribute 'Location' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
Location dbo.Wards NO NO Varchar(200) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
Attribute 'UpdatedOn' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
UpdatedOn dbo.Wards NO NO Datetime NO NO
Attribute 'WardCode' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
WardCode dbo.Wards NO NO Varchar(250) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
-48-
Attributes
Attribute 'WardID' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique Default
WardID dbo.Wards YES NO Uniqueidentifier YES NO (newsequentialid())
Attribute 'WardName' Caption Entity Name Primary Key Foreign Key Data Type Not Null Unique
WardName dbo.Wards NO NO Varchar(250) NO NO
Attribute Properties Collation For the Column
Latin1_General_CI_AS
-49-
Keys
Key Report Key Type PK PK PK PK PK PK PK PK PK
Key Name
Entity Name
PK_candidates PK_Constituency PK_District PK_Elections PK_PoliticalParties PK_PollingCentre_PollingCentreID PK_Races PK_Regions_RegionID Key12
dbo.Candidates dbo.Constituencies dbo.Counties dbo.Elections dbo.PoliticalParties dbo.PollingCentres dbo.Races dbo.Regions dbo.Wards
-50-
Keys
Key 'PK_candidates' Caption Key Type Entity Name
PK_candidates Primary Key dbo.Candidates
Attribute CandidateID
Order ASC
Foreign Key NO
Order ASC
Foreign Key NO
Order ASC
Foreign Key NO
Order ASC
Foreign Key NO
Key Properties Clustered Filegroup
YES PRIMARY
Key 'PK_Constituency' Caption Key Type Entity Name
PK_Constituency Primary Key dbo.Constituencies
Attribute ConstituencyID
Key Properties Clustered Filegroup
YES PRIMARY
Key 'PK_District' Caption Key Type Entity Name
PK_District Primary Key dbo.Counties
Attribute CountyID
Key Properties Clustered Filegroup
YES PRIMARY
Key 'PK_Elections' Caption Key Type Entity Name
PK_Elections Primary Key dbo.Elections
Attribute ElectionID
Key Properties Clustered Filegroup
YES PRIMARY
-51-
Keys
Key 'PK_PoliticalParties' Caption Key Type Entity Name
PK_PoliticalParties Primary Key dbo.PoliticalParties
Attribute PoliticalPartyID
Order ASC
Foreign Key NO
Key Properties Clustered Filegroup
YES PRIMARY
Key 'PK_PollingCentre_PollingCentreID' Caption Key Type Entity Name
PK_PollingCentre_PollingCentreID Primary Key dbo.PollingCentres
Attribute PollingCentreID
Order ASC
Foreign Key NO
Order ASC
Foreign Key NO
Order ASC
Foreign Key NO
Key Properties Clustered Filegroup
YES PRIMARY
Key 'PK_Races' Caption Key Type Entity Name
PK_Races Primary Key dbo.Races
Attribute RaceID
Key Properties Clustered Filegroup
YES PRIMARY
Key 'PK_Regions_RegionID' Caption Key Type Entity Name
PK_Regions_RegionID Primary Key dbo.Regions
Attribute RegionID
Key Properties Clustered Filegroup
YES PRIMARY
-52-
Keys
Key 'Key12' Caption Key Type Entity Name
Key12 Primary Key dbo.Wards
Attribute WardID
Order ASC
Key Properties Clustered Filegroup
YES PRIMARY
-53-
Foreign Key NO
Relationships
Relationship Report Relationship Name FK_Candidates_Politic alPartyID FK_Candidates_RaceI D FK_Constituencies_Co untyID FK_County_RegionID FK_PollingCentres_Wa rdID FK_Races_ElectionID FK_WARDS_Constitue ncyID
Relationship Type
Parent Entity
Child Entity
Card.
Non-identifying
dbo.PoliticalParties
dbo.Candidates
1:N
Non-identifying
dbo.Races
dbo.Candidates
1:N
Non-identifying
dbo.Counties
dbo.Constituencies
1:N
Non-identifying
dbo.Regions
dbo.Counties
1:N
Non-identifying
dbo.Wards
dbo.PollingCentres
1:N
Non-identifying
dbo.Elections
dbo.Races
1:N
Non-identifying
dbo.Constituencies
dbo.Wards
1:N
-54-
Relationships
Relationship Name 'FK_Candidates_PoliticalPartyID' Caption Relationship Type Mandatory Parent Mandatory Child Parent Entity Child Entity
FK_Candidates_PoliticalPartyID Non-identifying NO NO dbo.PoliticalParties dbo.Candidates
Cardinality
1:N
Referential Integrity Parent Child
Insert ---NONE
Update RESTRICT NONE
Delete RESTRICT ----
Keys Key Type Primary Key 'PK_PoliticalParties'
Parent Key PoliticalPartyID
Child Key PoliticalPartyID
Relationship Name 'FK_Candidates_RaceID' Caption Relationship Type Mandatory Parent Mandatory Child Parent Entity Child Entity
FK_Candidates_RaceID Non-identifying NO NO dbo.Races dbo.Candidates
Cardinality
1:N
Referential Integrity Parent Child
Insert ---NONE
Update RESTRICT NONE
Delete RESTRICT ----
Keys Key Type Primary Key 'PK_Races'
Parent Key RaceID
Child Key RaceID
Relationship Name 'FK_Constituencies_CountyID' Caption Relationship Type Mandatory Parent Mandatory Child Parent Entity Child Entity
FK_Constituencies_CountyID Non-identifying NO NO dbo.Counties dbo.Constituencies
-55-
Cardinality
1:N
Relationships
Referential Integrity Parent Child
Insert ---NONE
Update RESTRICT NONE
Delete RESTRICT ----
Keys Key Type Primary Key 'PK_District'
Parent Key CountyID
Child Key CountyID
Relationship Name 'FK_County_RegionID' Caption Relationship Type Mandatory Parent Mandatory Child Parent Entity Child Entity
FK_County_RegionID Non-identifying NO NO dbo.Regions dbo.Counties
Cardinality
1:N
Referential Integrity Parent Child
Insert ---NONE
Update RESTRICT NONE
Delete RESTRICT ----
Keys Key Type Primary Key 'PK_Regions_RegionID'
Parent Key RegionID
Child Key RegionID
Relationship Name 'FK_PollingCentres_WardID' Caption Relationship Type Mandatory Parent Mandatory Child Parent Entity Child Entity
FK_PollingCentres_WardID Non-identifying NO NO dbo.Wards dbo.PollingCentres
Cardinality
Referential Integrity Parent Child
Insert ---NONE
Update RESTRICT NONE
Delete RESTRICT ----
Keys Key Type Primary Key 'Key12'
Parent Key WardID
-56-
Child Key WardID
1:N
Relationships
Relationship Name 'FK_Races_ElectionID' Caption Relationship Type Mandatory Parent Mandatory Child Parent Entity Child Entity
FK_Races_ElectionID Non-identifying NO NO dbo.Elections dbo.Races
Cardinality
1:N
Referential Integrity Parent Child
Insert ---NONE
Update RESTRICT NONE
Delete RESTRICT ----
Keys Key Type Primary Key 'PK_Elections'
Parent Key ElectionID
Child Key ElectionID
Relationship Name 'FK_WARDS_ConstituencyID' Caption Relationship Type Mandatory Parent Mandatory Child Parent Entity Child Entity
FK_WARDS_ConstituencyID Non-identifying NO NO dbo.Constituencies dbo.Wards
Cardinality
Referential Integrity Parent Child
Insert ---NONE
Update RESTRICT NONE
Delete RESTRICT ----
Keys Key Type Primary Key 'PK_Constituency'
Parent Key ConstituencyID
-57-
Child Key ConstituencyID
1:N
ELECTRONIC VOTE TRANSMISSION SYSTEM TEST PLAN
DOCUMENT CONTROL NAME& TITLE Prepared by: Reviewed by : Recommended by: Approved by: Version: Release date:
SIGN
DATE
Revision History Version Number
Date Updated
Revision Author
Brief Description of Changes
Ver0.01
10/12/2012
Silas K Njeru
Initial draft
1.0 Table of Contents 1.0
Table of Contents ..................................................................................................... 4
2.0
INTRODUCTION....................................................................................................... 5 Overview ................................................................................................................. 5 Test Items ............................................................................................................... 5
3.0
4.0
TESTING TYPE STRATEGY ........................................................................................ 6 A.
Test Environment Setup ..................................................................................... 7
B.
Software Risk Issues .......................................................................................... 7
FEATURES TO BE TESTED ........................................................................................ 8 A.
Functionality testing, .......................................................................................... 8
B.
Usability testing ................................................................................................. 8
C.
Performance and load testing ............................................................................. 8
D.
Security testing ................................................................................................. 9
E.
Management Reports ......................................................................................... 9
5.0
FEATURES NOT TO BE TESTED ................................................................................. 9
6.0
APPROACH .............................................................................................................10
7.0
8.0
A.
Testing Levels ..................................................................................................10
B.
Configuration Management/Change Control ........................................................11
C.
Test Tools ........................................................................................................12
D.
Meetings ..........................................................................................................12
ACCEPTANCE CRITERIA (ITEM PASS/FAIL) ...............................................................13 A.
Entry Criteria ....................................................................................................13
B.
Acceptance Criteria ...........................................................................................13
C.
Exit Criteria ......................................................................................................13
ROLES AND RESPONSIBILITIES ...............................................................................14 A.
Roles and Responsibilities ..................................................................................14
B.
Staffing and training needs ................................................................................14
C.
Schedule ..........................................................................................................15
2.0 INTRODUCTION Overview This is the Master Test Plan for the Electronic Vote Transmission project. This plan will address only those items and elements that are related to the EVT process, both directly and indirectly affected elements will be addressed. The primary focus of this plan is to ensure that the new EVT application provides the same level of information and detail as the current system while allowing for improvements and increases in data acquisition and level of details available (granularity).
The project will have three levels of testing, Unit, System/Integration and Acceptance. The details for each level are addressed in the approach section and will be further defined in the level specific plans.
The estimated time line for this project is very aggressive (one (1) week), as such, any delays in the development process or in the installation and verification of the third party software could have significant effects on the test plan. The acceptance testing is expected to take one (1) day from the date of application delivery from system test and is to be done in parallel with the current application process.
Test Items The following is a list, by version and release, of the items to be tested: A. Nomination System B. RTS – Results Transmission sub - software C. RPS – Results Presentation Sub - System D. Telecommunication Sub - system.
3.0 TESTING TYPE STRATEGY The main aim of this testing is to ensure that the requirements for the EVT and all its subcomponents are fully tested and documented. The purpose of this test strategy is to clarify the major tasks and challenges of the test project.
Testing Type
Test Level
Description of Use
1. Functional (End to End)
Unit, System and Acceptance testing
2. Non-Functional (Scalability, Performance, Stress, Load, Volume, Endurance
System
3. Installation and Configuration
Integration
Aimed at verifying the application functionality against the design specifications. Functions will be tested by feeding them input and examining the output. The key areas to be tested here include:i. Authentication and authorization ii. Download of nomination data system. iii. Candidates data validation and verifications iv. Capturing and transmission of results v. Management Reports Results presentation on Google vi. Usability features to be tested include:i. Visibility, Legibility and clarity ii. Layout and colors iii. Error messages iv. Navigations Other tests will include performance, load and stress testing. Tests in this category will focus on Installation, configuration and deployment of the solution to the target devices.
4. Data Conversion and Data Load
System
Data conversion between the Nomination, RTS and the presentation subsystems will be tested.
A. Test Environment Setup A standard testing environment will be configured to host the results management solution that will include the Nominations and the Results Transmission System. The basic test environment will consist of the following;HARDWARE Testing Servers
No Required 1
Desktop Computer
3
Printers
1
Mobile Handset Phones Network Infrastructure
2 N/A
DESCRIPTION One Database server and Application server to host the nominations database A computer each for the constituency, county and National tallying centers One Desktop printer for testing the printing of the management reports Nokia handset phones Communication infrastructure for simulated results transmission
Specifications
As per IEBC Standards As per IEBC Standards
As per IEBC Standards
Nokia 1680 GSM Network
B. Software Risk Issues There are several parts of the project that are not within the control of the EVT solution but have direct impacts on the process and must be checked as well. A. Backup and Recovery of the RTS transmissions, local databases and restart of the transmission process, must be carefully checked. B. The ability to restart the application in the middle of the process is a critical factor to application reliability. This is especially true in the case of the transmissions as once the data is pushed to the results tallying centers, it will be flagged to eliminate chances of double transmission and tallying. C. Database security and access must be defined and verified, especially for data shared between the Nomination System, RTS and RPS applications.
4.0 FEATURES TO BE TESTED The following is a list of the areas to be focused on during testing of the application.
A. Functionality testing, This testing is aimed at ensuring that the application (both server and mobile app) work as required. This should include -
Configuration of the system Validation and verification of data Backup,restore and replication Login testing Menu options (if they work as required and are named correctly) The use of the Nokia 1680 classic keys for navigation Data handling – storage on the device Confirmations on permanent actions. How the application works in areas of limited connectivity How the application handles interruptions How errors are handled and how the application recovers from them. How useful the prompts used are How long processes are handled The use of battery power
Some of these tasks will be a purely manual and will require use of a technical person.
B. Usability testing Since the application will be used by non-technical end-users, the application has to be tested by someone from that group. - Layout and design that does not lose users - Interaction with the user where the user finds it easy to complete desired tasks.
C. Performance and load testing The performance of the device will be subjected to tests and compared to user expectations. This will be tested in the following areas -
Installation Login Loading candidate lists Navigation between candidates Sending of results data
The server application will also be subjected to huge loads that should be similar to what is expected in the results transmission exercise (20k concurrent sessions each sending a sizable number of results) .
D. Security testing This will require the use of an external resource that will try and break into the system. Since this does not exist in-house, the resources need to be sourced from outside. The areas to be tested should include -
Integrity of the data and process Authentication Authorization Availability after attacks Non-repudiation and tamper evidence
All the above tests will be done using both Guided (scripted) tests and exploratory testing and on the real target device.
E. Management Reports The system should provide adequate management reports for the country, regional and national CEC for monitoring and reconciliation with the physical records in accordance to form 35, 36 or any other format.
F. Procedural testing This will involve the workflow testing for the system. The system will be tested by users against the operational requirements to follow the procedure of the transmission and and nominations process
5.0 FEATURES NOT TO BE TESTED The following is a list of the areas that will not be specifically addressed. All testing in these areas will be indirect as a result of other testing efforts. A. GSM Network Security and WAN access. The Mobile communication network will provide their independent security control while the application relies on its inbuilt encryption and certificate based security controls.
B. Operational aspects of the EVT process. It is expected that appropriate operational controls and procedures will be documented and adhered to during the results transmission exercise. However, this will not be tested at this stage but will be checked before deployment of the solution. C. PC based spreadsheet analysis applications using RTS data. These applications are completely under the control of the user and are outside the scope of this project. The necessary data base format information will be provided to the users to allow them to extract data.
6.0 APPROACH A. Testing Levels The testing for the EVT project will consist of Unit, System/Integration (combined) and Acceptance test levels. It is hoped that there will be at least one full time independent test person for system/integration testing. However, with the budget constraints and time line established; most testing will be done by the ICT test team with the development team’s participation and end users.
UNIT Testing will be done by the developer and will be approved by the development team leader. Proof of unit testing (test case list, sample output, data printouts, defect information) must be provided by the programmer to the team leader before unit testing will be accepted and passed on to the test person. All unit test information will also be provided to the test person.
SYSTEM/INTEGRATION Testing will be performed by the test team and development team leader with assistance from the individual developers as required. No specific test tools are available for this project. Programs will enter into System/Integration test after all critical defects have been corrected. A program may have up to two Major defects as long as they do not impede testing of the program (I.E. there is a work around for the error).
This will involve the integration other system to ensure compatibility with prerequisite systems.
ACCEPTANCE Testing will be performed by the actual end users with the assistance of the ICT Test Team and development team leader.
Software programs will enter into Acceptance test after all critical and major defects have been corrected. A program may have one major defect as long as it does not impede testing of the program (I.E. there is a work around for the error). Prior to final completion of acceptance testing all open critical and major defects MUST be corrected and verified by the user test representative.
B. Configuration Management/Change Control Movement of programs from the development portion of the system to the test portion of the system will be controlled through the Configuration Management application process. This will ensure that programs under development and those in full test will have the same version controls and tracking of changes. The same extract process will be used to migrate the programs from the Development/Test system to the production system once all testing has been completed according to published plans and guidelines.
All Unit and initial system testing will be performed on the Development test server. Once the system has reached a reasonable level of stability, no critical or major defects outstanding, initial pilot testing will be done on the production servers. All testing done on the system will be done in a parallel mode will all controls set to prevent actual updating of the production files.
All changes, enhancements and other modification requests to the system will be handled through the change control procedures. Any modifications to the standard procedures are identified in the project plan change control section.
C. Test Tools The only test tools to be used are the standard utilities and commands provided by the developer.
D. Meetings The test team will meet once every day from 8.00am to 9.00am to plan and evaluate progress to date and to identify error trends and problems as early as possible. The test team leader will meet with development and the project manager once every three days as well. These two meetings will be scheduled on different weeks. Additional meetings can be called as required for emergency situations.
7.0 ACCEPTANCE CRITERIA (ITEM PASS/FAIL) A. Entry Criteria Prior to the commencement of the testing exercise, the following conditions must be met. i. A complete test environment separate from the development environment must be set up. ii. Correct and accurate database configuration with appropriate parameters should be provided. iii. An updated requirements document clearly defining the Mandatory and Optional requirements.
B. Acceptance Criteria i. The software must meet all the mandatory requirements. ii. The integration and interfaces between the Nomination system, results transmission and the presentation must be complete. iii. All errors, bugs and defect should be properly fixed and documented. iv. The software solution must be able to work with the currently available hardware (mobile handsets, Servers, desktops and infrastructure).
C. Exit Criteria The Exit Criteria must also satisfy the following objectives before the project is implemented into production: i. ii.
iii.
All High Priority errors from this Test Phase must be fixed and tested If any medium or low-priority errors are outstanding - the implementation risk must be signed off as acceptable by Business Analyst and Business Expert User Acceptance Test must be signed off by Business Expert.
8.0 ROLES AND RESPONSIBILITIES 1. Roles and Responsibilities This defines the various roles and responsibilities in the project team. S N
ROLE
1.
Test Lead
2.
Business Lead
RESPONSIBILITIES • • • • •
3.
Test Team
4.
Developer
• • • • • • •
OFFICER NAME
Plan and coordinate test activities. Provide necessary resources Provide all user requirements, Participate in the User acceptance testing. Approve test reports and recommendations. Develop test cases Execute the test cases Document the defects Develop test report Develop test cases Fix Bugs and defects Develop deployment instructions
2. Staffing and training needs It is preferred that there will be at least two (2) full time tester assigned to the project for the system/integration and acceptance testing phases of the project. If a separate test person is not available the project manager/Test Lead will assume this role. In order to provide complete and proper testing the following areas need to be addressed in terms of training. 1. The developers and tester(s) will need to be trained on the basic operations of the Nomination, RTS and the presentation interface. Prior to final acceptance of the project the operations staff will also require complete training on the results management process. 2. The User department representatives will require training on the interface screens and reports. At least one developer, one system Admin and one ICT support staff will be trained on the installation and configuration of the software package.
3. Schedule Below is a high level schedule of the test process
SN
TASK
1.
Development of Test Plan and Strategy
2.
Set up, Installation and configuration of the test environment.
3.
Development of the Test Cases
4.
Unit and System testing
5.
Bugs and Defect fixing
6.
System, Integration and regression testing
7.
User Acceptance Testing
8.
Report Writing
DATE(S)
NOTE TO OFFERERS – PLEASE SUGGEST TEST SCHEDULE THAT MATCHES RTS DELIVERY SCHEDULE AND IEBC ELECTORAL CALENDAR AS PER RFP