CONFMAN v1.1 Software Design Doc
CONFMAN v1.1 Software Design Doc
for
CONFMAN
v1.1
PREPARED BY
CENGIZOVER
Birand Koray EREN
Mustafa YAVUZ
Burak ÇÜN
1
Table of Contents
PREFACE ........................................................................................................................................ 3
1. INTRODUCTION ........................................................................................................................ 4
2.1.1 Performance..................................................................................................................... 7
2
4.2.2 Association Classes ....................................................................................................... 41
5. ALGORITHMS .......................................................................................................................... 42
7. CONCLUSION .......................................................................................................................... 51
PREFACE
3
CHANGE HISTORY
1. INTRODUCTION
1.1 Purpose
1.2 Scope
This document gives a detailed description of CONFMAN and the business flow is
described by using related diagrams. CONFMAN will be a conference management system
that manages all administrative and organizational tasks of a conference, including multi-role
authentication, conference rooms‟ presentation scheduling, periodical announcements,
reviewer evaluations, paper submissions, paper reviewer assignments and web page.
4
There are some assumptions in the content of the document that will become certain
during the implementation stage.
The key software life cycle product that drives our software design is typically SRS. Our
team wrote the SRS version 1.0 of the CONFMAN that will drive the design and design
constraints to be considered and observed.
1.3 Overview
ACRONYM DEFINITION
CONFMAN Conference Management & Hosting System
IEEE The Institute of Electric & Electronic
Engineers
SRS Software Requirement Specification
METU Middle East Technical University
CENG Computer Engineering
SDD Software Design Document
UI User Interface
5
API Application Programming Interface
HTTP HyperText Transfer Protocol
GUI Graphical User Interface
HTML HyperText Markup Language
MVC Model View Controller
JS JavaScript
2. SYSTEM OVERVİEW
Our system for CONFMAN will be developed based on MVC design pattern. MVC is an
architecture that separates the representation of information from the user's interaction within.
The central idea behind MVC is code reusability and separation of concerns. MVC can be
broken into three elements:
Model: The Model represents data and the rules that govern access to and updates of
this data. In enterprise software, a model often serves as a software approximation of
a real-world process
View: The View renders the contents of a Model. It specifies exactly how the Model
data should be represented. If the Model data changes, the View must update its
representation as needed.
Controller: The Controller translates the user's interactions with the View into
actions that the Model will perform. In a stand - alone GUI client, user interactions
can be button clicks or menu selections. Depending on the context, a Controller may
also select a new View to present back to the user.
6
Figure 2.1 - MVC Schema
2.1.1 Performance
* CONFMAN will perform all of the desired functionalities as quick as possible. It has
been estimated that the time to perform functionalities successfully is up to 5 seconds.
* CONFMAN will minimize the database usage to maximize the speed of data
manipulation & data flow. It is expected to have a huge performance boost (up to ten times)
by means of shifting the computation amount from database queries to java run-time
environment.
* CONFMAN aims to minimize the effort of the user to perform functionality with user-
friendly interfaces. In other words, the user will do multiple operations at a time.
2.1.3 Security
Since the privacy is critical in this system, the system should be guarded with strict
security precautions. The followings explain main security issues.
7
1. The system should be invulnerable to the SQL injection attacks. In order to prevent
system from SQL injection[4] attacks, inputs should be sanitized well and prepared
statements should be used instead direct concatenation and execution of the SQL
Queries. For more detailed information visit the website [4] in reference section.
2. Cross-Site Scripting (XSS)[5] is another widely used type of attack from the
malicious users, which uses scripting language to retrieve private information of the
user registered to the system. Since the client-side of the system will almost
completely be coded be a scripting language, this security concern should be taken
into consideration. For more detailed information visit the website [5] in reference
section.
3. In the system, feedback messages should not give any clue about the system. An
example illustrates this briefly. For instance, if a malicious user types an invalid
username or password to the login form, System should inform user with message
“Invalid username or password” or equivalent one. Not inform with a message like
“Password is wrong” if he enters a valid username but invalid password. Because he
will be able to understand that the user is registered to the system but only the
password is wrong. In the same way, if the typed username is not registered to the
system, system should not give message like “Username is not registered to the
system”. The attackers should not be able to inference whether username is registered
to the system or not. Clearly, it should simply print the message “Invalid username or
password” which does not give any clue about the entries in the users table so reduce
the possibility to find usernames or password by brute force.
4. Size and type of any uploaded document should be checked. Malicious user may try
to upload very big sized file in order to damage server or may try to upload an
executable file with Trojan. The restriction on type is not only about the security, it is
also important for consistency in the system. If many types are allowed, reviewers
may not be able to see this papers due to lack of some technical reasons about the type
of the file. Hence, we enforce to users (authors) to upload only few widely used types
of file like pdf, doc.
5. Most of errors should be handled properly and a convenient informative message
should be presented to the users in the case of error actions. If these are not handled
appropriately, malicious user may try to get information about the database by typing
mistake input to the forms deliberately. For example, there may be some failures on
database actions and if they are not handled, web browser may print some private
8
information about the database‟s tables which give clue about the system to the
malicious users. Hence, these possibilities should be predicted before coding phase
and dealt with.
3. SYSTEM ARCHITECTURE
3.1.1.1 Servlet
Servlet is Java-based server-side web technology to extend the capabilities of servers that
host applications hosted by web servers. Although they can communicate over any client-
server protocol, they usually use HTTP protocol. Servlets are used to add dynamic content to
the web server using the Java platform. Figure 3.1 shows the position of servlets in a web
application.
9
3.1.1.2 Tomcat
To deploy and run a servlet, a web container must be used. A web container is essentially the
component of a web server that interacts with the Servlet. Apache Tomcat is an open source
implementation of Servlet technology and can act as a standalone server to test servlets and can
be integrated with the Apache Web Server. Figure 3.2 shows Java interfaces used to handle requests
from and responses to client side.
Figure 3.3 shows the activity diagram for the request-response relationship between client side and the
server side components.
10
Figure 3.3 activity diagram for request-response relationship
3.1.1.3 JDBC
JDBC[2] is a Java-based access technology that defines how a client may access a database.
It provides methods to query and update data in a database by using statements. Below are
the components of JDBC.
11
Figure 3.4 JDBC API
3.1.2 Client-Side Design
Communication between server-side and client-side will be maintained through JSON files.
JSON is a lightweight data interchange format. It is easy for humans to read and write, and
also for machines to parse and generate. Although it uses JavaScript syntax to describe data
objects, it is language and platform independent. JSON is built on two fields:
12
An ordered list of values. In most languages, this is realized as an array, vector, list,
or sequence.
1. After submitting, our system will create a JSON file, such as {“user”:confman,
“pass”:123456} where “user” and “pass” are properties(e.g. Labels)
of the JSON file , confman and 123456 are values given to the username and
password fields respectively by the user.
2. This JSON file is parsed through servlet at the server side. Data is checked for
whether or not there is a matching username and password combination at the
system. Depending on the success of the login operation, server will create a
JSON file such that {success:true/false} where success is the label. If the
login is successful, success property is set to true or false otherwise.
3. The client will handle this JSON file and depending on the value of success, it
navigates the user to his specific page or returns notification indicating that the
login is not successful.
3.2.1 ER DIAGRAM
13
Figure 3.5 – ER diagram of CONFMAN
Conferences
This table keeps information about the conferences currently being held.
14
fieldName Description
conf_id The number uniquely given to the entry of
the conference
conf_name The name of the conference
conf_date The start date of the conference
Settings
FieldName Description
set_id The number uniquely given to the entry of
the settings item.
set_name The name of the setting item
set_value The value to which the corresponding
setting item has been set
set_description Description of the setting item
Rooms
This table keeps information about room where presentations will be made in a conference.
FieldName Description
r_name The name of the room
r_id The number uniquely given to the entry of
the room instance
r_capacity The maximum number of people that can sit
in comfortably in the room
Users
This table keeps information about the users in the conference (except authors).
FieldName Description
u_id The number uniquely given to the each user
instance
firstname A part of personal name that specifies and
differentiates between members of a group of
15
individuals, especially in a family
lastname A part of personal name which has been
passed, according to law or custom, from one or
both parents to their children
email Email address of the user
password The encryption of set of characters used for
authentication
address The collection of information, presented in a
mostly fixed format, used for describing the
location of a building, apartment, or other
structure or a plot of land, generally using
political boundaries and street names as
references, along with other identifiers such as
house and apartment numbers.
u_telephone The telephone number to reach to the user
u_type The type of the user(except authors)(Look at
SRS 1.0 Section 2.2)
Subconferences
FieldName Description
sub_id The name uniquely given to each
subconference instance
chair_id Referring to users table, the u_id of the
chair of the subconference
conf_id Referring to conferences table, the conf_id
of the conference of which the subconference
instance is a branch
Schedule
FieldName Description
sch_id The number uniquely given to each
16
scheduling item
sch_date The date when the scheduled item will
occur.
sch_speaker_id Referring to user table, the u_id of the
speaker that will make presentation at sch_date
sch_room_id Referring to rooms table, the r_id of the
room where the speaker with sch_speaker_id
will make presentation at sch_date
Papers
FieldName Description
p_id The number uniquely given to each paper
instance.
p_title The title of the paper
p_subconf_id Referring to sub conferences, the sub_id of
the conference for which that file has been
uploaded
p_author_id The id number of the author for the contact
to notify him about acceptance / rejection of the
paper
grade Average of the assigned reviewers' grades
on the paper
Authors
FieldName Description
a_position The order in which authors has been entered
to the system (i.e. '1' for the author entered
first,'2' for the second etc.)
a_paperid Referring to papers table, p_id of the paper
that corresponding author(s) has written.
17
firstname First name of the author
lastname Last name of the author
email Email address of the author
Reviews
This table keeps information about the reviews on the paper(s) made by reviewer(s).
FieldName Description
r_id The number uniquely given to each review
entry
comment The statements of the reviewer on the
paper(s) to which he has been assigned
grade The grade of the paper given by the
reviewer
r_paperid Referring to papers table, p_id of the paper
to which the reviewer has been assigned
18
3.2.2 Class Diagram
19
3.2.3 Activity and State Diagrams
3.2.3.1 Login
To be able to use facilities of the system, user should login to the system. Login
process is pictured in figure 3.7.
User should first type the URL of the system to the browser and enter the website.
Then, he will meet a login screen showed in Figure 5.2 including a simple form with
username and password sections.
User will type his username and password and click the „Login‟ button. If the one of
information he entered is not correct or does not exist in the database, a system error
message should appear in order to inform user.
This informative message should be convenient to system security specification
mentioned in 3.item in 2.3.3. It may be “Invalid username or password.”
If the user enters valid information, he enters the system and the system renew user‟s
page with normal user panel.
20
3.2.3.2 Upload Paper
Only users who assigned as Author should be able to upload paper to corresponding
conference.
To be able to upload paper they should be logged in the conference panel they want to
upload their paper. They press the button labeled as “Upload Paper”.
After pressing button a file browser should appear. The author should be able to
choose multiple files at a time.
Chosen files will be filtered according to their size and type. This is due to security
and consistency of the system stated in 4.item in 2.3.3.
If the files could not pass the validation system, an informative message should
appear on the user interface. It may be “Improper file type” and “Size of the file
exceeds the limit”. The name of the uploaded file should turn the bold font in red
color in order to indicate which file is erroneous.
If there is no problem with type and size of the file, a submission form then should
appear. Form should contain mandatory information about the paper like title of the
paper and information about the authors of the paper.
At least, one author‟s information has to be filled in the form and the title of the paper
has to be stated. Otherwise system will warn the user with a message like “Missing
information”.
If all steps are passed successfully then by pressing a “Submit” button the file will be
uploaded to the server.
21
Figure 3.8 – Upload Paper procedure
22
Figure 3.9 – Creation of Conference
3.2.3.4 PC Designation
Only users who assigned as Chair should be able to form a Program Committee.
In order to assign some reviewers to a Program Committee, Chair firstly should log in
to the system and conference. Login procedure will be as in 3.2.3.1.
After Chair logins to the system, he chooses a conference, which he was assigned to,
from his conference list (Figure 5.1) in his home page. Conference panel appear.
In this panel, there should be a button labeled as “Program Committee”. By clicking
this button, Chair will be send request in order to add reviewers to PC.
A small popup appear in response to this request. In this popup, a list of reviewers
takes part.
If the person whom Chair wants to add in PC exists in the list, PC just selects him and
click button labeled “Add Selected Person”. Then system should inform the Chair
whether the operation is successful or not. This is important for security mentioned in
item 5 in 2.3.3.
If the person whom Chair wants to add in PC does not exist in the list, Chair should
be able to invite that person through email. There will be an input form on the popup,
which takes a valid email address. Then Chair clicks the button “Invite” and system
will send an invitation mail to the invited person automatically. After that procedure
will be operated same as in 3.2.3.10.
23
Figure 3.10 –PC Formation
24
Figure 3.11 – Chair Assignment
25
Figure 3.12 – Reviewer Assignment
26
Figure 3.13 – Author Invitation
27
If there is not a problem with the date, system checks the checksum (MD5) of the
conference whether it is crashed or not.
If it is not crashed operation is successful and a success message is sent back to the
CS. Otherwise, CS should again informed with failure message and CS should set the
settings of the conference again as in the procedure.
28
Figure 3.15 – Backup Conference
All types of actors will be able to invite anybody outside the system. Although, the
invitation types will be different, the invitation procedure is almost same for them.
Firstly, actor logins to the system. In home page or conference panel, there will be
button labeled as “Invite”. Actor clicks in order to send request to this operation. A
submission form appears on screen.
In this form, there will be a list of actor types that registered user wants to assign
somebody. He chooses one of them and fills the input form which takes an email
address as input. Then clicks the submit button to send invitation to the email of
invited person.
If there is any mistake in the submission form, the system should warn the user with a
clear informative message.
If the submission is successful, system sends the invitation mail with an activation
link and informs the user with a success message.
This activation link is special to the invited person that it should include some
variables related the type of invitation. After invited person clicks the activation link,
if he is already registered to the system, there will be a news on the notification area
(Figure 5.1) waiting for acceptation/rejection.
29
If he accepts invitation, conference will be added to his conference list (Figure 5.1) on
his home page. Otherwise, nothing happens and a feedback will be sent to the user
who invites the user. The message appears on notification are of that person or he will
informed through email.
If invited person is not registered to the system, after clicking the activation link, a
registration procedure will be operated. After he registers to the system, the
conference which he invited to will be added his conference list (Figure 5.1) on his
home page automatically.
Only invited people and the people who have mail with “edu.tr” extension will be
able to register to the system.
They firstly type the URL of the system to the web browser and enter the main
page the system. In login screen (Figure 5.2), there is a link labeled as “Sign Up”.
After clicking this registration form appears on the screen of the user.
30
This form will include input sections for Name, Surname, Username and an email
address. The user will be expected to enter all information correctly. After fills the
form, clicks the submit button and if there is mistake in the form, user should be
warned with proper way explained in item 5 in 2.1.3
If there is not any wrong information with the inputs, registration process will be
successful and a success message will be sent to the user.
Only reviewers whom assigned some papers in order to review are able to evaluate
papers.
To evaluate papers reviewers should be first logged into the system.
After login reviewer choose one conference from conference list on main panel,
where he want to login and evaluate paper. He double clicks this conference and the
conference data will be loaded to the conference panel on the right side of main panel
(figure 6.4) .
After loading conference, if the user has multiple roles in this conference he chooses
reviewer role from „role type‟ combobox (figure 6.4) in conference panel, after
31
choosing reviewer the relating data will automatically be loaded to the conference
panel.
For reviewers there will be an „assigned papers‟ panel devoted to reviewers, reviewer
choose one paper from there and double clicks it. An evaluation form appears (figure
6.8).
Reviewer fills the evaluation form and clicks the „review‟ button to complete
evaluation process.
Notification area will be used for follow the news about invitation or other actions
like request for some role for some specific conference. This panel will be available to
all user types.
Since notification area will mainly be used for accepting/rejecting requests, it will
have a unique template for elements in this area. An element will be a box including
explanation about the request and two buttons labeled as „accept‟ and „reject‟. There
may also be a hyperlink labeled as ‟details‟ which gives more information about the
request.
32
If a request is sent to the user, the notification area will automatically be updated.
User reads explanation or clicks „details‟ button to learn much more about it.
Then clicks the „accept‟ or „reject‟ button. If he accepts request, then relating
operation will automatically be done and main panel will be updated according to this
operation.
If he rejects nothing will be, however in both cases, the user who send the request will
be informed in same way, that is, the explanation will appear on his notification panel.
We gave up FLEX because of two drawbacks. If our system was developed with
FLEX, one that wants to use our system, would install Adobe Flash to his browser.
Furthermore, we would lose mobile users because of dependency to Adobe Flash.
Although we have changed our tool, our architecture can still be maintained
successfully due to the advantage that our new client-side tools are based on MVC.
33
4. DATA DESIGN
Basically, classes that objects which will be populated with run-time data can be divided
into four kinds. First is responsible for dealing with user data, second is for taking care of
conference-related data, third and most crucial one is the ternary association classes of
objects where the interaction between conference objects and user objects take place. Last
and forth is for communication between users. Association classes will be discussed in the
subsections of the user-oriented and conference-oriented classes since they form a concise
and delicate relationship between these two.
User classes are designed in such a way to deliver a multi-user environment and satisfy
the related requirements. Although users can conceive different kind of roles according to
their position in conference instances, outside the scope of any conference, users can have 3
different immutable(can't change during the lifetime of user account) Since this is a strict
requirement, classes are designed in such a way that it will not allow an illegitimate action.
For this purpose, an enumeration is introduced. According to this enumeration,
SYSTEM_ADMINISTRATOR will yield 0, CONF_SUPERVISOR will yield 1 and
STD_MEMBER will yield 2. Additionally, a base class called SystemUser is introduced. It
features each attribute that all users of the CONFMAN will have in common namely name,
34
surname, email and systemRole which is nothing but an enumerated integers by the
enumeration mentioned above. Furthermore, it has methods to send and receive messages and
notifications. SystemUser class which is a base class will serve as a generalization for the
following classes: ConferenceSupervisor, SystemAdmin and StandardMember.
4.1.1.1 StdMember
Outsider class is for the ones StandardMembers who are not yet signed in corresponing
conference (conference object which has the ternary relation with the aforementioned
StdMember object) It will feature isSigned boolean type attribute indicating if he is invited or
not (this is important in case of invisible conference instances) and requestForSignIn methods
to make a request to in the conference. When this request is approved, business logic
implementation will change the role attribute of the Outsider object to the unsigned integer
defined for author in the conferenceRoles enumeration. Moreover, it will cast the type of
Outsider class to Author class (any conferenceRoles class and its inheritors are defined as
virtual)
Chair class is for the StdMember instances who are assigned to a particular conference
object as chair. Apart from the attributes and the methods derived from
ConferenceSpecificRole class, objects of this class will store the conferencePengingSignIn
list which basically lists SignInRequest objects from the Outsider objects who requested to
sign in the particular conference instance which the abovementioned association object has
the ternary association with. Moreover, it has a method called confirmSignInRequest and
35
rejectSignInRequest which allow objects of this class to confirm or reject the SignInRequest
objects. It has two more methods called assignPCMember and assignReviewer to designate
standard members as PCmember or reviewer respectively for a particular conference
instance.
Additionally, this class has a ternary association with Paper class which is for storing the data
associated with the paper submitted by the Author objects. Name of the association class is
ConfirmPaperSession. It has isEvaluated attribute which is of Boolean type. When chair
wants to see if he has already evaluated the submitted paper or not, GUI element which is
bonded to this attribute will react according to the state of above mentioned attribute. Author
class also has confirm and reject methods to confirm or reject the papers submitted. These
two methods will be invoked by the 'accept' and 'reject' buttons located in the conference
panel view of chair. Since chairs will be allowed to see the name of the association class has
also a method to see the name of the presenter of the paper. Note that Paper class has many-
to-many relationship with the Author class. Hence, there can be more than one owner of a
paper and vice versa. However chair of a conference can see only the presenter name.
As for, PCmember class, it will not implement any other attributes nor will have any
other attributes other than the ones inherited from its ancestor class. However, it will have a
ternary association with Paper class. One can think of this ternary relation just like the one
which Paper and Chair classes mutually have.
Author class is introduced to allow its instantiations to accumulate the paper-related data -
for now only the gradeAverage of the paper- of the author along with what inherited
attributes store. It will also feature methods such as showGrade, calcMean and submitPaper
each of which implements the functionality that its class name suggests respectively.
Reviewer class doesn‟t feature any other attributes or methods than the ones derived from
StdMember class. However, it will have an association class with Paper class. This
association class called ReviewPaperSession has an attribute named isReviewed denoting if
the reviewer has already reviewed the paper object which is in the ternary relation with the
reviewer object. This class provides a method to allow Reviewer object to grade the Paper
object which is in association with itself. It also features a method called seePaper to let
reviewer see the Paper when he presses corresponding button in reviewer panel.
Objects of participant class don‟t have any other attributes or methods than the ones
derived from StdMember class.
36
4.1.1.2 Conference Supervisor
4.1.2.3 SystemAdmin
Object(s) of systemAdmin class doesn't have any feature to take care of any conference or
user -related entity. Sole function of it is to update database.
In this section, conference-oriented classes will be discussed in detailed way even though
this class is mentioned for many times in the early sections.
37
4.1.2.1 Conference
This class will store the conference-specific data such as conf_id, conf_name, conf_date,
is_subConf, mother_id and conf_desc. Objects of this class can accumulate data of either a
single-track conference or any track of a mult-track conference along with the mother
conference. That‟s why, it has a binary association with itself. From an object-oriented
perspective, some conference objects (mother track of multi-track conference) can have a
one-to-many relation with the subtracks of the conference. This class is designed such a way
that it allows its objects to import the settings defined for the mother of them –if there any-. It
delivers this functionality by means of importSettingsFromMother method. This class has
two composition classes namely Settings and Schedule.
4.1.2.2 Settings
Setting class has a composition relationship with Rooms class which stores data about the
rooms where the presentations held during the conference. Associated data with the objects of
room class are name and capacity.
38
4.1.2.3 Schedule
Object of these classes will be responsible to store timetable of the conference and
manipulate this stored information when needed. Stored data is basically a Timetable array
(Timetable class is comprised of two unsigned integers namely presenter_id and slot_number
respectively) and isScheduled attribute which is of Boolean type. Manipulation takes place
through a method called addPresentation method. This will be invoked whenever a
PCmember or Chair object of the ConferenceSpecificRole object of the corresponding
conference confirms a paper to be presented. One other manipulation of the objects of a
Schedule class is realized by ConferenceSupervisor object when it invokes the
scheduleConference method of Schedule class to reorganize the timetable array mentioned
above. And finally, it features showSchedule method to return timetable scheduled.
This section will list all the system entities both located in Server-side implementation
by providing tables for all classes and association classes with their associated attributes,
methods and method parameters.
39
4.2.1 Classes
40
Notification Notification to be sent notificationMessage(uint) N/A
and received by from_ID(uint)
SystemUser objects
Message Message to be sent messageText(string) N/A
and received by from_ID(uint)
SystemUser objects
SignInRequest Request for Signing customMessage(string) N/A
In sent by an Outsider from_ID(uint)
Paper Paper to be submitted grade(float) N/A
by Author owner_id(uint)
paper_id(uint)
41
Chair showPresenterID():void
ConfirmPaperSessionB Associate a Paper, PCmember isEvaluated(Boolean) confirm():void
YPCmember Paper with a (many-to-many) reject():void
PCmember showPresenterID():void
ReviewPaperSession Associate a Paper, Reviewer isReviewed(Boolean) grade():void
Paper with a (many-to-many) seePaper():void
Reviewer
5. ALGORITHMS
MD5 hash is used for sending encrypted user credentials across a network within HTTP.
An MD5 hash contains a user name, password and the name of the realm. The realm is the
domain that will authenticate or reject the user‟s credential. MD5 consists of binary data,
typically no more than 160 bits and was assumed to have the following properties:
Hash length: Hash length is independent of the size of the message. Commonly 128 or
160 bits are used.
Determinism: Each time a particular message is hashed using the same algorithm, the
exact same hash value will be produced.
Irreversibility: All hashing algorithms are one way. It is not possible to discover the
password and any part of the password given the hash value alone.
A single bit „1‟ is appended to the end of the message. Then add enough zero bits to the
length of the message to 64 bits fewer than nearest multiple of 512.
64 bits are filled up binary representation of the length of the original message.
42
4 word buffers(32-bit register) A,B,C,D are initialized to following values:
○ A: 01 23 45 67
○ B: 89 ab cd ef
○ C: fe dc ba 98
○ D: 76 54 32 10
Message is processed in 512-bit blocks. Four similar rounds happen each of which consist
of 16 similar operations based on nonlinear function F, modular addition and left rotation. F
can have 4 functions each of which must be used only at one round. Buffers are updated after
each round.
Data representation is the most crucial part of implementing genetic algorithm since
this is how we reduce the theoretical problem size. In our case, we have three resources as
follows: days, hours, rooms. Besides, we have only one constraint: no resource should be
43
Figure 5.2 – 3D representation
of a gene individual which
suggests a scheduling for a
conference with resources of three
days, three rooms and three time-
TimeSlots
allocated by multiple presentations at the same time. To illustrate allocation of the resources
by presentations, figure below can be viewed. As for, representing the individuals (in our
case, concatenation of mathematical representation of presentation individual each of which
are wi th corresponding three-tuple coordinate in constraint cube (grid cube in the figure)
first, presentations should be represented. Each presentation can allocate only one three-tuple.
Each element of three-tuple denotes presentation day, presentation time-slot and presentation-
room. In this way, we can define individuals a vector of three-tuples. For example Let
*( )| + be the domain for IND individuals (having a
domain in base two will allows to convert data representation to binary string which will be
useful for genetic operators)
44
Since, individuals are represented as concatenation of binary strings, genetic operators
such as cross-over operator, mutuator and selection operators. Basically, after having a
randomly initialized vector of IND individuals(discussed above) and converting this to the
binary string which is the data representation of the corresponding individual gene) this
operators can operate on them to get fitter individuals and eliminate weak ones. So, in this
way the algorithm starts from an infeasible timetables, and tries to get a feasible one.
Termination condition for the genetic algorithm is the when some individual is fit
enough for a good scheduling (yielding a positive value) or enough time is elapsed. When
latter is the case, this will cause an exception to be handled first by server-side and then
client-side notifying user that scheduling operation is failed. Judging by the performance of
the genetic algorithm implementation of CONFMAN so far, such a condition will rise only
when invalid parameters are provided by conference chair.
Our aim is to minimize the attempt of the user for performing operations. Panels,
forms, etc. will open when the user . We do not need to redirect the user to a different page to
perform his tasks.
45
Figure 6.1 - Welcome Page
● When the user presses the „LOGIN‟ button, the login panel at Figure 6.2 appears on
the screen in overlayed form.
● When the user presses „REGISTER‟ button, the registration form at Figure 6.3
appears on the screen in overlayed form.
46
● „Home‟ link directs the page to the home page, „About‟ link gives information about
the software, „Contact‟ link contains contact info, „News‟ link shows latest updates
about CONFMAN.
● When the user clicks on the „Turkish flag‟, the page is translated into Turkish. When
the user clicks on the „English flag‟, the page is translated into English.
● When the user selects „Author Role‟ at the combo box, the page is loaded with the
interface as shown Figure 6.5.
● When the author presses „NEW SUBMISSION‟ button, the submission form at Figure
6.6 appears on the screen in overlayed form.
47
Figure 6.6 Submission Form
● Whenever the author presses „Add Author‟ button N times, the form expands N times
and inserts text fields for Author 2, Author 3, … , Author N+1.
● The user can change or remove existing submissions via „Change‟ and „Remove‟
links respectively. He can see the status of the submission(accepted, rejected).
● The user can invite a standard user to the system via pressing “INVITE NEW USER”
button. After pressing, Figure 6.7 appears on the screen.
● The user can invite a system-in user to the conference via “INVITE USER TO THE
CONFERENCE” button. After pressing, a text field appears on the screen as shown at
Figure 6.8
48
Figure 6.8 Conference Invitation
● When the user selects „Reviewer Role‟ at the combo box, the page is loaded with the
interface as shown Figure 6.9.
● When the reviewer click on the „Review‟ link, a review form appears on the screen in
the overlayed form as shown at Figure 6.10.
● The reviewer can edit or remove his submitted review by clicking on the „Change‟
and „Remove‟ links respectively.
● The user can invite a standard user to the system via pressing “INVITE NEW USER”
button. After pressing, Figure 6.7 appears on the screen.
49
● The user can invite a system-in user to the conference via “INVITE USER TO THE
CONFERENCE” button. After pressing, a text field appears on the screen as shown at
Figure 6.8
● When the user selects „Supervisor‟ at the combobox, the page is loaded with the
interface as shown Figure 6.11.
● When the chair clicks on the „CREATE CONFERENCE‟ button, a form appears on
the screen in overlayed form as shown at Figure 6.12.
● The user can invite a standard user to the system via pressing “INVITE NEW USER”
button. After pressing, Figure 6.7 appears on the screen.
50
● The user can invite a system-in user to the conference via “INVITE USER TO THE
CONFERENCE” button. After pressing, a text field appears on the screen as shown at
Figure 6.8
● Conference supervisor can recover and backup conference information via “Recover”
and “Backup” links respectively for each conference he has been assigned as
supervisor.
● When the user selects „Chair‟ at the combobox, the page is loaded with the interface
as shown Figure 6.13.
7. CONCLUSION
This document has been prepared for an effective implementation of CONFMAN. However, there
may be some changes at some parts of the system for the second semester.
51
52