Top Banner
BILKENT UNIVERSITY ENGINEERING FACULTY DEPARTMENT OF COMPUTER ENGINEERING CS 299 SUMMER TRAINING REPORT Kerem Kayabay 20702740 Performed at T.C. Başbakanlık Devlet Planlama Teşkilatı Müsteşarlığı 1
26
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bilkent University Engineering Faculty Department of Computer

BILKENT UNIVERSITY

ENGINEERING FACULTY

DEPARTMENT OF COMPUTER ENGINEERING

CS 299

SUMMER TRAININGREPORT

Kerem Kayabay

20702740

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’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 “asp.net“, “vb.net” 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.

Introduction

“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

2

Page 3: Bilkent University Engineering Faculty Department of Computer

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 system.

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 conclusion.

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.

Supervisors:3

Page 4: Bilkent University Engineering Faculty Department of Computer

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

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

Adli Tosun ([email protected])

Orkun Kaya ([email protected])

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 “asp.net”, “vb.net”, and for GUI, “CSS”.

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.

4

Page 5: Bilkent University Engineering Faculty Department of Computer

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.

5

Page 6: Bilkent University Engineering Faculty Department of Computer

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 2-A)

Figure 2-B

6

Page 7: Bilkent University Engineering Faculty Department of Computer

“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)

7

Page 8: Bilkent University Engineering Faculty Department of Computer

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.

8

Page 9: Bilkent University Engineering Faculty Department of Computer

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.

9

Page 10: Bilkent University Engineering Faculty Department of Computer

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

10

Page 11: Bilkent University Engineering Faculty Department of Computer

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-C).

By clicking add a new hardware, a message box is opened (coded in asp.net 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).

11

Page 12: Bilkent University Engineering Faculty Department of Computer

Figure 6-A

Figure 6-B

12

Page 13: Bilkent University Engineering Faculty Department of Computer

Figure 6-C

Figure 6-D

13

Page 14: Bilkent University Engineering Faculty Department of Computer

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)

14

Page 15: Bilkent University Engineering Faculty Department of Computer

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

15

Page 16: Bilkent University Engineering Faculty Department of Computer

Figure 7-C

16

Page 17: Bilkent University Engineering Faculty Department of Computer

Figure 7-D

17

Page 18: Bilkent University Engineering Faculty Department of Computer

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.

18

Page 19: Bilkent University Engineering Faculty Department of Computer

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,

19

Page 20: Bilkent University Engineering Faculty Department of Computer

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 “asp.net” 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:

20

Page 21: Bilkent University Engineering Faculty Department of Computer

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.

asp.net: Before the summer training, in the past I’ve experienced another web based programming language “php”, so it was not very hard to learn asp.net as it is far more easier to handle. I’ve learned asp.net by the resources from the internet.

vb.net: I’ve learned Visual Basic by actively using it with asp.net.

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 mechanisms.

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 program.

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:

Websites:

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

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

http://www.sqlcommands.net/

www.experts-exchange.com

Tutorials:

ASP.NET Essential Training from Lynda.com

E-books:

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

21

Page 22: Bilkent University Engineering Faculty Department of Computer

We also asked help from one of our supervisor Orkun Kaya as I mentioned before, about fast database management.

Conclusion

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 hardwares.

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.

22