bilkent university engineering faculty department of computer

62
BILKENT UNIVERSITY ENGINEERING FACULTY DEPARTMENT OF COMPUTER ENGINEERING CS 299 SUMMER TRAINING REPORT Baki Can Öztepe 20700603 Performed at T.C. Başbakanlık Devlet Planlama Teşkilatı Müsteşarlığı 08.06.2009 – 06.07.2009 1

Upload: oztepe7172

Post on 18-Nov-2014

134 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bilkent University Engineering Faculty Department of Computer

BILKENT UNIVERSITY

ENGINEERING FACULTY

DEPARTMENT OF COMPUTER ENGINEERING

CS 299

SUMMER TRAININGREPORT

Baki Can Öztepe

20700603

Performed at

T.C. Başbakanlık Devlet Planlama Teşkilatı Müsteşarlığı

08.06.2009 – 06.07.2009

1

Page 2: Bilkent University Engineering Faculty Department of Computer

Abstract:

I have managed to complete my summer training at Devlet Planlama Teşkilatı(State

Planning Organization) under Yönetim Bilgi Merkezi Dairesi (The Department of

Management of Informatics). During the summer training a complete web based program

named Donanım Takip Sistemi(Hardware Tracing System) has been developed that may

be used to record all hardware the organization possesses, whom they are lent to and

keeps the track of the general information of every single personal in the organization

using contemporary database systems. Other than that every personal who has access to

Intra(the inner network of the Organization) is simply able to see their hardware borrowing

status. Our team consisted of three members including me, we have worked on different

part of the program simultaneously and helped each other when we needed. During the

development process, many advancing technologies were used including Asp.Net, Vb.Net,

Ms Access, Ms Sql server 2005 and 2008. Formal Turkish language was used in

programming and GUI rather than English due to the specific needs of the organization.

Introduction

The name of the organization I have worked for is T.C Başbakanlık Devlet Planlama

Teşkilatı Müsteşarlığı(T.R. Prime Ministry State Planning Organization) under the

department of Yönetim Bilgi Merkezi Dairesi(The Department of Management of

Informatics). The main focus of informatics department is to provide the personal of whole

organization with the contemporary software, maintain and improve these particular

software and the network systems used in the organization. They are also responsible for

the condition of the hardware and their lending status for organization personals. The

reason we chose this organization is to gain experience at a government organization and

observe how they solve problems that require computer engineering problem solving skills.

Another reason we chose this place as our summer training is because we wanted to work

on software solutions rather than hardware technologies.

2

Page 3: Bilkent University Engineering Faculty Department of Computer

I have contributed to many significant parts of the Hardware Tracing System including

designing the program, extracting the flowcharts, coding the algorithms, forming the

connection of database with program, testing & debugging. The motivation behind the

effort is vastly relevant to our enthusiasm to learn new field technologies such as .Net and

Sql. The result we achieved after our hard work was nearly perfect in terms of accuracy of

what we were required to comply. Our program consists of four parts regarding the user

interface. Personal List, Hardware Wizard, Record Wizard and User loan status page. I

had influence on all of these parts especially Record Wizard, User borrowing status page

and Hardware Wizard. We had problem installing the ms Access database to the server

since we realized it was not a supported environment we had to switch to sql server. At

first I migrated the database to sql server 2008, thinking the 2005 version at the server

could handle it but it could not so I had to export the whole database to Sql server 2005.

All the problems regarding database has been resolved. In short, as an Individual I have

mainly worked on coding of these particular parts, setting up and the migration between

different database environments which I think makes me an active and a useful member of

our team. This program is particularly important because it eliminates most of the

confusing and untidy paperwork of lending unit in the organization. Not to mention the

easiness to trace all the hardware lending records.

This report follows the guideline standards: company information, detailed work done, and

conclusion.

Company information:

the informatics department in Devlet Planlama Teşkilatı is responsible for maintaining and

improving the computer technology used in the organization. Selçuk Kavasoğlu, the head

of the department introduced the technologies used in Devlet Planlama Teşkilatı.

The network system used in the organization is quite complex. The main unit is located at

8th floor, which is where informatics department is. From all 20 floors, in every 3 floors in

the building the small units connect to each other. These small units are connected to the

main unit at informatics department.

A number of servers are used in order to operate web programs, and different types of

3

Page 4: Bilkent University Engineering Faculty Department of Computer

databases. Since each technology uses different operating system, on these servers

Windows and Linux operating systems are used. For instance, .Net scripting requires

Windows OS whilst Php requires Linux servers.

Servers and network units, which are located at 8th floor are maintained and checked

regularly. These hardware are cooled by two professional air conditioners that does not

work simultaneously but complementing each other when one is not operational. Labris

and Kaspersky AntiVirus systems are used for security issues in the organization.

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.

The intranet technology(Intra) is actively used by personals and the employees at the

informatics department. An intranet is a private network that uses Internet protocols to

securely share any part of an organization's information or operational systems within that

organization. The informatics department uses the intra to provide the web based

programs to the personals, introduce new software to personal publish announcements.

This page is updated regularly by the informatics department.

Lastly informatics department provides the hardware and software for employees in the

institute.

Team Members:

4

Page 5: Bilkent University Engineering Faculty Department of Computer

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

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

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

Supervisors:

Selçuk Kavasoğlu ([email protected])

Serdar Şevket Sarıbay ([email protected])

Adli Tosun ([email protected])

Orkun Kaya ([email protected])

Work Done:

The purpose of the main project is to store the registration data of the organization

personal, the hardware that organization possesses, the lending status which help the

operator of the program organize his work and borrowing status page which is built for

personal to track their loans. The general basis of the program is that the operator adds a

personal and a hardware to the system with the help of hardware wizard and personal list.

Afterwards when the hardware is lent to a particular personal the registration wizard

records these two keys. And when a particular hardware is returned the registration

allocated for the specific personal and hardware is updated accordingly.

The parts I have contributed to the project(which are obviously a significant part of the

project) are:

Designing the workflow and database tables

Creating and modifying the database and the migration between Ms Access, Ms Sql

Server

Coding of Registration Wizard, Hardware Wizard, Personal List, User loan status

page

Testing and debugging of Registration Wizard, Hardware Wizard, User loan status

page.

Attending to the presentation of the finished work to the employees.

5

Page 6: Bilkent University Engineering Faculty Department of Computer

The work I have done is particularly significant because it occupies the backbone of the

project. I have mastered the use of Ms Access, Ms Sql Server and Visual Web Developer

which helped the project considerably. I am particularly responsible for the coding of

Registration wizard, hardware wizard and User loan status page.

My motivation behind the particular work that I have done is related to many factors such

as, the enthusiasm to learn new technologies(.Net, Sql Language), my responsibilities

towards team members, the will to successfully complete summer training for the sake of

organization and my responsibility to Bilkent University. The work I have done was entirely

required because it occupies most significant parts of the main project which helps the

program to work correctly.

Hardware/software environment used:

Microsoft server 2003 64 bit, .Net Technologies, Ms Sql technologies

Software tools used:

Visual Web Developer 2008 Edition, Sql Server 2005, Sql Server 2008, Ms Access 2007

Design:

In the summer training I have learned to design database tables. As from Figure 1-A, the

database diagram and the relationship between tables could be seen. The vertical key

images indicate that field is a primary key. Horizontal ones that end with infinite sign

indicate a relationship between two tables.

6

Page 7: Bilkent University Engineering Faculty Department of Computer

Figure 1 - A

For instance, in the 'kayit' table 'kid' is the primary key and 'NETWORK' and 'dno' are

foreign keys transferred through the tables 'Kullanıcı' and 'donanim' In short, a registration

entry consists of a Personal and a Hardware.

Details Of Tables:

tur(Type Table)

Figure 2 - A

This table stores all hardware types. tname field for type name. See Figure 2 - A

model(Model Table)

7

Page 8: Bilkent University Engineering Faculty Department of Computer

Figure 2 - B

This table stores all hardware model. mname field for type name. See Figure 2 - B

donanim(Hardware Table)

This table stores hardware information. It has Type and Model as foreign keys, dno as

primary key, serino(serial number), info,

kullanımda(isInUse),çalışır(isWorking),alinis_tarihi(date bought), garanti_bitis(date

warranty ends), firmaadi(firm name), kaldırıldı(isObsolete). See Figure 2 - B

Figure 2 - C

kullanıcı(Personal Table)

This table stores personal information. It has BIRIMKODU(departmentNo) as foreign key.

NETWORK as primary key, Id, ADI(Name), SOYADI(Surname), E_posta(eMail),

AYRILDI(has left), DAHILI_TEL(tel No) regarding personal data. See Figure 2 - D

8

Page 9: Bilkent University Engineering Faculty Department of Computer

Figure 2 - D

Birim(Department Table)

This table stores all departments in the organization. It has BIRIMNO(departmentNo) as

primary key, BIRIMADI(departmentName) and KISA(short DepartmentName). See Figure

2 - E

Figure 2 - E

9

Page 10: Bilkent University Engineering Faculty Department of Computer

Kayit(Registration Table)

This table stores registrations. It has kid as primary key. Dno and NETWORK as foreign

keys from hardware and personal table. Info field is used to record any comments made

on the particular registration. verildigitarih(Date lent) and teslimtarihi(expected delivery

date) are recorded. Upon delivery, getirdigitarih(delivery date) and if the hardware is

saglam(undamaged) are recorded onto the same entry for the registration. See Figure 2 -

F

Figure 2 - F

adminTable(Admin Table)

This table stores administrator names and passwords. Id for admin,

kullanici_adi(username), sifre(password, md5 hash of original password), NETWORK are

stored in adminTable. See Figure 2 - G

Figure 2 - G

tema(Theme table)

This table stores the graphical themes of the program which are blue, green and black at

the moment. Options for determining the name of theme and current to determine the

current theme allocated for the program. If that theme is current, the current field is set to 1

otherwise 0. Figure 2 - H

10

Page 11: Bilkent University Engineering Faculty Department of Computer

*NETWORK field mentioned above corresponds to domain of the computer network

names allocated for each personal such as 'DPTDOMAIN\ataban', 'DPTDOMAIN\

aiskender' .

Apart from modeling the database before implementation, the graphical user interface was

thoroughly discussed and sketched during design. The following section consists of the

real screenshots of the program which are nearly identical to the sketches drawn during

design process.

11

Page 12: Bilkent University Engineering Faculty Department of Computer

Login Screen

Figure 3 – A(Login screen)

The operator of the program is welcomed with the login screen.

See Figure 3 -A. The administrator may enter the program by typing his username and

password which are checked by adminTable(see figure 2 -G) Or a personal may login to

see his loans. In figure 3 – A, our domain address is checked from personal table, to see if

we are a legitimate personal of the organization(see Figure 2- D)

12

Page 13: Bilkent University Engineering Faculty Department of Computer

Home Page

Figure 3 – B(Home Page)

Upon the login of Administrator, page is redirected to home page. There are 3 significant

pages, that are, Hardware wizard, Records Wizard, Personnel List. And below that admin

can select options to change the theme of the site(Which affects all administrators'

options) or change his password. The theme options operates with css classes. New

admins may only be added at database level.

13

Page 14: Bilkent University Engineering Faculty Department of Computer

Personal List

Figure 4 – A(personal List)

If Personal List button is clicked,

the user is redirected to the page shown in 4 – A. All personal who works under the

organization are listed with details.

Adding new personal info or editing an existing one

In which, the administrator may add a new personal to the database or modify an existing

one. To insert new personal, administrator is expected to enter the NETWORK, name,

surname, email and telephone number then press add button. After pressing the add

button page is redirected to a prompt screen. See figure 3 – D

14

Page 15: Bilkent University Engineering Faculty Department of Computer

Figure 4 – B(personal adding prompt screen)

In this page admin may check the data if they are correct and select the corresponding

department and proceed or cancel the process then return to original personal list page.

15

Page 16: Bilkent University Engineering Faculty Department of Computer

Hardware Wizard

Figure 5 – A(hardware wizard)

If Hardware wizard button is clicked, the page is redirected to the page shown in 5 – A. In

this page Admin may see all hardware that are possessed. May click the details button

near a particular hardware to see additional details.

16

Page 17: Bilkent University Engineering Faculty Department of Computer

Figure 5 – B(details pane)

Editing hardware info

If the details button is clicked a layer shows up at the right of the table, that lists all details

about the selected hardware that can be edited. If the edit button is clicked certain

alterable labels turn into an editable box.

Figure 5 – C (details pane, edit)

The type and model of the hardware may be selected from a dropdown list, serial Number,

info, Date bought etc may be edited via textbox. And if the hardware is undamaged or

removed can be changed with the help of checkbox components. However The stock

number or if the hardware is in use may not be changed because the value in the table

may be related to other tables.(This topic will be covered afterwards.) Then he may

choose to apply the modifications or not. The page returns to original form(Figure 5 - B) in

either case. The administrator may want to view the removed hardware in particular by 17

Page 18: Bilkent University Engineering Faculty Department of Computer

changing the checkbox state above the original table. In that case only removed hardware

are shown. Apart from these he may choose to view the detailed hardware list by pressing

the corresponding button.

Figure 5 – D(Detailed hardware list)

In that case the hardware list transforms into the one like in Figure 5-D thus enabling the

administrator to see every single detail about every hardware comprehensively.

Adding a new Hardware

Or he may decide to add a new hardware to the database, by clicking the corresponding

button a label appears like in figure 5-E and makes everything inside that page not

clickable.

18

Page 19: Bilkent University Engineering Faculty Department of Computer

Figure 5 – E (adding a new hardware)

In this menu, admin selects the type or model from the dropdown list or may add another

one.(Figure 5 – F)

Figure 5 – F (Adding a new model into system)

After entering all data, he may confirm or cancel. If he proceeds, systems checks if the

variables are acceptable(for example, date format)

19

Page 20: Bilkent University Engineering Faculty Department of Computer

Record Wizard

If Record wizard button is clicked, the page is redirected to the page shown in 6 - A.

Figure 6 - A

In hardware wizard page, there are four options an administrator may select.

Lend a hardware

Return a hardware

View the current records

View the old records

20

Page 21: Bilkent University Engineering Faculty Department of Computer

Lend hardware

Figure 6 – B(Lend a hardware)

At the beginning of this stage only personal search box is visible. The personal who the

hardware will be lent to is searched by name, surname or both. (The Filtering used in this

system is dynamic, means multiple filtering may be used)

All that fits the search criteria is listed in the upper right list. After the personal is selected

the hardware search box becomes visible. Administrator may filter his search by Type,

Model, Stock Number, or Serial Number. After pressing the search button all hardware that

fits the criteria defined is listed beneath the other list. After selecting the hardware that is to

be lent, the last prompt panel appears. In which, the date information is to be

entered(these fields are optional) and if the telephone number of the personal is missing, it

may be entered too. Lastly Admin may approve the lending or cancel it.

21

Page 22: Bilkent University Engineering Faculty Department of Computer

If confirmed, personal and hardware information in addition to date and telephone info is

passed through cookies to a pop up page called Temporary Debt Receipt that is required

to be printed by administrator. See figure 6 – C

Figure 6 - C

In this popup window, there is nothing editable. It should be printed to be signed by the

lender and the borrower due to strict paperwork policy of organization. This paperwork

could not be eliminated because the organization yet does not have digital signature

system and does not trust lending works that are not protected by signatures..

22

Page 23: Bilkent University Engineering Faculty Department of Computer

Return hardware

Figure 6 – D(Return a hardware)

As it can be seen in figure 6 – D, the administrator may search through the records by

personal information of Hardware information.(Again the filtering is dynamic, multiple

criteria may be used to filter the search) In figure 6 – D, there are two personal named

Ahmet who were lent Notebooks. The surname of one of them is Dincer. He is the one

who we gave the laptop in figure 6 – B. After selecting the appropriate record, the date he

has returned the hardware is entered, any objections regarding the hardware(for example

whether he contaminated the notebook with a virus) are written, and if the hardware is

damaged or not are entered with checkbox. Such information are not obligatory, but just 23

Page 24: Bilkent University Engineering Faculty Department of Computer

help to trace the data easier. Near that panel, detailed information about the personal and

the hardware are displayed. Below that, admin may confirm the returning or cancel. When

confirmed, the record is updated by inserting the returning date(and if it is undamaged) to

the existing record on database.

View current records

Figure 6-E(View the current records)

Figure 6-E illustrates the page reserved for viewing the current records. At the top, the list

consists of the records which lack the delivery date(not the expected delivery date) in

order to filter the records that are current. The red rows indicate that the borrower has

24

Page 25: Bilkent University Engineering Faculty Department of Computer

failed to return the hardware at time, green indicates the opposite and yellow rows are for

those that does not have expected delivery dates, which means they are lent for an

undetermined duration. Below, if the button at one of the rows are clicked the panel below

becomes visible and shows all of the details of record. Additionally, the dates are editable

and the Temporary Debt Receipt can be summoned again for printing.

View old records

Figure 6 - F(View the old records)

25

Page 26: Bilkent University Engineering Faculty Department of Computer

The figure 6 – F illustrates the page reserved for viewing the old records. The List above

consists of all records which does not have a null value at return date. Therefore all

records in this list are the personal who has returned their hardware. When The details

button at one of the row is clicked, the information panel below regarding the personal and

hardware info of that row becomes visible.

Apart from all of these administrator operations, an employee of the organization may login

to see his loans. The program simply matches the domain name of the employee with the

one in personal database. If the personal exists, they are given permission to view all

loans of that user. There is no password protection.

Options Panel

If the options icon is clicked the page is redirected to the one in figure 7 - A

At this stage admin may choose to change his password, change the theme of the

program, or just go back to the homepage.

Figure 7 – A(options)

26

Page 27: Bilkent University Engineering Faculty Department of Computer

Changing the password:

Figure 7- B(password options)

In figure 7 – B the admin is prompted to enter the old password once and the new

password twice for security. When confirmed, the database is updated.

Changing the Theme:

Figure 7 – C(theme options)

In figure 7-C the admin may choose the color of the website which are (blue, green and

red at the moment) to change the general color of the website. When one of the colors are 27

Page 28: Bilkent University Engineering Faculty Department of Computer

selected the piece of code at the beginning of each page determines the selected color

and chooses the css style accordingly.

User loan status page

Figure 8 - A(Login Screen )

In Figure 8 - A it can be seen that the system recognizes me as a personal of organization

and prompts me to proceed to see my loans at the left part. Or instead I can just login as

Administrator, if I am one. In figure 3 - A my name is not included in the personal database

so I am not recognized as an employee.

Figure 8 - B(User loan status page)

When the employee logins as user, they may see all of their loans. In Figure 8 - B it can be

seen that I have been lent a Toshiba Notebook. If I have borrowed more that one item they

would all be listed in the view. This way, all employes are able to track what they have

borrowed and when they have to return it.

To illustrate the algorithms used, the codes of hardware wizard will be examined.

To present a typical database table, visual web developer provides components

28

Page 29: Bilkent University Engineering Faculty Department of Computer

such as gridView, DetailsViw, FormView. These components makes everything

easier for the programmer. Since we have created a moderate sized program, we

have chiefly used these built-in components rather than primitive structures.

Visual web developer provides a complete design pane for the developer. In this

pane the visual appearance could be observed, and components may be added.

Figure 9-A

Fi

gure 9-B

Figure 9-A and Figure 9-B is the screenshot of the design pane allocated for

HardWare Wizard.

29

Page 30: Bilkent University Engineering Faculty Department of Computer

In Figure 9 - A, left table is GridView1, right table is FormView1, below table is

GridView2. The names have been appointed automatically by Web Developer.

Above, there are two buttons. The left one makes the pane in Figure 9-B visible,

and the right one hides GridView1 and makes GridView2 visible. The buttons below

that is used to navigate through the website. In figure 9 - A, at bottom position there

are 5 objects, these are DataSource structures that webDeveloper provides. We

have used SqlDataSource to populate the components because MsSql has been

used as database system. If we have used Ms Access, we would have used

AccessDataSources.

Figure 10 - A

Figure 10 - A shows the components and data sources related to database

operations that are provided by Visual Web Developer.

The asp code to create the GridView 1 is the following piece.

<asp:GridView HorizontalAlign="Center" ID="GridView1" runat="server" CssClass="donanim_gridview" CellSpacing="2" CellPadding="4" AllowSorting="True" AutoGenerateColumns="False" DataKey-Names="dno" DataSourceID="SqlDataSource5" EmptyDataText="Şu an kayıtlı herhangi bir donanım bulunmamaktadır." GridLines="None" > <RowStyle BackColor="#f4f4f4" />

30

Page 31: Bilkent University Engineering Faculty Department of Computer

<Columns> <asp:CommandField ButtonType="Button" SelectText="Ayrıntılar" ShowSelectButton="True"> <ControlStyle CssClass="donanim_control"></ControlStyle> </asp:CommandField> <asp:BoundField DataField="tname" HeaderText="Tür" SortExpres-sion="tname" /> <asp:BoundField DataField="mname" HeaderText="Model" SortExpres-sion="mname" /> <asp:BoundField DataField="dno" HeaderText="Demirbaş No" Read-Only="True" SortExpression="dno" /> <asp:BoundField DataField="serino" HeaderText="Seri No" SortExpression="serino" /> <asp:BoundField DataField="kaldirildi" HeaderText="kaldirildi" SortExpression="kaldirildi" Visible="False" /> </Columns> <SelectedRowStyle CssClass="donanim_selected" /> <HeaderStyle CssClass="donanim_header" ForeColor="#f4f4f4"/> <AlternatingRowStyle BackColor="#e1e1e1" /> </asp:GridView>

</td>

DataSourceID specifies the dataSource to populate the GridView, in this case

SqlDataSource5 has been used whose corresponding code is:

<asp:SqlDataSource ID="SqlDataSource5" runat="server" ConnectionString="<%$ ConnectionStrings:mydonanimtakipdbConnectionString %>" SelectCommand="SELECT [tname], [mname], [dno], [serino],[kaldirildi] FROM [donanim] WHERE ([kaldirildi] = @kaldirildi)"> <SelectParameters> <asp:Parameter DefaultValue="False" Name="kaldirildi" Type="Boolean" /> </SelectParameters> </asp:SqlDataSource>

ConnectionString is the string that is used to connect the database in this case we are

getting the string from the Web.config. The following code is small section in Web.config

file that is allocated for connection string. Currently there is only one string written,

because we only connect to a single database. We can add as many connection strings as

we want using proper format.

<connectionStrings> <add name="mydonanimtakipdbConnectionString" connectionString="Data Source=kuvars;Initial Catalog=donanimtakipsistemiDB;User Id=dtsuser;Pass-word=qwertyu7;MultipleActiveResultSets=True" providerName="System.Da-ta.SqlClient"/></connectionStrings>

The name of this string is: "mydonanimtakipdbConnectionString"

Its data source is: "kuvars" which is the name of the sql server name at the organization.31

Page 32: Bilkent University Engineering Faculty Department of Computer

Initial catalog is the name of the particular database of the server.

Id and Password is used to securely connect to the database.

MultipleActiveResults is used to establish multiple connections to the database at one

time.

SelectCommand provides the string to select data entries from the database according to

some rules. In this case, ="SELECT [tname], [mname], [dno], [serino],[kaldirildi] FROM

[donanim] WHERE ([kaldirildi] = @kaldirildi)"

[tname], [mname], [dno], [serino],[kaldirildi] are selected from the [donanim] table where

kaldirildi is equal to some parameter. the "@" sign means that the following keyword is a

parameter that is to be defined. This case the parameter is not bound to the checkbox that

is used to view the hardware that are removed but when the checkbox state is changed

the Select Command alters. Which is done at the server-side scripting that .Net

environment provides.

Protected Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles CheckBox1.CheckedChanged If CheckBox1.Checked Then SqlDataSource5.SelectCommand = "SELECT tname, mname, dno, serino, kaldirildi FROM donanim where kaldirildi = 1" Else SqlDataSource5.SelectCommand = "SELECT tname, mname, dno, serino, kaldirildi FROM donanim where kaldirildi = 0" End If GridView1.DataBind() GridView1.SelectedIndex = "-1"

End Sub

The code above is executed at the server not the client's browser because it is a visual

basic function.

The following code is corresponds to FormView1:

<asp:FormView ID="FormView1" runat="server" DataKeyNames="dno" DataSourceID="SqlDataSource4" CssClass="donanim_formview" Cell-Padding="4" CellSpacing="2" Visible="false"> <RowStyle BackColor="#f4f4f4" /> <EditItemTemplate> <table> <tr align="left"> <th align="right">Demirbaş No:</th> <td><asp:TextBox ID="dnoLabel" runat="server" Enabled="false" CssClass="donanim_textbox" Text='<%# Eval("dno") %>' /></td> </tr> <tr align="left">

32

Page 33: Bilkent University Engineering Faculty Department of Computer

<th align="right">Kullanımda:</th> <td><asp:CheckBox ID="kullanimdaCheckBox" runat="server" Checked='<%# Bind("kullanimda") %>' Enabled="false"/></td> </tr> <tr align="left"> <th align="right">Tür:</th> <td><asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="tnameSqlDataSource" DataTextField="tname" DataValueField="tname" SelectedValue='<%# Bind("tname") %>' Css-Class="donanim_drop"> </asp:DropDownList></td> </tr> <tr align="left"> <th align="right">Model:</th> <td><asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="mnameSqlDataSource" DataTextField="mname" DataValueField="mname" SelectedValue='<%# Bind("mname") %>' Css-Class="donanim_drop"> </asp:DropDownList></td> </tr> <tr align="left"> <th align="right">Seri No:</th> <td><asp:TextBox ID="serinoLabel" runat="server" CssClass="do-nanim_textbox" Text='<%# Bind("serino") %>' /></td> </tr> <tr align="left" valign="top"> <th align="right">Bilgi:</th> <td><asp:TextBox ID="TextBox1" runat="server" Css-Class="donanim_textbox" Height="60px" Text='<%# Bind("not") %>' TextMode="Multi-Line" Width="200" ></asp:TextBox></td> </tr> <tr align="left"> <th align="right">Sağlam:</th> <td><asp:CheckBox ID="saglamCheckBox" runat="server" Checked='<%# Bind("saglam") %>' /></td> </tr> <tr> <th align="right"> Kaldırıldı:</th> <td> <asp:CheckBox ID="kaldirildiCheckBox" runat="server" Checked='<%# Bind("kaldirildi") %>' /> </td> </tr> <tr align="left"> <th align="right">Alış Tarihi:</th> <td><asp:TextBox ID="alinis_tarihiLabel" runat="server" Css-Class="donanim_textbox" Text='<%# Bind("alinis_tarihi", "{0:d}") %>' /></td> </tr> <tr align="left"> <th align="right">Garanti Bitiş Tarihi:</th> <td><asp:TextBox ID="garanti_bitisLabel" runat="server" Css-Class="donanim_textbox" Text='<%# Bind("garanti_bitis", "{0:d}") %>' /></td>

33

Page 34: Bilkent University Engineering Faculty Department of Computer

</tr> <tr align="left"> <th align="right">Alınan Firma:</th> <td><asp:TextBox ID="firmaadiLabel" runat="server" CssClass="do-nanim_textbox" Text='<%# Bind("firmaadi") %>' /></td> </tr> <tr> <td></td> <td><asp:Button ID="UpdateButton" runat="server" CausesVali-dation="True" CommandName="Update" Text="Devam" CssClass="donanim_con-trol"/> <asp:Button ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="İp-tal" CssClass="donanim_control"/></td> </tr> </table> </EditItemTemplate> <ItemTemplate> <table> <tr align="left" valign="top"> <td width="50%"></td> <td width="50%" align="right"> <asp:ImageButton ID="image1" runat="server" ImageUrl="~/images/cross.png" Height="25px" Width="25px" onclick="image1_Click" /></td> </tr> <tr align="left"> <th align="right">Demirbaş No:</th> <td><asp:Label ID="dnoLabel" runat="server" Text='<%# Eval("dno") %>' /></td> </tr> <tr align="left"> <th align="right">Kullanımda:</th> <td><asp:CheckBox ID="kullanimdaCheckBox" runat="server" Checked='<%# Bind("kullanimda") %>' Enabled="false" /></td> </tr> <tr align="left"> <th align="right">Tür:</th> <td><asp:Label ID="tnameLabel" runat="server" Text='<%# Bind("tname") %>' /></td> </tr> <tr align="left"> <th align="right">Model:</th> <td><asp:Label ID="mnameLabel" runat="server" Text='<%# Bind("mname") %>' /></td> </tr> <tr align="left"> <th align="right">Seri No:</th> <td><asp:Label ID="serinoLabel" runat="server" Text='<%# Bind("serino") %>' /></td> </tr> <tr align="left" valign="top"> <th align="right">Bilgi:</th>

34

Page 35: Bilkent University Engineering Faculty Department of Computer

<td><asp:TextBox ID="TextBox1" runat="server" Css-Class="donanim_textbox" Height="60px" ReadOnly="True" Text='<%# Bind("not") %>' TextMode="MultiLine" Width="200" ></asp:TextBox></td> </tr> <tr align="left"> <th align="right">Sağlam:</th> <td><asp:CheckBox ID="saglamCheckBox" runat="server" Checked='<%# Bind("saglam") %>' Enabled="false" /></td> </tr> <tr align="left"> <th align="right"> Kaldırıldı:</th> <td> <asp:CheckBox ID="kaldirildiCheckBox" runat="server" Checked='<%# Bind("kaldirildi") %>' En-abled="False" /> </td> </tr> <tr align="left"> <th align="right">Alış Tarihi:</th> <td><asp:Label ID="alinis_tarihiLabel" runat="server" Text='<%# Bind("alinis_tarihi", "{0:d}") %>' /></td> </tr> <tr align="left"> <th align="right">Garanti Bitiş Tarihi:</th> <td><asp:Label ID="garanti_bitisLabel" runat="server" Text='<%# Bind("garanti_bitis", "{0:d}") %>' /></td> </tr> <tr align="left"> <th align="right">Alınan Firma:</th> <td><asp:Label ID="firmaadiLabel" runat="server" Text='<%# Bind("firmaadi") %>' /></td> </tr> <tr align="left"> <td></td> <td><asp:Button ID="EditButton" runat="server" CausesValida-tion="False" CommandName="Edit" Text="Düzenle" CssClass="donanim_control"/> </td> </tr> </table> </ItemTemplate> <EditRowStyle BackColor="#f4f4f4" />

</asp:FormView>

There are two states of the FormView1 which are Viewing and editing. SqlDataSource4 is

used as data source. Whose code is:

<asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:mydonanimtakipdbConnectionString %>" SelectCommand="SELECT [tname], [mname], [dno], [serino], [not], [kullan-imda], [saglam], [alinis_tarihi], [garanti_bitis], [firmaadi], [kaldirildi] FROM [donanim] WHERE ([dno] = @dno)"

35

Page 36: Bilkent University Engineering Faculty Department of Computer

UpdateCommand="UPDATE [donanim] SET [tname] = @tname, [mname] = @mname, [serino] = @serino, [not] = @not, [kullanimda] = @kullanimda, [saglam] = @saglam, [alinis_tarihi] = @alinis_tarihi, [garanti_bitis] = @garanti_bitis, [firmaadi] = @firmaadi, [kaldirildi] = @kaldirildi WHERE [dno] = @dno"> <SelectParameters> <asp:ControlParameter ControlID="GridView1" Name="dno" PropertyName="SelectedValue" Type="String" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="tname" Type="String" /> <asp:Parameter Name="mname" Type="String" /> <asp:Parameter Name="serino" Type="String" /> <asp:Parameter Name="not" Type="String" /> <asp:Parameter Name="kullanimda" Type="Boolean" /> <asp:Parameter Name="saglam" Type="Boolean" /> <asp:Parameter DbType="DateTime" Name="alinis_tarihi" /> <asp:Parameter DbType="DateTime" Name="garanti_bitis" /> <asp:Parameter Name="firmaadi" Type="String" /> <asp:Parameter Name="kaldirildi" Type="Boolean" /> <asp:Parameter Name="dno" Type="String" /> </UpdateParameters>

</asp:SqlDataSource>

Select command is simply used for Viewing and Update Command is for editing(updating).

@dno parameter is bound to the controller that is GridView1, which means when an item

is selected from GridView1 "dno" attribute is passed to the parameter so as to populate the

FormView1. The same applies for Updating. Update parameters are used to pass the

parameters in the FormView1 to the UpdateCommand string in order to update the

database.

GridView2 just straightforwardly shows the data for further use.

<asp:GridView HorizontalAlign="Center" ID="GridView2" runat="server" AllowSort-ing="True" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="dno" Css-Class="donanim_gridview" DataSourceID="SqlDataSource3" EmptyDataText="Şu an kayıtlı herhangi bir donanım bulunmamaktadır." GridLines="None" CellSpacing="1" Width="970px"> <RowStyle BackColor="#f4f4f4" HorizontalAlign="Left" /> <Columns> <asp:BoundField DataField="tname" HeaderText="Tür" SortEx-pression="tname" /> <asp:BoundField DataField="mname" HeaderText="Model" SortEx-pression="mname" /> <asp:BoundField DataField="dno" HeaderText="Demirbaş No" ReadOnly="True" SortExpression="dno" /> <asp:BoundField DataField="serino" HeaderText="Seri No" SortExpression="serino" /> <asp:BoundField DataField="not" HeaderText="Bilgi" SortEx-pression="not" />

36

Page 37: Bilkent University Engineering Faculty Department of Computer

<asp:CheckBoxField DataField="kullanimda" HeaderText="Kul-lanımda" SortExpression="kullanimda" /> <asp:CheckBoxField DataField="saglam" HeaderText="Sağlam" SortExpression="saglam" /> <asp:BoundField DataField="alinis_tarihi" DataFormat-String="{0:d}" HeaderText="Alış Tarihi" SortExpression="alinis_tarihi" /> <asp:BoundField DataField="garanti_bitis" DataFormat-String="{0:d}" HeaderText="Garanti Bitiş Tarihi" SortExpres-sion="garanti_bitis" /> <asp:BoundField DataField="firmaadi" HeaderText="Firma Adı" SortExpression="firmaadi" /> <asp:CheckBoxField DataField="kaldirildi" Header-Text="Kaldırıldı" SortExpression="kaldirildi" /> </Columns> <HeaderStyle CssClass="donanim_header" ForeColor="#f4f4f4" /> <AlternatingRowStyle BackColor="#e1e1e1" /> </asp:GridView>

The data source for GridView2 is:

<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:mydonanimtakipdbConnectionString %>" SelectCommand="SELECT [tname], [mname], [dno], [serino], [not], [kullan-imda], [saglam], [alinis_tarihi], [garanti_bitis], [firmaadi], [kaldirildi] FROM [donanim]"></asp:SqlDataSource>

Apart from all of these, the user may want to add a new hardware. And when adding a new

hardware new models and types may be added.

The function to add a new hardware is the following code:

Sub eklefunc()

Dim v1 As String = ÜrünTürüList.SelectedItem.Text Dim v2 As String = ÜrünModeliList.SelectedItem.Text Dim v3 As String = DemirbaşNo.Text Dim v4 As String = SeriNo.Text Dim v5 As String = Nottx.Text Dim v6 As Boolean = calisirchk.Checked Dim date1ok, date2ok As Boolean Dim v7 As DateTime Dim v8 As DateTime

37

Page 38: Bilkent University Engineering Faculty Department of Computer

Try v7 = Convert.ToDateTime(TarihText1.Text) date1ok = True Catch AlertMsg("Hatalı Tarih") Exit Sub End Try Try v8 = Convert.ToDateTime(TarihText2.Text) date2ok = True Catch AlertMsg("Hatalı Tarih") Exit Sub End Try If DateTime.Compare(v7, v8) > 0 Then AlertMsg("Alış Tarihi bitiş tarihinden büyük olamaz") Exit Sub End If Dim v9 As String = FirmaAdı.Text If ÜrünTürüList.SelectedItem.Text = "-Seçiniz-" Or ÜrünModeliList.Se-lectedItem.Text = "-Seçiniz-" Or DemirbaşNo.Text = "" Or SeriNo.Text = "" Then AlertMsg("Ekleme Girişimi Başarısız") Exit Sub Else Dim dbconn, dbcomm, dbinsert, sql1 dbconn = New SqlConnection(ConfigurationManager.Connection-Strings("mydonanimtakipdbConnectionString").ConnectionString) dbconn.Open()

dbcomm = New SqlCommand(sql1, dbconn) dbinsert = "Insert into donanim (tname,mname,dno,serino,[not],saglam,alinis_tarihi,garanti_bitis,firmaadi,kaldirildi,kullanimda)Values('" & v1 & "','" & v2 & "','" & v3 & "','" & v4 & "','" & v5 & "',@SAGLAMMI,@ali-nis_tarihi,@garanti_bitis,'" & v9 & "',0,0)" dbcomm = New SqlCommand(dbinsert, dbconn) dbcomm.Parameters.Add(New SqlParameter("@SAGLAMMI", SqlDbType.Bit, 1)) dbcomm.Parameters("@SAGLAMMI").Value = calisirchk.Checked dbcomm.Parameters.Add(New SqlParameter("@alinis_tarihi", SqlDbType.-DateTime)) dbcomm.Parameters("@alinis_tarihi").Value = v7 dbcomm.Parameters.Add(New SqlParameter("@garanti_bitis", SqlDbType.-DateTime)) dbcomm.Parameters("@garanti_bitis").Value = v8 Try dbcomm.ExecuteNonQuery() Catch AlertMsg("Hatalı veritabanı girişi") Exit Sub Finally dbconn.close() End Try End If

38

Page 39: Bilkent University Engineering Faculty Department of Computer

GridView1.DataBind() ekleHide() End Sub

V1-V9 are variables to be used for parameters dbcomm sql command. Via this command,

program is able to communicate with the database and transfer it the information that are

required to add a new entry.

First of all the variables are appended the values from components. Then their validity is

checked. For example the date string is converted to formal date and applied a certain

format. If the process fails, exception occurs and process is stopped. Then, the variables

are passed to the sql parameters and the sql query is executed. If everything goes well,

GridView1 pane becomes visible, and hardware adding pane(Figure 10 - B) disappears.

There are 3 functions regarding adding new hardware models which are:

Sub updateModelList() Dim dbconn, sql, dbcomm Dim dbread As SqlDataReader dbconn = New SqlConnection(ConfigurationManager.ConnectionStrings("mydo-nanimtakipdbConnectionString").ConnectionString) Try dbconn.Open() sql = "SELECT mname FROM model" dbcomm = New SqlCommand(sql, dbconn) dbread = dbcomm.ExecuteReader() ÜrünModeliList.Items.Clear() ÜrünModeliList.Items.Add("-Seçiniz-") While dbread.read() ÜrünModeliList.Items.Add(dbread(0)) End While ÜrünModeliList.Items.Add("*Yeni Model*") dbread.Close() dbconn.Close() Catch End Try End Sub Sub ekleModelList() If ÜrünModeliList.SelectedItem.Value = "*Yeni Model*" Then ÜrünModeliList.Visible = "False" ModelBox.Visible = "True" ModelEkle.Visible = "True" ÜrünTürüList.Enabled = "False" End If End Sub Sub ModelEkleButton()

39

Page 40: Bilkent University Engineering Faculty Department of Computer

Dim dbconn, dbcomm, dbinsert, sql1 dbconn = New SqlConnection(ConfigurationManager.ConnectionStrings("mydo-nanimtakipdbConnectionString").ConnectionString) dbconn.Open()

Dim v1 As String = ModelBox.Text dbcomm = New SqlCommand(sql1, dbconn) dbinsert = "Insert into model (mname) Values('" & v1 & "')" dbcomm = New SqlCommand(dbinsert, dbconn) dbcomm.ExecuteNonQuery()

dbconn.close()

ModelBox.Text = "" updateModelList() ÜrünModeliList.SelectedIndex = ÜrünModeliList.Items.Count - 2 ModelEkle.Visible = "False" ModelBox.Visible = "False" ÜrünModeliList.Visible = "True" ÜrünTürüList.Visible = "True" ÜrünTürüList.Enabled = "True" End Sub

updateModelList simply populates the model list from database. Two certain items are

always inserted into the list no matter if the database is empty. Those are ("-Seçiniz-") and

("*Yeni Model*") -Seçiniz- is a dummy item that cannot be selected as a model. And when

*Yeni Model* is selected ekleModelList fucntion is executed. A new textbox and a button

appears. When used fills in this textbox and presses the button, the new model is added to

the database and becomes ready to be used.

Public Sub AlertMsg(ByVal msg As String) Dim sMsg As String

Dim sb As New StringBuilder

msg.Replace("\n", "\\n")

sMsg = msg.Replace("\", "'")

sb.Append("<script language='javascript'>")

sb.Append("alert( """ + sMsg + """ );")

sb.Append("</sc" + "ript>")

'Response.Write(sb.ToString) ClientScript.RegisterClientScriptBlock(Me.GetType(), "sb", sb.ToString) End Sub

AlertMsg is a function that can be used to show a JavaScript Alert message.

40

Page 41: Bilkent University Engineering Faculty Department of Computer

Sub Takvimciinit1() Dim tarihh = Date.Today TarihText1.Text = tarihh End Sub

Takvimciinit1 automatically populates the textbox allocated for date entry.

At the beginning of the code of each page there is a piece of code that checks if the user is

a valid administrator.

<% Dim USERNAME Dim PASSWORD Dim dbconn, sql, dbcomm Dim dbread As SqlDataReader dbconn = New SqlConnection(ConfigurationManager.ConnectionStrings("mydonan-imtakipdbConnectionString").ConnectionString) dbconn.Open() sql = "SELECT kullanici_adi,sifre FROM adminTable WHERE NETWORK = '" & Http-Context.Current.User.Identity.Name & "'" dbcomm = New SqlCommand(sql, dbconn) dbread = dbcomm.ExecuteReader() If dbread.read() Then USERNAME = dbread("kullanici_adi") PASSWORD = dbread("sifre") Else Response.Redirect("unauthorized.aspx") End If If Request.Cookies("YBM") Is Nothing Then Response.Redirect("unauthorized.aspx") Else If Request.Cookies("YBM")("USER") <> USERNAME Or Request.Cookies("YBM")("PASS") <> PASSWORD Then Response.Redirect("unauthorized.aspx") End If End If %>

"HttpContext.Current.User.Identity.Name" is a property that may be used to obtain the

domain name of a user. What this code does is simply check the username and the

password of the user with the domain name. If the user is unauthorized by any case he is

redirected to the error screen.( unauthorized.aspx)

'theme '################################### Dim dbconn1, sql1, dbcomm1 Dim dbread1 As SqlDataReader dbconn1 = New SqlConnection(ConfigurationManager.ConnectionStrings("my-donanimtakipdbConnectionString").ConnectionString) dbconn1.Open() sql1 = "SELECT options FROM tema WHERE [current] = 1" dbcomm1 = New SqlCommand(sql1, dbconn1) dbread1 = dbcomm1.ExecuteReader() If dbread1.read() Then If dbread1("options") = "mavi" Then

41

Page 42: Bilkent University Engineering Faculty Department of Computer

link1.Attributes.Add("href", "./css/BlueStyle.css") ElseIf dbread1("options") = "yeşil" Then link1.Attributes.Add("href", "./css/GreenStyle.css") ElseIf dbread1("options") = "siyah" Then link1.Attributes.Add("href", "./css/BlackStyle.css") Else link1.Attributes.Add("href", "./css/BlueStyle.css") End If Else Response.Redirect("hata.aspx") End If dbread1.close() dbconn1.close() '###################################

This piece of code regulates the theme of each page when placed in the Page_Load

function of page. The corresponding Css style is applied according to the [current] value.

There has been various testing methods and tools we have used and learned. In Visual

Web Developer 2008, I have learned to use the debugging option in the compiler and add

break point at certain lines to simplify our testing and debugging stage. However I found

Microsoft Sql Server hard to use and user unfriendly. Therefore there has been a lot of

trials and errors concerning database issues. The last week of our summer training was

generally about testing and debugging, it is because we had just been familiar with the

new .Net and Sql environment.

Our project management pipeline consisted of 5 major parts:

Initiation

Planning and Designing

Implementing

Testing and Debugging

Presentation

The initiation stage comprised acquiring the hardware and the software, their installation

etc. We have also introduced ourselves to the organization employee and acquired our

project goals

During the planning and designing, we have designed the database model and the general

model of our program. A lot of draft paper has been used in this process.

Implementation progress was straightforward since we have designed our project nearly

42

Page 43: Bilkent University Engineering Faculty Department of Computer

flawlessly. Thousands lines of codes has been written in this stage and was most time

consuming of all stages.

Testing and debugging consumed the last week of the summer training and was one of

most challenging parts.

After we have completed the project, it has been presented to the audience and installed

on the organization servers for active use. Currently, program runs flawlessly on the

server.

As engineer applicants, we have adopted the idea of design first and implement

later. We have applied this process to our workflow successfully. Our project was

there to deal with a real life problem. We have approached to this problem using

engineering problem solving skills. We have often interacted with the personal who

required this program and our supervisor. At the end of each week we have briefly

presented our advancements. Communication skills were maintained at greatest

degree.

I have participated to the design, development, testing and debugging utterly. I have been

in the development stage from beginning to the end. The parts I have

We had minor help from the employees. To be specific, when we had a problem

regarding asp.net coding we have referred to him. However most of the time we

were able to handle the problems ourselves. Through the summer training we have

attended to 2 seminars. One of them was a presentation of a commercial institution.

The presenters has introduced a system called "Virtual Machine from Parallels".

Since the subject is irrelevant to topic I will not cover the subject. The other seminar

was arranged for every other intern including us. In the seminar, the role of the

Department of Management of Informatics and a brief information about modern

informatics has been narrated. In short these seminars had no effect on our project.

The parts I have contributed to the project are:

Designing the main program, database tables and relations

43

Page 44: Bilkent University Engineering Faculty Department of Computer

The design stage was collective, we have used the brain storm

technique to elaborate our ideas.

Creating and modifying the database and the migration between Ms Access, Ms Sql

Server

At first, I have created the database using Ms access then when we

found out that it was not going to work we had to switch to Ms Sql.

The immigration of the data to Sql Server was done by me.

Coding of Registration Wizard, Hardware Wizard, User loan status page and

partially Personal List.

To be concise, the algorithmic part of Registration Wizard, Hardware

Wizard, User loan status page has been coded by me.

Testing and debugging of Registration Wizard, Hardware Wizard, User loan status

page.

I have been responsible for the Testing and Debugging of these parts,

no other teammate has interfered.

Attending to the presentation of the finished work to the employees.

Since our project is software related we have vastly used programming skills. The

information we have learned in CS 101, 102, 201, 202 has been much of use. The

designing methods we have learned in schools were really useful during summer training.

It was the first time for me to work in a real world problem with engineering basics,

however the practice I had in school like being in school project groups really helped me to

cope with problems. Apart from all of these, the things we have learned at the summer

training is incomparable to what we have learned at school. For example, we have worked

with a whole new programming language, Visual Basic. After we have realized the

similarities of VB with java or C++ it has been rather easy for us to master it. As for

Database systems, having no experience in database technologies in school or real life, I

believe what I have learned at summer training will be very useful for me both in my

courses and real life programs.

Our team consisted of three persons including Me, Kerem and Faruk. Kerem is an 3rd

grade undergraduate CS student at Bilkent University as me. And Faruk is a 4rd grade

CTE student at Bilkent University. At first, Faruk was the most knowledgeable among us

concerning database. So he has vastly helped us to design the database tables. We were

all unexperienced at Asp.net. As we learned new methods we have shared the information 44

Page 45: Bilkent University Engineering Faculty Department of Computer

with other participants. Faruk had withdrawn from the project about a week later resulting

Kerem and Me working on most of the project but his help about database issues was

significant. Since Kerem is a colleague I have known for more than 2 years we never had

communication problems and we overcome any conflicts. We had a live and advancing

teamwork together, both of us being enthusiastic about the summer training our team

dynamic was pretty well considering the temperature during the summer. Kerem and I

have split the duties and worked on separate parts simultaneously in a professional

manner.

Since we were working in a government organization everything was established there

were no significant issues regarding ethical or professional issues. The possibility of a

conflict occurring in the organization is out of question considering all employees have

ranks. Other than that the environment and the employees were extremely friendly

towards us which made us easy to get familiar to environment. Meaning, we had no

quarrels or issues with any of employees or among ourselves.

The projects developed at the organization are developed using the latest

technologies with the optimal amount of budget and labor due to it being a

government institute. The end users of the projects developed are generally

personals working in the organization and used to ease and automate their work.

Therefore the global impact of the engineering solutions is not big. The personals

consult to The Department of Management of Informatics if they need a software solution

to the real world problems they have encountered. After the needs of these personal are

considered, the projects start to be developed at this department. The presentation we

attended was about the advertisement of a new technology called parallels which

promotes virtual machines.

" Parallels is committed to helping organizations reduce the cost and complexity of client

computing through desktop virtualization, maximize the value of IT resources through

server consolidation and simplify operations and management through IT automation."

http://www.parallels.com/eu/

The department took into account adopting this new technology to the organization

considering their resources and the solution it offers however it did not match the

needs of the organization and it was way too expensive. This was a contemporary

issue related to computer engineering.45

Page 46: Bilkent University Engineering Faculty Department of Computer

I have learned Asp.net and Sql from scratch from many sources over the internet.

Websites:

http://www.w3schools.com/aspnet/default.asp

http://www.asp101.com/lessons/

http://www.sqlcommands.net/

Tutorials:

ASP.NET Essential Training from Lynda.com

SQL Essential Training from Lynda.com

E - books:

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

In addition, www.experts-exchange.com has been really helpful correcting the errors we

have encountered during testing and debugging.

In short, Google was our best friend that was the most helpful to gather sources.

New tools, technologies:

Visual Web Developer 2008

Visual Web Developer 2008 was a very user friendly program, we could easily

navigate to section we want or customize the view. Basically, we have learned it by

trial and error. Right now, I can masterfully use the program and create web based

programs without difficulties.

Microsoft Sql Server 2005

Although it was not a self explanatory program, I have learned to use it by internet

sources. I am an average user of MS Sql server. I know the basics of it enough to

create any database and the maintain it.

Microsoft Sql Server 2008

Ms Sql 2008 is very similar to 2005 version, there are subtle differences which I

could distinguish. I am proficient at this tool as well.

Microsoft Access 2007

We have learned to use MS Access with the help of Ahmet Faruk. Basically,

46

Page 47: Bilkent University Engineering Faculty Department of Computer

learning Access was a good transition to switch to a complex database tool like Ms

Sql.

ASP.NET

Internet has a lot of sources regarding Asp.Net. I have grasped the basics of ASP

programming thorough hard effort.

HTML

Html being a simple language, we did not have any difficulties using it. Most of us

had background info about Html. I have polished my Html programming skills in

summer training.

Visual Basic

Visual Basic has been used for server side scripting with relation to ASP in the

project. Having experienced different programming languages like java and C++

learning VB was rather easy. It is a straightforward language yet powerful to

implementing solutions. Currently, I have sufficient VB programming language to

use it to create applications.

JavaScript

Several JavaScript Functions has been used in our program. My JavaScript

knowledge is adequate enough to use basic JavaScript Functions dynamically in

asp.net server side scripting.

To conclude, we created a web based program named hardware tracing system using

Asp.NET and MS Sql. It is an important project because before the installation of our

program they were tracing the hardware using paperwork and there was a high

probability that trace of a hardware could be lost. Having the paperwork automated, the

organization staff is able to lend hardware to employees properly. The motivation

behind our work effort is related to our enthusiasm to learn new field technologies. We

have developed the project according to engineering basics, Initiation, Planning and

Designing, Implementing, Testing and Debugging, Presentation. My own contribution to

the project is considerable since the parts I have worked on are the backbone of the

project. There has been various knowledge and skills I learned in school that I was able

to apply to real-world problems during my summer training. The project we have

developed is a result of a successful teamwork. We have aided each other during

summer training whenever we encountered a problem. There were also several

seminars and presentations we attended at the organization. Economic, environmental,

societal and global impact of the engineering solutions in the projects developed at 47

Page 48: Bilkent University Engineering Faculty Department of Computer

your company were examined. During summer training I have done a lot of self

learning, most of our sources were found on the internet. There has been a lot of new

tools and technologies that we encountered and used during the summer training. In

short, the summer training that I have done was beyond useful.

48