You are on page 1of 22




CS 299


Kerem Kayabay

Performed at

T.C. Başbakanlık Devlet Planlama Teşkilatı


08.06.2009 – 06.07.2009

I’ve done my summer training at The Department of Management of Informatics of
Devlet Planlama Teşkilatı. The department had a problem with tracing the lent
equipment in the units, so they asked us to develop a web based program “Donanım
Takip Sistemi” (Hardware Tracing System) to solve the issue. Our team; consisting of
three members; designed, developed, and implemented this system, which can
manage the tracing of hardwares in the organization. Basically the program can lend,
trace, return an hardware, and show the history of hardware if it was borrowed by
someone in the past. After the detailed design, we used web based programming
languages ““, “” and “CSS” for implementation, and database programs
MS Access, MS SQL Server 2005/2008 for holding data. Before we started
implementing, I hadn’t used any of these languages, so I had to learn all these
languages during the summer training.

“Yönetim Bilgi Merkezi Dairesi” (The Department of Management of Informatics) can
be the most important department of Devlet Planlama Teşkilatı, as it is very important
for many organizations. There are multiple issues this department should manage for
the organization. First of all, it is the informatics department which is establishing,
maintaining and improving the network systems in all 20 floors. This requires huge
server systems which should improve and in the meantime remain protected by the
means of hardware and software, every single day. The personnel hardware needs
of all the organization is managed, and this requires up to date softwares either paid
or free to use. All the people working in Devlet Planlama Teşkilatı should be informed
connected and share their works in a common web environment called “intra”.
Informatics department is updating and protecting this environment. Apart from
these, informatics department also follows new technologies and decides whether
they are needed by the organization or not.

My motivation for choosing this department for summer training is, such departments
always have issues that needs engineering problem solving skills from design to
implementation. Their work is already overwhelmed them, and they always need
more solutions. I knew there is always work for students like me, who want to
develop and implement a concrete work, meanwhile learn new languages and
improve problem solving skills, in the summer training.

Hardware Tracing System is a product of a good teamwork. I’ve contributed to the

project in designing databases, algorithms, as well as GUI; coding, implementation,
testing and debugging. The system has a login page for security. Then we can divide
the project into four main parts; the main page which you have the options to manage
your admin account and theme, hardware wizard, record wizard and personnel list.
As a team we designed the whole system. I’ve contributed to coding, testing &
debugging of all the parts, especially the login page, main page and personnel list.
We didn’t start the project using “CSS” for GUI, but regarding the mess of theme
codes at a point, I’ve decided to learn and use CSS themes for our project. After
testing & debugging for my parts are finished, I mainly focused on GUI of the whole

The system can be said perfectly working as we finished our training, but we also
continued to help the department to implement the project.

The rest of the report consists of company information, detailed work done, and

Company Information
Main focus of the informatics department in Devlet Planlama Teşkilatı is maintaining
and improving the computer technology used in the organization. In our first day of
summer training as a team, our supervisor, and also the head of the department
Selçuk Kavasoğlu, gathered us to explain about the technologies used in Devlet
Planlama Teşkilatı.

Main network unit that connects the personnel in all 20 floors is on the 8th floor with
the informatics department. Apart from that in every 3 floors, there are small units
that connect these 3 floors. Then these small units are connected to the main
network unit on 8th floor.

There are multiple servers to run web based softwares, and to hold data for internal
and external uses. These are categorized as SQL servers, Access servers, Windows
servers for “.net” programming, and Linux servers for “php”. Staff in the department
named them with precious stones; such as Quartz, Opal, and Sapphire. For instance,
our Hardware Tracing System is using SQL Server 2005, and its database is now
running on Quartz which is a SQL server. The codes; written in “.net”, are working on
Opal, which is a Windows server.

These big servers and network unit are protected in both hardware and software by
some precautions. They are in a glass room in 8th floor, which is cooled regularly by
huge air conditioners. The department agreed by the security program “Labris” to
protect the software and data in servers.

As I mentioned before, organization use the web page “Intra” based on “.net”
programming for easily accessing and sharing information. The web page should
always be up to date. According to needs of organization, they should always write
new web based programs (like Hardware Tracing System written by us) working in
servers which are linked from “Intra”. These are managed by informatics department.

Lastly informatics department should provide all the hardware and software for all the
staff in Devlet Planlama Teşkilatı. This is probably the most difficult work they are
managing with; before the Hardware Tracing System they couldn’t trace any
hardware properly. In many cases they just lost where the hardware is gone when
someone borrowed it long ago.


Selçuk Kavasoğlu (

Serdar Şevket Sarıbay (

Adli Tosun (

Orkun Kaya (

Team Members:

Kerem Kayabay (Bilkent University, CS, 3rd grade)

Baki Can Öztepe (Bilkent University, CS, 3rd grade)

Ahmet Faruk Acar (Bilkent University, CTE, 4th grade)

Work Done
In the first day of summer training, the head of the department Selçuk Kavasoğlu
asked us if we want to work with hardware or software in our training. We wanted to
work with software, and we clearly indicated that we wanted to implement a concrete
project at the end of our training, which will be useful for the department.

Once we started our first day in training, we observed that there is such mess in
tracing, lending, and retrieving hardwares in the organization. It was even a big
problem to find our team two laptops working properly. They were holding paperwork
for records; once hardware is loaned, signed by the borrower and once returned,
signed by the staff who gave the hardware. They couldn’t even trace hardware
properly. We learned that sometimes they just lose the hardware.

Mr. Kavasoğlu gave us the Hardware Tracing System and expected from us to
design it for easy and effective use. He wanted us to use “.net” for programming and
in the first place, MS Access to hold data. After the whole program is finished, we
had problems with Access server, and we changed the database to first SQL server
2008, then 2005. Rarely, we used “java script” to open a pop up window or check
some parameters. We used Microsoft Visual Web Developer 2008 Express Edition
as it is a free program and easy to use in coding “”, “”, and for GUI,

We had the chances to freely design the whole system and decide how the program
can be more effective. Apart from the login and main pages, we divided the program
into 3: Hardware Wizard, Record Wizard and Personnel List. In Hardware Wizard,
user has options to add an hardware, change the properties of an hardware, and
remove an hardware out of usage. In Record Wizard, user has the options to lend an
hardware, return an hardware, look at the hardwares that are lent but not returned,
and look at the history. In Personnel List, user can add a staff, change the
information of a staff and retire a staff.

After we designed the GUI and algorithms of the system, we designed and
implemented the database. Each member of the team knew that a perfect database
should be planned and implemented in the beginning in order to implement the codes
regularly after.

Database Diagram:

Figure 1-A

According to our design, as the types and models of hardwares are repeating, there
are two separate tables “tur” and “model” for them. “tname” and “mname” are primary
keys in their own tables. They are connected to “donanim” table, which holds
hardware information. “dno” representing fixed assets number is primary key,
“tname” and “mname” are foreign keys.

The units of personnel are repeating, so we have “Birim” table which has the property
“BIRIMKODU” as primary key. This table is connected to “Kullanıcı” table that holds
information of personnel. As the network user names for each personnel are unique,
“NETWORK” is the primary key of this table, and “BIRIMKODU” is the foreign key.

For holding records, we have the “kayit” table, and every record in this table has a
unique id defined as “kid”, which is also the primary key. Every record has
“NETWORK” foreign key to represent who borrowed an hardware, and “dno” foreign

key to represent which hardware is borrowed. Then “kayit” table is connected to both
“Kullanici” and “donanim” tables.

Detailed explanations of tables forming the database:

Figure 2-A

“Birim” (unit) table holds data for “BIRIMKODU” (unit number), “BIRIMADI” (name
of the unit), and “KISA” (shortened version of the long name of the unit). (See Figure

Figure 2-B

“Kullanıcı” (personnel) table holds data for “Kimlik” (id which is from the beginning
1,2,3...), “NETWORK” (network user name), “ADI” (name), “SOYADI” (surname),
“E_posta” (e-mail adress), “BIRIMKODU” (unit number), “AYRILDI” (if the personnel
is retired or not), and “DAHILI_TEL” (internal telephone number). (See Figure 2-B)

Figure 2-C

“tur” (type) table holds data for “tname” (the type of the hardware: notebook, mouse,
projector, ... etc.). (See Figure 2-C)

Figure 2-D

model (model) table holds data for “mname” (the model of the hardware: HP,
Toshiba, Logitech, ... etc.). (See Figure 2-D)

Figure 2-E

“donanim” (hardware) table holds data for “tname” (type), “mname” (model), “dno”
(fixed assets number), “serino” (serial number), “not” (extra explanations for the
hardware if needed), “kullanimda” (if the hardware is borrowed and not returned),
“saglam” (if the hardware is broken down or not), “alinis_tarihi” (when the hardware is
bought), “garanti_bitis” (when the warranty is finishing), “firmaadi” (the company
where the hardware is bought from), and “kaldirildi” (if the hardware is no more in
usage). (See Figure 2-E)

Figure 2-F

“kayit” (record) table holds data for “kid” (unique id), “dno” (fixed assets number),
“NETWORK” (personnel network user name), “not” (extra explanations if needed-
different from the “not” in the hardware table), “verildigitarih” (when it is borrowed),
“teslimtarihi” (when the hardware should be returned), “getirdigitarih” (if returned,
when the personnel returned the hardware), and “saglam” (if the hardware is
returned safe). (See Figure 2-F)

Apart from these tables, we have other tables to hold users of the system and the
theme of the system.

Figure 2-G

“adminTable” (list of admins) table holds data for “kullanici_adi” (username to

enter the system), “sifre” (password kept in md5 format for security reasons) ,and
“NETWORK” (network user name is also needed to see if the user is authorized to be
an admin). (See Figure 2-G)

Figure 2-H

“tema” (theme) table holds data for “options” (theme name) and “current” (if it is the
current theme). (See Figure 2-H)

Hardware Tracing System as a program:

Login Screen:

In login screen, authorized staff can login to the system from Informatics Department
Entry, and other personnel can login with their network user names which are
identified by the system. If there is no match for network user name in the personnel
list table, program indicates that. Authorized personnel can write their user name and
password, and they are sent to cookies (password is sent to cookies in md5 format
for security reasons). If there is match with the network user name the admin is
logged in on his computer, he is directed to the main page. See Figure 3-A.

Figure 3-A

Main Page:

There is general information about the system in the main page with buttons to be
directed to Hardware Wizard, Software Wizard, or Personnel List. There is also a
picture link which directs you to options page. (See Figure 4-A)

Figure 4-A

Options Screen:

In the options screen, the user can manage his account password (See Figure 5-A)
or change the theme of the system (See Figure 5-B).

From this point, the screenshots will continue with the green theme as you can notice
in Figure 5-B, but it can be hard to understand if this report is printed black & white.

Figure 5-A

Figure 5-B

Hardware Wizard:

Once the user clicked Hardware Wizard Button, he can see all the hardwares with
brief information (See Figure 6-A).

The user may want to see the details of an hardware by pressing the Details Button
near the corresponding row (See Figure 6-B).

If some information should be changed about an hardware, it can be done with the
Change Button at the bottom of the detailed information of the hardware. A new
details form view is opened this time with text boxes instead of labels (See Figure 6-

By clicking add a new hardware, a message box is opened (coded in with
great effort on CSS), where you don’t have options to click the background. In the
message box, if type or model doesn’t exist for a new hardware, user can select
“*new type*” and a message box will open updating type and model tables (see
Figure 6-D).

If the user wants to see the detailed information of all the hardwares in a list, he can
just click Show Detailed Hardware List (See Figure 6-E).

Figure 6-A

Figure 6-B

Figure 6-C

Figure 6-D

Figure 6-E

Record Wizard:

In Record Wizard, firstly user should select what he wants to do (See Figure 7-A).

By selecting the lend an hardware, firstly he should filter who is the borrower by
entering partial name or surname to textboxes in order to search. Once he selected
who is the borrower then the user should filter through the hardwares. For instance if
the borrower wants a laptop with the model Toshiba, the user should select laptop as
type, Toshiba as model, and search through the available Toshiba laptops (not
borrowed, is working, is not out of usage). The borrowed date is automatically given
by the system and user can define a submission date. We decided to put here
internal phone number, because in our personnel list most of them are NULL, and
this is automatically updating our personnel list (See Figure 7-B).

Once the hardware is given, a pop-up window is opened to print paperwork of the
borrowing process (See Figure 7-C).

To return an hardware, user should filter either the hardware or the personnel and
select the corresponding row. User has options to deselect the working check box if
the hardware is broken after returned or to write notes about this record. The
returned date is automatically given by the system. (See Figure 7-D)

If the user selects the option to show not returned records, a list is shown with some
properties. It may be hard to notice in black & white printing; if everything is normal
about a record then the corresponding row is green. If there is no submission date is
entered, the corresponding row is shown in yellow. If the submission date is over,
then the corresponding row is red. Apart from these, user has options to update
submission date of a record, and show the paperwork of the record if somehow the
previous one is lost or pop up window is blocked. (See Figure 7-E)

The user has also has an option to look to the past records. (See Figure 7-F)

We used java script in Record Wizard to prevent wrong attempts in entering dates
and logic errors.

Figure 7-A

Figure 7-B

Figure 7-C

Figure 7-D

Figure 7-E

Figure 7-F

Personnel List:

This is the part where user can see all the personnel in the system, add a personnel
to the personnel table (See Figure 8-A), and change the information of a personnel
(see Figure 8-B). Notice that you can retire personnel by changing his information.

Figure 8-A

Figure 8-B

There were two engineers in our team and one CTE student, but in every single step
of our project, we tried to use our engineering skills depending on what we’ve learned
in first 2 years. We planned our database and the GUI of the system firstly on draft
papers and very neatly, as we knew the importance of a good design. The first week
of our training is passed with designing the system and learning web based
programming since we are new to “.net” programming and database management
systems. While we are designing the system, we thought how we can get to the
solution faster; how the system can work faster. Especially the design of the
databases was important on this case, and since we were new to database
management, we asked help from one of our supervisor Orkun Kaya who is a
computer engineer. When I look at the final work, I think this is just the perfect way to
read, update and delete data from our database and this is a product of good design.

After implementation, testing & debugging and preparing GUI with “CSS”
programming took all the time rest of our training. At the end of our training, just as
we planned, the system was working perfectly and ready to work on servers. As I
mentioned in the introduction part, Mr. Kavasoğlu wanted to use MS Access 2007 for
database and there was a huge problem when we tried this program on a Access
server. We learned that it derives from Microsoft and we have nothing to do about it,
we firstly changed our database to MS SQL Server 2008 then 2005. It was not easy
to use SQL suddenly, but we accomplished that. Now Hardware Tracing System is
running perfectly on a Windows server and the database is running on a SQL server.

I’ve contributed to the project in many ways during my summer training. We designed
all the database and GUI of the system together. In implementation, I mainly focused
on Personnel List, Options Screen and Login System. After I’ve finished security of
the system, and testing & debugging of these parts, I noticed the big mess of theme
codes in every single form or table including borders, border colors, border
diameters, page properties, fonts,...etc. I’ve decided to write “CSS” for the whole
system. Once I’ve finished a theme written in “CSS”, I’ve noticed it would be great if
there were multiple themes for the system. A new table is put to the database to
manage through 3 themes and I think it is worth dealing with codes to use multiple
themes in a web page. I must mention the great effort of me on the message box in
Hardware Wizard (as seen in Figure 6-D). The message box is formed by only using
“” and “CSS”. It took nearly a whole 3 days time to make it work perfectly. I
also have great effort with another team member Baki to run our system in servers
even after our training is completed. Finally, I’ve contributed to my team in
presentation of the system to the department.

Our team consisted of three members: Me, Baki Can and Faruk. I knew Baki as he is
a 3rd grade CS student in Bilkent as me. Faruk is a 4rd grade CTE student in Bilkent
University and unlike us he had experienced database management systems and
“.net” programming before. In design process and learning new languages, Faruk
helped us a lot. Later maybe he stayed a little far from us, or maybe his training
started and ended on different dates, the implementation process was mostly done
by Baki and me. We didn’t have any communication problems with Faruk and he
always tried new codes to make our project better. Hardware Tracing System is a
great example of teamwork in all professional manners.

We were working in a goverment organization where workers are very friendly towards other
workers and us. This frienship made us get familiar to the environment on the first day of our
training. Apart from ethical issues, professional issues are solved with ranks. All workers;
including us, has ranks in the organization, so there is no chance of conflints.

When a project comes to a department, workers try to find the optimal time, amount
of budget and labor needed to develop the project. They try to use the latest
technologies to build projects but, sometimes cost of technologies is very high that
the department can’t afford. If the project is not big, it is done by one or two personal
and engineering solutions used very rarely. However, if the project is big, for instance
the budget necessary is too high and the project will used in not just in one
department but the whole organization, then the department trusts engineering
solutions for working with groups, finding lowest budget, getting optimum
performance. In addition, department uses solutions of the trainers like us if they find
the work-done reliable. What they told us is, like we are gaining experience from the
training, they always learn new methods and technologies from trainers like us.

I’ve learned lots of new techniques in problem solving skills and new languages
during my summer training. If I list them in order:

Visual Web Developer 2008 Express Edition: The tool we used to implement all of
the codes. We selected this program as it is free, easy to learn and use, and easy to
test & debug.

HTML: This is the template for web pages and it is easy to master. Before the summer training, in the past I’ve experienced another web based
programming language “php”, so it was not very hard to learn as it is far more
easier to handle. I’ve learned by the resources from the internet. I’ve learned Visual Basic by actively using it with

CSS: It is not hard to learn the language “CSS”, but it is hard to deal with every single
detail in a theme.

Java Script: We used java script very rarely, for some pop-up pages and control

Microsoft Access 2007: Access is a very easy database program, but I do not
recommend anybody to use, as the problems deriving from Microsoft about this

Microsoft SQL Server 2005: It is much harder to use SQL Server then Access 2007.
We’ve learned this database management system by the help of the internet.

Microsoft SQL Server 2008: The improved version of SQL Server 2005. Although we
firstly changed our database from Access to this version, we couldn’t use it. The
servers of the organization don’t support this version.

List of our resources to learn new languages:



ASP.NET Essential Training from


Wrox Press Professional ASP.NET 3.5 In C# and VB

We also asked help from one of our supervisor Orkun Kaya as I mentioned before,
about fast database management.
Everything taken into consideration, Hardware Tracing System is a solid product of
good team work, design and good guidance of our supervisors. This web based
program now cleaned the mixed up paperwork in the department to trace lent

We brain stormed and designed the system according to our learning in our lessons
in Bilkent University. I’ve learned new languages, new techniques in problem solving,
and improved my engineering and testing & debugging skills.

Last but not least, I’ve experienced a short professional work experience that I think
very beneficial for me. After the summer training is over, I was in a blank; I didn’t
know what to do, I felt like I am doing something worthy. My sleeping and waking
times were all messed up. I saw how important it is to work professionally.