-
YU​ ​E-VOTING
 
 
 
Prepared​ ​By
Amr​ ​Ghaleb​ ​Al-Smadi
STUDENT​ ​ID:​ ​2012802071
Rajab​ ​Izzadeen
STUDENT​ ​ID:​ ​2012802047
‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬
A​ ​project​ ​submitted​ ​in​ ​partial​ ​fulfillment​ ​of​ ​the​ ​requirements​ ​for​ ​the
degree​ ​of​ ​Bachelor​ ​of​ ​Science​ ​in​ ​Computer​ ​information​ ​system
JANUARY​ ​2015
​ ​Page​ ​1​ ​of​ ​28
Index
Introduction
Purpose
Scope
The​ ​Overall​ ​Description
Functional​ ​Requirements
Non-Functional​ ​Requirements
Security​ ​Requirements
Use-case​ ​diagram
Use​ ​Case​ ​Specification
Context​ ​Diagram
Data-flow​ ​Context​ ​Diagram
Data​ ​Flow​ ​Diagram​ ​Level
ER​ ​Diagram
Relational​ ​Schema
Physical​ ​Structure
Project​ ​Report
Languages​ ​&​ ​Tools​ ​used
​ ​Page​ ​2​ ​of​ ​28
1.​ ​​ ​Introduction
1.1​ ​​ ​Purpose
The purpose of this document is to describe the behavior of an e-voting System. this system
provides an online tool for the students to vote for one of their candidates without the need of
their​ ​presence​ ​in​ ​the​ ​campus,​ ​instead​ ​of​ ​using​ ​the​ ​traditional​ ​election.
1.2​ ​​ ​Scope
● The​ ​software​ ​is​ ​an​ ​online​ ​voting​ ​system​ ​named​ ​​ ​"YU​ ​E-Voting".
● The system provides an online tool for the students to view and vote only for one
of​ ​​ ​the​ ​candidates.
● The​ ​system​ ​will​ ​provide​ ​a​ ​faster​ ​more​ ​trustable​ ​elections.
● This automated process will prevent fraud and the disorder which could happen in
the​ ​ballot​ ​facilities.
2.​ ​​ ​The​ ​Overall​ ​Description
This system provides an online tool for the students to vote for one of the candidates who
will be representing their department ; the candidates will nominate themselves by filling
an application that will be reviewed by the system . the voting process will be accessible
to students in a specific period of time that will be assigned by the admin . the voting
process will be reviewed by the admin then the election result will appear in the end of
the​ ​assigned​ ​period​ ​.
​ ​Page​ ​3​ ​of​ ​28
A)​ ​Functional​ ​Requirements:
The​ ​main​ ​features​ ​in​ ​the​ ​system​ ​are:
1. Pre-voting​ ​phase:
1.1. Manage​ ​election
1.1.1. Admin​ ​shall​ ​be​ ​able​ ​to​ ​set​ ​the​ ​nomination​ ​time.
1.1.2. Admin​ ​shall​ ​be​ ​able​ ​to​ ​set​ ​the​ ​election​ ​time.
1.1.3. Admin​ ​shall​ ​be​ ​able​ ​to​ ​extend​ ​the​ ​election​ ​time.
1.2. Manage​ ​candidates
1.2.1. System​ ​should​ ​allow​ ​Student​ ​to​ ​nominate​ ​himself​ ​by​ ​propose​ ​his
application​ ​​ ​provided​ ​that:
1.2.1.1. Student​ ​GPA​ ​should​ ​be​ ​greater​ ​than​ ​or​ ​equal​ ​to​ ​60%
1.2.1.2. Student​ ​should​ ​have​ ​36​ ​credits​ ​hours​ ​left​ ​at​ ​least.
1.2.1.3. Student​ ​must​ ​have​ ​a​ ​clear​ ​record​ ​of​ ​penalties.
1.2.1.4. Student​ ​should​ ​be​ ​taking​ ​at​ ​​ ​least​ ​12​ ​credit​ ​hours​ ​as​ ​the​ ​minimum
academic​ ​load.
1.2.1.5. Student​ ​should​ ​be​ ​a​ ​Bachelor​ ​student​ ​.
1.2.1.6. Student​ ​should​ ​be​ ​a​ ​Jordanian​ ​student.
1.2.1.7. Student​ ​user-name​ ​must​ ​be​ ​10​ ​digits
1.2.2. Candidate​ ​shall​ ​be​ ​able​ ​to​ ​withdraw​ ​himself​ ​from​ ​the​ ​election​ ​before​ ​the
election​ ​day.
1.2.3. Candidate​ ​can​ ​edit​ ​his​ ​profile.
1.2.4. Admin​ ​shall​ ​be​ ​able​ ​to​ ​delete​ ​existing​ ​candidate​.
1.2.5. Admin​ ​shall​ ​be​ ​able​ ​to​ ​view​ ​candidate​ ​profile.
1.2.6. System​ ​shall​ ​be​ ​able​ ​to​ ​send​ ​a​ ​feedback(approve​ ​/​ ​disapprove)​ ​for​ ​the
submitted​ ​application​ ​of​ ​the​ ​candidate​ ​.
1.3. Manage​ ​Students
1.3.1. Student​ ​shall​ ​be​ ​able​ ​to​ ​log-in​ ​to​ ​the​ ​system​ ​provided​ ​that​ ​:
1.3.1.1. Student​ ​should​ ​be​ ​a​ ​Bachelor​ ​student​ ​.
1.3.1.2. Student​ ​should​ ​be​ ​a​ ​Jordanian​ ​student.
1.3.1.3. Student​ ​user-name​ ​must​ ​be​ ​10​ ​digits.Student​ ​shall​ ​be​ ​able​ ​to​ ​view
candidate​ ​profile.
2. Voting​ ​phase
2.1. Submit​ ​vote
2.1.1. Student​ ​shall​ ​be​ ​able​ ​to​ ​ submit​ ​his​ ​vote(s)​ ​only​ ​for​ ​as​ ​many​ ​candidates
as​ ​student​ ​department​ ​allows​ ​provided​ ​​ ​that:
2.1.1.1. Every​ ​500​ ​students​ ​in​ ​a​ ​single​ ​department​ ​shall​ ​have​ ​one
representative,​ ​or​ ​according​ ​to​ ​the​ ​rule​ ​of​ ​​ ​rounding​ ​to​ ​250
students.
2.1.2. System​ ​must​ ​be​ ​able​ ​to​ ​verify​ ​user​ ​ID
​ ​Page​ ​4​ ​of​ ​28
2.1.3. Admin​ ​shall​ ​be​ ​able​ ​to​ ​view​ ​the​ ​number​ ​of​ ​votes​ ​(counter)​ ​for​ ​each
candidate.
3. Post-voting​ ​phase
3.1. View​ ​results
3.2. System​ ​may​ ​able​ ​to​ ​announce​ ​a​ ​representative​ ​if​ ​there​ ​is​ ​only​ ​one​ ​candidate
nominated​ ​.
3.3. The​ ​system​ ​shall​ ​be​ ​able​ ​to​ ​announce​ ​one​ ​or​ ​more​ ​representative​ ​provided​ ​that:
3.4. the​ ​announce​ ​representatives​ ​should​ ​at​ ​least​ ​3​ ​representatives​ ​per​ ​faculty.
3.5. System​ ​shall​ ​be​ ​able​ ​to​ ​view​ ​the​ ​election’s​ ​​ ​final​ ​results.
B)​ ​Non-Functional​ ​Requirements:
- Network​ ​Resources​ ​needs​ ​to​ ​be​ ​reliable​ ​,this​ ​online​ ​e-voting​ ​system​ ​uses​ ​Internet
connectivity​ ​to​ ​be​ ​able​ ​to​ ​communicate​ ​with​ ​the​ ​web​ ​services​ ​and​ ​relies​ ​heavily​ ​on
network​ ​connectivity.​ ​Network​ ​can​ ​be​ ​monitored​ ​and​ ​errors​ ​can​ ​be​ ​reported​ ​when​ ​there
is​ ​a​ ​network​ ​connectivity​ ​issue.
- It​ ​must​ ​be​ ​reliable​ ​to​ ​process​ ​the​ ​database​ ​request,​ ​especially​ ​when​ ​the​ ​application​ ​is
processing​ ​the​ ​data,​ ​database​ ​​ ​​ ​​ ​connections​ ​must​ ​be​ ​reliable.
- It​ ​must​ ​be​ ​fast​ ​to​ ​process​ ​the​ ​request,​ ​especially​ ​when​ ​the​ ​application​ ​is​ ​processing​ ​the
data,​ ​there​ ​might​ ​be​ ​some​ ​instances​ ​where​ ​a​ ​lot​ ​of​ ​data​ ​needs​ ​to​ ​be​ ​transferred.​ ​The
design​ ​needs​ ​to​ ​be​ ​done​ ​by​ ​making​ ​sure​ ​that​ ​application​ ​will​ ​operate​ ​fast.
- Update​ ​schema​ ​and​ ​the​ ​code​ ​for​ ​the​ ​new​ ​changes​ ​must​ ​be​ ​easy,​ ​as​ ​this​ ​tool​ ​is​ ​an​ ​online
e-voting​ ​system​ ​and​ ​there​ ​might​ ​be​ ​new​ ​changes​ ​required,​ ​any​ ​changes​ ​need​ ​to​ ​be
implemented​ ​easily.​ ​Schema​ ​need​ ​to​ ​be​ ​updated;​ ​code​ ​changes​ ​will​ ​be​ ​required​ ​for​ ​the
new​ ​fields.
- Online​ ​e-voting​ ​application​ ​should​ ​run​ ​from​ ​any​ ​computer​ ​and​ ​smart-phone​ ​that​ ​has
Internet​ ​connection,​ ​Internet​ ​connection​ ​is​ ​required​ ​to​ ​be​ ​able​ ​to​ ​run​ ​the​ ​online​ ​tool.
​ ​Page​ ​5​ ​of​ ​28
Security​ ​Requirements:
- The​ ​security​ ​requirements​ ​for​ ​this​ ​system​ ​span​ ​all​ ​aspects​ ​of​ ​the​ ​voting​ ​process​ ​and
include​ ​voter​ ​authenticity,​ ​voter​ ​anonymity,​ ​data​ ​confidentiality,​ ​data​ ​integrity,​ ​system
accountability,​ ​system​ ​integrity,​ ​system​ ​availability,​ ​system​ ​assurance,​ ​and​ ​system
reliability
- An​ ​individual​ ​not​ ​registered​ ​to​ ​vote​ ​must​ ​not​ ​be​ ​able​ ​to​ ​cast​ ​a​ ​ballot
- A​ ​voter​ ​must​ ​not​ ​be​ ​able​ ​to​ ​vote​ ​more​ ​than​ ​once
- The​ ​privacy​ ​of​ ​the​ ​vote​ ​has​ ​to​ ​be​ ​guaranteed​ ​during​ ​the​ ​casting,​ ​transfer,​ ​reception,
collection,​ ​and​ ​tabulation​ ​of​ ​votes
- No​ ​voter​ ​should​ ​be​ ​able​ ​to​ ​view​ ​that​ ​they​ ​voted​ ​to​ ​a​ ​specific​ ​candidate​ ​in​ ​a​ ​certain​ ​way
after​ ​he​ ​is​ ​done​ ​voting​ ​.
- None​ ​of​ ​the​ ​participants​ ​involved​ ​in​ ​the​ ​voting​ ​process​ ​(Admin​ ​,​ ​candidate​ ​,​ ​voters,​ ​etc)
should​ ​be​ ​able​ ​to​ ​link​ ​a​ ​vote​ ​to​ ​an​ ​identifiable​ ​voter
- Each​ ​vote​ ​is​ ​recorded​ ​precisely​ ​as​ ​the​ ​voter​ ​intended
- Each​ ​voter​ ​is​ ​ensured​ ​a​ ​"clean​ ​slate"​ ​of​ ​the​ ​system​ ​to​ ​ensure​ ​equality,​ ​confidence,​ ​and
minimize​ ​system​ ​tampering
- The​ ​outcome​ ​of​ ​the​ ​voting​ ​process​ ​must​ ​match​ ​the​ ​votes​ ​cast
- System​ ​and​ ​voter​ ​operations​ ​are​ ​logged​ ​and​ ​audited
- The​ ​system​ ​cannot​ ​be​ ​re-configured​ ​during​ ​operation
- Additional​ ​ballots​ ​cannot​ ​be​ ​cast​ ​once​ ​the​ ​polling​ ​place​ ​has​ ​closed
- The​ ​system​ ​is​ ​protected​ ​against​ ​accidental​ ​and​ ​malicious​ ​denial​ ​of​ ​service​ ​attacks
​ ​Page​ ​6​ ​of​ ​28
Use-case​ ​diagram:
​ ​Page​ ​7​ ​of​ ​28
Use​ ​Case​ ​Specification:
Use​ ​Case​ ​ID:  1.1.1 
Use​ ​Case​ ​Name:  Set​ ​the​ ​nomination​ ​time
Actors:  Admin 
Description:  This​ ​use-case​ ​shows​ ​how​ ​the​ ​admin​ ​can​ ​edit​ ​the​ ​nomination​ ​time. 
11Pre-conditions:  suitable​ ​timing​ ​for​ ​the​ ​nomination​ ​according​ ​to​ ​the​ ​university’s 
schedule 
Post-conditions:  the​ ​admin​ ​will​ ​be​ ​able​ ​to​ ​edit​ ​the​ ​nomination​ ​time  
Normal​ ​Flow:  1. Admin enters his user-name and the password to log-in
to​ ​the​ ​system.
2. Admin​ ​inputs​ ​the​ ​nomination​ ​date. 
3. Admin​ ​inputs​ ​the​ ​start​ ​and​ ​the​ ​end​ ​of​ ​the​ ​nomination​ ​period. 
Alternative​ ​Flows:  None 
 
 
 
 
 
 
 
 
 
 
 
​ ​Page​ ​8​ ​of​ ​28
Use​ ​Case​ ​ID:  1.1.2 
Use​ ​Case 
Name: 
Set​ ​the​ ​election​ ​time
Actors:  Admin 
Description:  this​ ​use​ ​shows​ ​how​ ​the​ ​admin​ ​can​ ​edit​ ​the​ ​election​ ​time. 
Pre-conditions:  suitable​ ​timing​ ​for​ ​the​ ​election​ ​according​ ​to​ ​the​ ​university’s​ ​schedule 
Post-conditions:  the​ ​admin​ ​will​ ​be​ ​able​ ​to​ ​edit​ ​the​ ​election​ ​time  
Normal​ ​Flow:  4. Admin enters his user-name and the password to log-in to
the​ ​system.
5. Admin​ ​inputs​ ​the​ ​election​ ​date. 
6. Admin​ ​inputs​ ​the​ ​start​ ​and​ ​the​ ​end​ ​of​ ​the​ ​election​ ​period. 
Alternative​ ​Flows:  None.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
​ ​Page​ ​9​ ​of​ ​28
Use​ ​Case​ ​ID:  1.2.1 
Use​ ​Case​ ​Name:  student​ ​nomination 
Actors:  student 
Description:  this​ ​use​ ​case​ ​shows​ ​how​ ​student​ ​can​ ​nominate​ ​himself 
Pre-conditions:  ● student’s​ ​GPA​ ​should​ ​be​ ​greater​ ​than​ ​or​ ​equal​ ​to​ ​60%. 
● student​ ​should​ ​have​ ​36​ ​credits​ ​left​ ​at​ ​least. 
● Student​ ​​ ​must​ ​have​ ​a​ ​clear​ ​record​ ​of​ ​penalties 
● Student​ ​should​ ​be​ ​taking​ ​​ ​least​ ​12​ ​credit​ ​hours​ ​as​ ​the 
minimum​ ​academic​ ​load. 
● Student​ ​should​ ​be​ ​a​ ​Bachelor​ ​student. 
● Student​ ​should​ ​be​ ​a​ ​Jordanian​ ​student. 
● Student​ ​user-name​ ​must​ ​be​ ​10​ ​digits. 
Post-conditions:  The​ ​System​ ​will​ ​send​ ​a​ ​feedback​ ​for​ ​the​ ​submitted​ ​application​ ​to 
the​ ​candidate. 
Normal​ ​Flow:  1. Student​ ​enter​ ​his​ ​user-name​ ​and​ ​password. 
2. Student​ ​access​ ​the​ ​application​ ​form. 
3. Student​ ​fill​ ​the​ ​application. 
4. Student​ ​click​ ​“submit”​ ​button. 
5. system​ ​checks​ ​the​ ​candidate​ ​information. 
6. system​ ​sends​ ​back​ ​a​ ​feedback​ ​to​ ​the​ ​Candidate​ ​(Approve). 
Alternative​ ​Flows:  if​ ​the​ ​student’s​ ​GPA​ ​is​ ​less​ ​than​ ​60%​ ​or​ ​his​ ​left​ ​credit​ ​hours​ ​is​ ​less 
than​ ​36​ ​or​ ​his​ ​record​ ​contains​ ​any​ ​penalties​ ​or​ ​he​ ​is​ ​taking​ ​less​ ​than 
12​ ​credit​ ​hours​ ​,​ ​the​ ​system​ ​shall​ ​disapprove​ ​his​ ​nomination​ ​request 
. 
 
 
 
 
 
 
 
​ ​Page​ ​10​ ​of​ ​28
Use​ ​Case​ ​ID:  1.2.2 
Use​ ​Case​ ​Name:  Candidate​ ​Withdraw 
Actors:  Candidate. 
Description:  This​ ​use-case​ ​shows​ ​how​ ​candidate​ ​can​ ​withdraw​ ​himself​ ​from​ ​the 
election. 
Pre-conditions:  Candidate​ ​should​ ​be​ ​authorized​ ​by​ ​the​ ​system​ ​as​ ​a​ ​candidate. 
The​ ​withdrawal​ ​action​ ​should​ ​be​ ​before​ ​the​ ​election​ ​day.  
Post-conditions:  Candidate​ ​withdraw​ ​himself. 
Normal​ ​Flow:  ● Enter​ ​user-name​ ​and​ ​password​ ​. 
● Access​ ​his​ ​profile. 
● Press​ ​the​ ​“withdraw”​ ​button. 
Alternative​ ​Flows:  if​ ​the​ ​candidate​ ​withdraw​ ​himself​ ​during​ ​the​ ​election​ ​day,​ ​the 
system​ ​​ ​will​ ​reject​ ​and​ ​send​ ​him​ ​a​ ​message​ ​“the​ ​withdrawal​ ​is​ ​out​ ​of 
time​ ​”​ ​. 
 
Use​ ​Case​ ​ID:  1.2.3 
Use​ ​Case​ ​Name:  ​ ​Edit​ ​profile 
Actors:  Candidate 
Description:  this​ ​use-case​ ​shows​ ​how​ ​the​ ​candidate​ ​can​ ​edit​ ​his​ ​profile. 
Pre-conditions:  Candidate​ ​must​ ​be​ ​logged​ ​in​ ​to​ ​the​ ​system. 
Post-conditions:  candidate​ ​can​ ​edit​ ​his​ ​profile. 
Normal​ ​Flow:  ● enter​ ​user-name​ ​and​ ​password​ ​. 
● access​ ​his​ ​profile. 
● Edit​ ​profile(upload​ ​photo,​ ​edit​ ​or​ ​add​ ​bio,​ ​edit​ ​election 
propaganda​ ​) 
● click​ ​“submit”​ ​button  
Alternative​ ​Flows:  None. 
 
​ ​Page​ ​11​ ​of​ ​28
Use​ ​Case​ ​ID:  1.2.5 
Use​ ​Case​ ​Name:  View​ ​Candidate​ ​Profile 
Actors:  Admin,​ ​Student,​ ​Candidate 
Description:  this​ ​use-case​ ​shows​ ​how​ ​user​ ​can​ ​view​ ​candidate’s​ ​profile 
Pre-conditions:  user​ ​must​ ​be​ ​authorized​ ​to​ ​access​ ​the​ ​system. 
Post-conditions:  user​ ​can​ ​view​ ​candidate's​ ​profile. 
Normal​ ​Flow:  enter​ ​user-name​ ​and​ ​password​ ​. 
select​ ​candidate. 
view​ ​candidate​ ​profile. 
Alternative​ ​Flows:  None. 
 
Use​ ​Case​ ​ID:  1.3.1 
Use​ ​Case​ ​Name:  Student​ ​login 
Actors:  Student  
Description:  this​ ​use-case​ ​shows​ ​how​ ​the​ ​Student​ ​can​ ​login​ ​to​ ​the​ ​system 
Pre-conditions:  ● Student​ ​should​ ​be​ ​a​ ​Bachelor​ ​student​ ​. 
● Student​ ​should​ ​be​ ​a​ ​Jordanian​ ​student. 
● The​ ​Student’s​ ​user-name​ ​must​ ​be​ ​10​ ​digits 
Post-conditions:  Student​ ​will​ ​log-in​ ​to​ ​the​ ​system 
Normal​ ​Flow:  enter​ ​the​ ​user-name​ ​and​ ​the​ ​password  
Alternative​ ​Flows:   
 
 
 
 
 
​ ​Page​ ​12​ ​of​ ​28
Use​ ​Case​ ​ID:  2.1.1 
Use​ ​Case​ ​Name:  Submit​ ​vote 
Actors:  Student  
Description:  this​ ​use-case​ ​shows​ ​how​ ​the​ ​Student​ ​will​ ​submit​ ​his​ ​vote 
Pre-conditions:  ● Student​ ​should​ ​be​ ​a​ ​Bachelor​ ​student​ ​. 
● Student​ ​should​ ​be​ ​a​ ​Jordanian​ ​student.. 
Post-conditions:  Student​ ​will​ ​submit​ ​his​ ​vote. 
Normal​ ​Flow:  1. enter​ ​user-name​ ​and​ ​password  
2. select​ ​candidate(s). 
3. click​ ​“submit​ ​vote”​ ​button​ ​. 
4. System​ ​deactivates​ ​“submit​ ​vote”​ ​button​ ​. 
Alternative​ ​Flows:  if​ ​Student​ ​wants​ ​to​ ​vote​ ​for​ ​more​ ​than​ ​what​ ​department​ ​allows,​ ​the 
system​ ​will​ ​reject​ ​the​ ​process​ ​and​ ​show​ ​the​ ​user​ ​a​ ​message​ ​. 
 
Use​ ​Case​ ​ID:  2.1.3 
Use​ ​Case​ ​Name:  View​ ​votes​ ​counter 
Actors:  Admin 
Description:  this​ ​use-case​ ​shows​ ​how​ ​admin​ ​will​ ​view​ ​the​ ​votes​ ​counter​ ​for​ ​each 
candidate. 
Pre-conditions:  Starting​ ​elections. 
Post-conditions:  Admin​ ​view​ ​the​ ​number​ ​of​ ​votes​ ​(counter)​ ​for​ ​each​ ​candidate. 
Normal​ ​Flow:  enter​ ​user-name​ ​and​ ​password  
view​ ​counters​ ​per​ ​candidate. 
Alternative​ ​Flows:  None 
 
 
 
​ ​Page​ ​13​ ​of​ ​28
Use​ ​Case​ ​ID:   
Use​ ​Case​ ​Name:  View​ ​results   
Actors:  Admin,​ ​Candidate,​ ​Student 
Description:  this​ ​use​ ​case​ ​shows​ ​how​ ​the​ ​admin,candidates​ ​and​ ​Students​ ​will 
view​ ​the​ ​voting​ ​results​ ​. 
Preconditions:  ● The​ ​election​ ​period​ ​must​ ​be​ ​over. 
● Every​ ​500​ ​students​ ​in​ ​a​ ​single​ ​department​ ​shall​ ​have​ ​one 
representer​ ​,or​ ​according​ ​to​ ​the​ ​rule​ ​of​ ​​ ​rounding​ ​to​ ​250 
students. 
● The​ ​announce​ ​representatives​ ​should​ ​at​ ​least​ ​3 
representatives​ ​per​ ​faculty. 
● System​ ​may​ ​able​ ​to​ ​announce​ ​a​ ​representative​ ​if​ ​there​ ​is​ ​only 
one​ ​candidate​ ​nominated​ ​. 
 
Post​ ​​ ​conditions:  the​ ​results​ ​is​ ​released​ ​and​ ​viewed. 
Normal​ ​Flow:  log-in  
view​ ​elections​ ​results  
Alternative​ ​Flows:  None. 
​ ​Page​ ​14​ ​of​ ​28
​ ​​ ​Context​ ​Diagram:
​ ​Page​ ​15​ ​of​ ​28
Data-flow​ ​Context​ ​Diagram
​ ​Page​ ​16​ ​of​ ​28
Data​ ​Flow​ ​Diagram​ ​Level
​ ​Page​ ​17​ ​of​ ​28
ER​ ​Diagram
​ ​Page​ ​18​ ​of​ ​28
Relational​ ​Schema
​ ​Page​ ​19​ ​of​ ​28
Physical​ ​Structure
Students
Attributes Data​ ​Type Constraints
Name Varchar2(50) NOT​ ​NULL
STD_ID Number(10) PRIMARY​ ​KEY
Password Varchar2(30) NOT​ ​NULL
Faculty Varchar2(50) NOT​ ​NULL
Department Varchar2(50) NOT​ ​NULL
GPA Number NOT​ ​NULL
Credit​ ​hours Number NOT​ ​NULL
Nationality Varchar2(30) NOT​ ​NULL
Record​ ​of​ ​penalties Boolean NOT​ ​NULL
Is​ ​Candidate Boolean NOT​ ​NULL
Image BLOB NONE
Bio Varchar2(5000) NONE
Durations
Attributes Data​ ​Type Constraints
Year Year PRIMARY​ ​KEY
ElectionTime_Start Date​ ​time NOT​ ​NULL
ElectionTime_End Date​ ​time NOT​ ​NULL
NominationTime_Start Date​ ​time NOT​ ​NULL
NominationTime_End Date​ ​time NOT​ ​NULL
​ ​Page​ ​20​ ​of​ ​28
Vote​ ​for
Attributes Data_Type Constraints
STD_ID Number(10) FOREIGN​ ​KEY
CAND_ID Number(10) FOREIGN​ ​KEY
V_Time Date​ ​Time NOT​ ​NULL
DUR_ID Varchar2(30) FOREIGN​ ​KEY
​ ​Page​ ​21​ ​of​ ​28
​ ​​ ​​ ​​ ​Project​ ​Report
Log-in​ ​:
Students​ ​page​ ​:
​ ​Page​ ​22​ ​of​ ​28
Nomination​ ​page​ ​(Student’s​ ​view)​ ​:
Results​ ​page​ ​(Student’s​ ​view)​ ​:
​ ​Page​ ​23​ ​of​ ​28
About​ ​page​ ​:
Selecting​ ​election​ ​year​ ​(Admin’s​ ​view)​ ​:
​ ​Page​ ​24​ ​of​ ​28
Setting​ ​Election​ ​period​ ​(Admin’s​ ​view)​ ​:
Setting​ ​Nomination​ ​period​ ​(Admin’s​ ​view)​ ​:
​ ​Page​ ​25​ ​of​ ​28
Viewing​ ​Candidates​ ​(Admin’s​ ​view)​ ​:
​ ​Page​ ​26​ ​of​ ​28
Viewing​ ​Election​ ​Results​ ​(Admin’s​ ​view)​ ​:
​ ​Page​ ​27​ ​of​ ​28
Languages​ ​&​ ​Tools​ ​used
Languages​ ​:
● PHP
● HTML
● CSS
● JavaScript
Tools​ ​:
● Notepad++
● MDL
● Bootstrap
● Wamp​ ​server
● Google​ ​Chrome
● Google​ ​Docs
● Draw.io
​ ​Page​ ​28​ ​of​ ​28

YU E-voting for students council elections

  • 1.
    - YU​ ​E-VOTING       Prepared​ ​By Amr​​Ghaleb​ ​Al-Smadi STUDENT​ ​ID:​ ​2012802071 Rajab​ ​Izzadeen STUDENT​ ​ID:​ ​2012802047 ‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬ A​ ​project​ ​submitted​ ​in​ ​partial​ ​fulfillment​ ​of​ ​the​ ​requirements​ ​for​ ​the degree​ ​of​ ​Bachelor​ ​of​ ​Science​ ​in​ ​Computer​ ​information​ ​system JANUARY​ ​2015 ​ ​Page​ ​1​ ​of​ ​28
  • 2.
    Index Introduction Purpose Scope The​ ​Overall​ ​Description Functional​​Requirements Non-Functional​ ​Requirements Security​ ​Requirements Use-case​ ​diagram Use​ ​Case​ ​Specification Context​ ​Diagram Data-flow​ ​Context​ ​Diagram Data​ ​Flow​ ​Diagram​ ​Level ER​ ​Diagram Relational​ ​Schema Physical​ ​Structure Project​ ​Report Languages​ ​&​ ​Tools​ ​used ​ ​Page​ ​2​ ​of​ ​28
  • 3.
    1.​ ​​ ​Introduction 1.1​​​ ​Purpose The purpose of this document is to describe the behavior of an e-voting System. this system provides an online tool for the students to vote for one of their candidates without the need of their​ ​presence​ ​in​ ​the​ ​campus,​ ​instead​ ​of​ ​using​ ​the​ ​traditional​ ​election. 1.2​ ​​ ​Scope ● The​ ​software​ ​is​ ​an​ ​online​ ​voting​ ​system​ ​named​ ​​ ​"YU​ ​E-Voting". ● The system provides an online tool for the students to view and vote only for one of​ ​​ ​the​ ​candidates. ● The​ ​system​ ​will​ ​provide​ ​a​ ​faster​ ​more​ ​trustable​ ​elections. ● This automated process will prevent fraud and the disorder which could happen in the​ ​ballot​ ​facilities. 2.​ ​​ ​The​ ​Overall​ ​Description This system provides an online tool for the students to vote for one of the candidates who will be representing their department ; the candidates will nominate themselves by filling an application that will be reviewed by the system . the voting process will be accessible to students in a specific period of time that will be assigned by the admin . the voting process will be reviewed by the admin then the election result will appear in the end of the​ ​assigned​ ​period​ ​. ​ ​Page​ ​3​ ​of​ ​28
  • 4.
    A)​ ​Functional​ ​Requirements: The​​main​ ​features​ ​in​ ​the​ ​system​ ​are: 1. Pre-voting​ ​phase: 1.1. Manage​ ​election 1.1.1. Admin​ ​shall​ ​be​ ​able​ ​to​ ​set​ ​the​ ​nomination​ ​time. 1.1.2. Admin​ ​shall​ ​be​ ​able​ ​to​ ​set​ ​the​ ​election​ ​time. 1.1.3. Admin​ ​shall​ ​be​ ​able​ ​to​ ​extend​ ​the​ ​election​ ​time. 1.2. Manage​ ​candidates 1.2.1. System​ ​should​ ​allow​ ​Student​ ​to​ ​nominate​ ​himself​ ​by​ ​propose​ ​his application​ ​​ ​provided​ ​that: 1.2.1.1. Student​ ​GPA​ ​should​ ​be​ ​greater​ ​than​ ​or​ ​equal​ ​to​ ​60% 1.2.1.2. Student​ ​should​ ​have​ ​36​ ​credits​ ​hours​ ​left​ ​at​ ​least. 1.2.1.3. Student​ ​must​ ​have​ ​a​ ​clear​ ​record​ ​of​ ​penalties. 1.2.1.4. Student​ ​should​ ​be​ ​taking​ ​at​ ​​ ​least​ ​12​ ​credit​ ​hours​ ​as​ ​the​ ​minimum academic​ ​load. 1.2.1.5. Student​ ​should​ ​be​ ​a​ ​Bachelor​ ​student​ ​. 1.2.1.6. Student​ ​should​ ​be​ ​a​ ​Jordanian​ ​student. 1.2.1.7. Student​ ​user-name​ ​must​ ​be​ ​10​ ​digits 1.2.2. Candidate​ ​shall​ ​be​ ​able​ ​to​ ​withdraw​ ​himself​ ​from​ ​the​ ​election​ ​before​ ​the election​ ​day. 1.2.3. Candidate​ ​can​ ​edit​ ​his​ ​profile. 1.2.4. Admin​ ​shall​ ​be​ ​able​ ​to​ ​delete​ ​existing​ ​candidate​. 1.2.5. Admin​ ​shall​ ​be​ ​able​ ​to​ ​view​ ​candidate​ ​profile. 1.2.6. System​ ​shall​ ​be​ ​able​ ​to​ ​send​ ​a​ ​feedback(approve​ ​/​ ​disapprove)​ ​for​ ​the submitted​ ​application​ ​of​ ​the​ ​candidate​ ​. 1.3. Manage​ ​Students 1.3.1. Student​ ​shall​ ​be​ ​able​ ​to​ ​log-in​ ​to​ ​the​ ​system​ ​provided​ ​that​ ​: 1.3.1.1. Student​ ​should​ ​be​ ​a​ ​Bachelor​ ​student​ ​. 1.3.1.2. Student​ ​should​ ​be​ ​a​ ​Jordanian​ ​student. 1.3.1.3. Student​ ​user-name​ ​must​ ​be​ ​10​ ​digits.Student​ ​shall​ ​be​ ​able​ ​to​ ​view candidate​ ​profile. 2. Voting​ ​phase 2.1. Submit​ ​vote 2.1.1. Student​ ​shall​ ​be​ ​able​ ​to​ ​ submit​ ​his​ ​vote(s)​ ​only​ ​for​ ​as​ ​many​ ​candidates as​ ​student​ ​department​ ​allows​ ​provided​ ​​ ​that: 2.1.1.1. Every​ ​500​ ​students​ ​in​ ​a​ ​single​ ​department​ ​shall​ ​have​ ​one representative,​ ​or​ ​according​ ​to​ ​the​ ​rule​ ​of​ ​​ ​rounding​ ​to​ ​250 students. 2.1.2. System​ ​must​ ​be​ ​able​ ​to​ ​verify​ ​user​ ​ID ​ ​Page​ ​4​ ​of​ ​28
  • 5.
    2.1.3. Admin​ ​shall​​be​ ​able​ ​to​ ​view​ ​the​ ​number​ ​of​ ​votes​ ​(counter)​ ​for​ ​each candidate. 3. Post-voting​ ​phase 3.1. View​ ​results 3.2. System​ ​may​ ​able​ ​to​ ​announce​ ​a​ ​representative​ ​if​ ​there​ ​is​ ​only​ ​one​ ​candidate nominated​ ​. 3.3. The​ ​system​ ​shall​ ​be​ ​able​ ​to​ ​announce​ ​one​ ​or​ ​more​ ​representative​ ​provided​ ​that: 3.4. the​ ​announce​ ​representatives​ ​should​ ​at​ ​least​ ​3​ ​representatives​ ​per​ ​faculty. 3.5. System​ ​shall​ ​be​ ​able​ ​to​ ​view​ ​the​ ​election’s​ ​​ ​final​ ​results. B)​ ​Non-Functional​ ​Requirements: - Network​ ​Resources​ ​needs​ ​to​ ​be​ ​reliable​ ​,this​ ​online​ ​e-voting​ ​system​ ​uses​ ​Internet connectivity​ ​to​ ​be​ ​able​ ​to​ ​communicate​ ​with​ ​the​ ​web​ ​services​ ​and​ ​relies​ ​heavily​ ​on network​ ​connectivity.​ ​Network​ ​can​ ​be​ ​monitored​ ​and​ ​errors​ ​can​ ​be​ ​reported​ ​when​ ​there is​ ​a​ ​network​ ​connectivity​ ​issue. - It​ ​must​ ​be​ ​reliable​ ​to​ ​process​ ​the​ ​database​ ​request,​ ​especially​ ​when​ ​the​ ​application​ ​is processing​ ​the​ ​data,​ ​database​ ​​ ​​ ​​ ​connections​ ​must​ ​be​ ​reliable. - It​ ​must​ ​be​ ​fast​ ​to​ ​process​ ​the​ ​request,​ ​especially​ ​when​ ​the​ ​application​ ​is​ ​processing​ ​the data,​ ​there​ ​might​ ​be​ ​some​ ​instances​ ​where​ ​a​ ​lot​ ​of​ ​data​ ​needs​ ​to​ ​be​ ​transferred.​ ​The design​ ​needs​ ​to​ ​be​ ​done​ ​by​ ​making​ ​sure​ ​that​ ​application​ ​will​ ​operate​ ​fast. - Update​ ​schema​ ​and​ ​the​ ​code​ ​for​ ​the​ ​new​ ​changes​ ​must​ ​be​ ​easy,​ ​as​ ​this​ ​tool​ ​is​ ​an​ ​online e-voting​ ​system​ ​and​ ​there​ ​might​ ​be​ ​new​ ​changes​ ​required,​ ​any​ ​changes​ ​need​ ​to​ ​be implemented​ ​easily.​ ​Schema​ ​need​ ​to​ ​be​ ​updated;​ ​code​ ​changes​ ​will​ ​be​ ​required​ ​for​ ​the new​ ​fields. - Online​ ​e-voting​ ​application​ ​should​ ​run​ ​from​ ​any​ ​computer​ ​and​ ​smart-phone​ ​that​ ​has Internet​ ​connection,​ ​Internet​ ​connection​ ​is​ ​required​ ​to​ ​be​ ​able​ ​to​ ​run​ ​the​ ​online​ ​tool. ​ ​Page​ ​5​ ​of​ ​28
  • 6.
    Security​ ​Requirements: - The​​security​ ​requirements​ ​for​ ​this​ ​system​ ​span​ ​all​ ​aspects​ ​of​ ​the​ ​voting​ ​process​ ​and include​ ​voter​ ​authenticity,​ ​voter​ ​anonymity,​ ​data​ ​confidentiality,​ ​data​ ​integrity,​ ​system accountability,​ ​system​ ​integrity,​ ​system​ ​availability,​ ​system​ ​assurance,​ ​and​ ​system reliability - An​ ​individual​ ​not​ ​registered​ ​to​ ​vote​ ​must​ ​not​ ​be​ ​able​ ​to​ ​cast​ ​a​ ​ballot - A​ ​voter​ ​must​ ​not​ ​be​ ​able​ ​to​ ​vote​ ​more​ ​than​ ​once - The​ ​privacy​ ​of​ ​the​ ​vote​ ​has​ ​to​ ​be​ ​guaranteed​ ​during​ ​the​ ​casting,​ ​transfer,​ ​reception, collection,​ ​and​ ​tabulation​ ​of​ ​votes - No​ ​voter​ ​should​ ​be​ ​able​ ​to​ ​view​ ​that​ ​they​ ​voted​ ​to​ ​a​ ​specific​ ​candidate​ ​in​ ​a​ ​certain​ ​way after​ ​he​ ​is​ ​done​ ​voting​ ​. - None​ ​of​ ​the​ ​participants​ ​involved​ ​in​ ​the​ ​voting​ ​process​ ​(Admin​ ​,​ ​candidate​ ​,​ ​voters,​ ​etc) should​ ​be​ ​able​ ​to​ ​link​ ​a​ ​vote​ ​to​ ​an​ ​identifiable​ ​voter - Each​ ​vote​ ​is​ ​recorded​ ​precisely​ ​as​ ​the​ ​voter​ ​intended - Each​ ​voter​ ​is​ ​ensured​ ​a​ ​"clean​ ​slate"​ ​of​ ​the​ ​system​ ​to​ ​ensure​ ​equality,​ ​confidence,​ ​and minimize​ ​system​ ​tampering - The​ ​outcome​ ​of​ ​the​ ​voting​ ​process​ ​must​ ​match​ ​the​ ​votes​ ​cast - System​ ​and​ ​voter​ ​operations​ ​are​ ​logged​ ​and​ ​audited - The​ ​system​ ​cannot​ ​be​ ​re-configured​ ​during​ ​operation - Additional​ ​ballots​ ​cannot​ ​be​ ​cast​ ​once​ ​the​ ​polling​ ​place​ ​has​ ​closed - The​ ​system​ ​is​ ​protected​ ​against​ ​accidental​ ​and​ ​malicious​ ​denial​ ​of​ ​service​ ​attacks ​ ​Page​ ​6​ ​of​ ​28
  • 7.
  • 8.
    Use​ ​Case​ ​Specification: Use​​Case​ ​ID:  1.1.1  Use​ ​Case​ ​Name:  Set​ ​the​ ​nomination​ ​time Actors:  Admin  Description:  This​ ​use-case​ ​shows​ ​how​ ​the​ ​admin​ ​can​ ​edit​ ​the​ ​nomination​ ​time.  11Pre-conditions:  suitable​ ​timing​ ​for​ ​the​ ​nomination​ ​according​ ​to​ ​the​ ​university’s  schedule  Post-conditions:  the​ ​admin​ ​will​ ​be​ ​able​ ​to​ ​edit​ ​the​ ​nomination​ ​time   Normal​ ​Flow:  1. Admin enters his user-name and the password to log-in to​ ​the​ ​system. 2. Admin​ ​inputs​ ​the​ ​nomination​ ​date.  3. Admin​ ​inputs​ ​the​ ​start​ ​and​ ​the​ ​end​ ​of​ ​the​ ​nomination​ ​period.  Alternative​ ​Flows:  None                        ​ ​Page​ ​8​ ​of​ ​28
  • 9.
    Use​ ​Case​ ​ID: 1.1.2  Use​ ​Case  Name:  Set​ ​the​ ​election​ ​time Actors:  Admin  Description:  this​ ​use​ ​shows​ ​how​ ​the​ ​admin​ ​can​ ​edit​ ​the​ ​election​ ​time.  Pre-conditions:  suitable​ ​timing​ ​for​ ​the​ ​election​ ​according​ ​to​ ​the​ ​university’s​ ​schedule  Post-conditions:  the​ ​admin​ ​will​ ​be​ ​able​ ​to​ ​edit​ ​the​ ​election​ ​time   Normal​ ​Flow:  4. Admin enters his user-name and the password to log-in to the​ ​system. 5. Admin​ ​inputs​ ​the​ ​election​ ​date.  6. Admin​ ​inputs​ ​the​ ​start​ ​and​ ​the​ ​end​ ​of​ ​the​ ​election​ ​period.  Alternative​ ​Flows:  None.                               ​ ​Page​ ​9​ ​of​ ​28
  • 10.
    Use​ ​Case​ ​ID: 1.2.1  Use​ ​Case​ ​Name:  student​ ​nomination  Actors:  student  Description:  this​ ​use​ ​case​ ​shows​ ​how​ ​student​ ​can​ ​nominate​ ​himself  Pre-conditions:  ● student’s​ ​GPA​ ​should​ ​be​ ​greater​ ​than​ ​or​ ​equal​ ​to​ ​60%.  ● student​ ​should​ ​have​ ​36​ ​credits​ ​left​ ​at​ ​least.  ● Student​ ​​ ​must​ ​have​ ​a​ ​clear​ ​record​ ​of​ ​penalties  ● Student​ ​should​ ​be​ ​taking​ ​​ ​least​ ​12​ ​credit​ ​hours​ ​as​ ​the  minimum​ ​academic​ ​load.  ● Student​ ​should​ ​be​ ​a​ ​Bachelor​ ​student.  ● Student​ ​should​ ​be​ ​a​ ​Jordanian​ ​student.  ● Student​ ​user-name​ ​must​ ​be​ ​10​ ​digits.  Post-conditions:  The​ ​System​ ​will​ ​send​ ​a​ ​feedback​ ​for​ ​the​ ​submitted​ ​application​ ​to  the​ ​candidate.  Normal​ ​Flow:  1. Student​ ​enter​ ​his​ ​user-name​ ​and​ ​password.  2. Student​ ​access​ ​the​ ​application​ ​form.  3. Student​ ​fill​ ​the​ ​application.  4. Student​ ​click​ ​“submit”​ ​button.  5. system​ ​checks​ ​the​ ​candidate​ ​information.  6. system​ ​sends​ ​back​ ​a​ ​feedback​ ​to​ ​the​ ​Candidate​ ​(Approve).  Alternative​ ​Flows:  if​ ​the​ ​student’s​ ​GPA​ ​is​ ​less​ ​than​ ​60%​ ​or​ ​his​ ​left​ ​credit​ ​hours​ ​is​ ​less  than​ ​36​ ​or​ ​his​ ​record​ ​contains​ ​any​ ​penalties​ ​or​ ​he​ ​is​ ​taking​ ​less​ ​than  12​ ​credit​ ​hours​ ​,​ ​the​ ​system​ ​shall​ ​disapprove​ ​his​ ​nomination​ ​request  .                ​ ​Page​ ​10​ ​of​ ​28
  • 11.
    Use​ ​Case​ ​ID: 1.2.2  Use​ ​Case​ ​Name:  Candidate​ ​Withdraw  Actors:  Candidate.  Description:  This​ ​use-case​ ​shows​ ​how​ ​candidate​ ​can​ ​withdraw​ ​himself​ ​from​ ​the  election.  Pre-conditions:  Candidate​ ​should​ ​be​ ​authorized​ ​by​ ​the​ ​system​ ​as​ ​a​ ​candidate.  The​ ​withdrawal​ ​action​ ​should​ ​be​ ​before​ ​the​ ​election​ ​day.   Post-conditions:  Candidate​ ​withdraw​ ​himself.  Normal​ ​Flow:  ● Enter​ ​user-name​ ​and​ ​password​ ​.  ● Access​ ​his​ ​profile.  ● Press​ ​the​ ​“withdraw”​ ​button.  Alternative​ ​Flows:  if​ ​the​ ​candidate​ ​withdraw​ ​himself​ ​during​ ​the​ ​election​ ​day,​ ​the  system​ ​​ ​will​ ​reject​ ​and​ ​send​ ​him​ ​a​ ​message​ ​“the​ ​withdrawal​ ​is​ ​out​ ​of  time​ ​”​ ​.    Use​ ​Case​ ​ID:  1.2.3  Use​ ​Case​ ​Name:  ​ ​Edit​ ​profile  Actors:  Candidate  Description:  this​ ​use-case​ ​shows​ ​how​ ​the​ ​candidate​ ​can​ ​edit​ ​his​ ​profile.  Pre-conditions:  Candidate​ ​must​ ​be​ ​logged​ ​in​ ​to​ ​the​ ​system.  Post-conditions:  candidate​ ​can​ ​edit​ ​his​ ​profile.  Normal​ ​Flow:  ● enter​ ​user-name​ ​and​ ​password​ ​.  ● access​ ​his​ ​profile.  ● Edit​ ​profile(upload​ ​photo,​ ​edit​ ​or​ ​add​ ​bio,​ ​edit​ ​election  propaganda​ ​)  ● click​ ​“submit”​ ​button   Alternative​ ​Flows:  None.    ​ ​Page​ ​11​ ​of​ ​28
  • 12.
    Use​ ​Case​ ​ID: 1.2.5  Use​ ​Case​ ​Name:  View​ ​Candidate​ ​Profile  Actors:  Admin,​ ​Student,​ ​Candidate  Description:  this​ ​use-case​ ​shows​ ​how​ ​user​ ​can​ ​view​ ​candidate’s​ ​profile  Pre-conditions:  user​ ​must​ ​be​ ​authorized​ ​to​ ​access​ ​the​ ​system.  Post-conditions:  user​ ​can​ ​view​ ​candidate's​ ​profile.  Normal​ ​Flow:  enter​ ​user-name​ ​and​ ​password​ ​.  select​ ​candidate.  view​ ​candidate​ ​profile.  Alternative​ ​Flows:  None.    Use​ ​Case​ ​ID:  1.3.1  Use​ ​Case​ ​Name:  Student​ ​login  Actors:  Student   Description:  this​ ​use-case​ ​shows​ ​how​ ​the​ ​Student​ ​can​ ​login​ ​to​ ​the​ ​system  Pre-conditions:  ● Student​ ​should​ ​be​ ​a​ ​Bachelor​ ​student​ ​.  ● Student​ ​should​ ​be​ ​a​ ​Jordanian​ ​student.  ● The​ ​Student’s​ ​user-name​ ​must​ ​be​ ​10​ ​digits  Post-conditions:  Student​ ​will​ ​log-in​ ​to​ ​the​ ​system  Normal​ ​Flow:  enter​ ​the​ ​user-name​ ​and​ ​the​ ​password   Alternative​ ​Flows:              ​ ​Page​ ​12​ ​of​ ​28
  • 13.
    Use​ ​Case​ ​ID: 2.1.1  Use​ ​Case​ ​Name:  Submit​ ​vote  Actors:  Student   Description:  this​ ​use-case​ ​shows​ ​how​ ​the​ ​Student​ ​will​ ​submit​ ​his​ ​vote  Pre-conditions:  ● Student​ ​should​ ​be​ ​a​ ​Bachelor​ ​student​ ​.  ● Student​ ​should​ ​be​ ​a​ ​Jordanian​ ​student..  Post-conditions:  Student​ ​will​ ​submit​ ​his​ ​vote.  Normal​ ​Flow:  1. enter​ ​user-name​ ​and​ ​password   2. select​ ​candidate(s).  3. click​ ​“submit​ ​vote”​ ​button​ ​.  4. System​ ​deactivates​ ​“submit​ ​vote”​ ​button​ ​.  Alternative​ ​Flows:  if​ ​Student​ ​wants​ ​to​ ​vote​ ​for​ ​more​ ​than​ ​what​ ​department​ ​allows,​ ​the  system​ ​will​ ​reject​ ​the​ ​process​ ​and​ ​show​ ​the​ ​user​ ​a​ ​message​ ​.    Use​ ​Case​ ​ID:  2.1.3  Use​ ​Case​ ​Name:  View​ ​votes​ ​counter  Actors:  Admin  Description:  this​ ​use-case​ ​shows​ ​how​ ​admin​ ​will​ ​view​ ​the​ ​votes​ ​counter​ ​for​ ​each  candidate.  Pre-conditions:  Starting​ ​elections.  Post-conditions:  Admin​ ​view​ ​the​ ​number​ ​of​ ​votes​ ​(counter)​ ​for​ ​each​ ​candidate.  Normal​ ​Flow:  enter​ ​user-name​ ​and​ ​password   view​ ​counters​ ​per​ ​candidate.  Alternative​ ​Flows:  None        ​ ​Page​ ​13​ ​of​ ​28
  • 14.
    Use​ ​Case​ ​ID:   Use​ ​Case​ ​Name:  View​ ​results    Actors:  Admin,​ ​Candidate,​ ​Student  Description:  this​ ​use​ ​case​ ​shows​ ​how​ ​the​ ​admin,candidates​ ​and​ ​Students​ ​will  view​ ​the​ ​voting​ ​results​ ​.  Preconditions:  ● The​ ​election​ ​period​ ​must​ ​be​ ​over.  ● Every​ ​500​ ​students​ ​in​ ​a​ ​single​ ​department​ ​shall​ ​have​ ​one  representer​ ​,or​ ​according​ ​to​ ​the​ ​rule​ ​of​ ​​ ​rounding​ ​to​ ​250  students.  ● The​ ​announce​ ​representatives​ ​should​ ​at​ ​least​ ​3  representatives​ ​per​ ​faculty.  ● System​ ​may​ ​able​ ​to​ ​announce​ ​a​ ​representative​ ​if​ ​there​ ​is​ ​only  one​ ​candidate​ ​nominated​ ​.    Post​ ​​ ​conditions:  the​ ​results​ ​is​ ​released​ ​and​ ​viewed.  Normal​ ​Flow:  log-in   view​ ​elections​ ​results   Alternative​ ​Flows:  None.  ​ ​Page​ ​14​ ​of​ ​28
  • 15.
    ​ ​​ ​Context​​Diagram: ​ ​Page​ ​15​ ​of​ ​28
  • 16.
    Data-flow​ ​Context​ ​Diagram ​​Page​ ​16​ ​of​ ​28
  • 17.
    Data​ ​Flow​ ​Diagram​​Level ​ ​Page​ ​17​ ​of​ ​28
  • 18.
    ER​ ​Diagram ​ ​Page​​18​ ​of​ ​28
  • 19.
  • 20.
    Physical​ ​Structure Students Attributes Data​​Type Constraints Name Varchar2(50) NOT​ ​NULL STD_ID Number(10) PRIMARY​ ​KEY Password Varchar2(30) NOT​ ​NULL Faculty Varchar2(50) NOT​ ​NULL Department Varchar2(50) NOT​ ​NULL GPA Number NOT​ ​NULL Credit​ ​hours Number NOT​ ​NULL Nationality Varchar2(30) NOT​ ​NULL Record​ ​of​ ​penalties Boolean NOT​ ​NULL Is​ ​Candidate Boolean NOT​ ​NULL Image BLOB NONE Bio Varchar2(5000) NONE Durations Attributes Data​ ​Type Constraints Year Year PRIMARY​ ​KEY ElectionTime_Start Date​ ​time NOT​ ​NULL ElectionTime_End Date​ ​time NOT​ ​NULL NominationTime_Start Date​ ​time NOT​ ​NULL NominationTime_End Date​ ​time NOT​ ​NULL ​ ​Page​ ​20​ ​of​ ​28
  • 21.
    Vote​ ​for Attributes Data_TypeConstraints STD_ID Number(10) FOREIGN​ ​KEY CAND_ID Number(10) FOREIGN​ ​KEY V_Time Date​ ​Time NOT​ ​NULL DUR_ID Varchar2(30) FOREIGN​ ​KEY ​ ​Page​ ​21​ ​of​ ​28
  • 22.
    ​ ​​ ​​​​ ​Project​ ​Report Log-in​ ​: Students​ ​page​ ​: ​ ​Page​ ​22​ ​of​ ​28
  • 23.
    Nomination​ ​page​ ​(Student’s​​view)​ ​: Results​ ​page​ ​(Student’s​ ​view)​ ​: ​ ​Page​ ​23​ ​of​ ​28
  • 24.
    About​ ​page​ ​: Selecting​​election​ ​year​ ​(Admin’s​ ​view)​ ​: ​ ​Page​ ​24​ ​of​ ​28
  • 25.
    Setting​ ​Election​ ​period​​(Admin’s​ ​view)​ ​: Setting​ ​Nomination​ ​period​ ​(Admin’s​ ​view)​ ​: ​ ​Page​ ​25​ ​of​ ​28
  • 26.
    Viewing​ ​Candidates​ ​(Admin’s​​view)​ ​: ​ ​Page​ ​26​ ​of​ ​28
  • 27.
    Viewing​ ​Election​ ​Results​​(Admin’s​ ​view)​ ​: ​ ​Page​ ​27​ ​of​ ​28
  • 28.
    Languages​ ​&​ ​Tools​​used Languages​ ​: ● PHP ● HTML ● CSS ● JavaScript Tools​ ​: ● Notepad++ ● MDL ● Bootstrap ● Wamp​ ​server ● Google​ ​Chrome ● Google​ ​Docs ● Draw.io ​ ​Page​ ​28​ ​of​ ​28