Project Final Report

advertisement

MMX-III

ICT 435 Senior Project – Spring 2013

Tom Preston

5/8/2013

Final Project Report - The MMX-III

Summary

This report covers Tom Preston’s senior project in ICT 435 during the 2013 spring semester. The project was to design and build a computer, set it up to run as a Linux based server and demonstrate its capabilities. The project spanned a period of sixteen weeks and was divided into five different phases. The five phases covered the system design and parts acquisition, building the system, the software installation, demonstration of the system’s functions and the project’s final wrap-up. In addition, a website was built that contained information about the project and was updated bi-weekly with reports and updates about the project. The website contained the project’s outline, bi-weekly reports, timeline, tasks and links to project information. The website, hosted on the MMX-III, can be viewed at the URL: mmxiii.no-ip.biz

Introduction

The goal of the ICT 435 senior project was to apply some of the skills acquired during time spent in the ICT program, to a real world situation. What to do for the project had been running through the back of my mind from the time I gained acceptance into the program. The ideas were wide ranging, and kept on a running list after coming up with the first one. They included:

An ICT program survival/how to guide for students coming into the program

A programming project using one, some, or all of the different languages learned

Home networking

Building a computer

Constructing a website for an assisted living facility

Creating a Network-Attached Storage (NAS) device

A server based project

After careful consideration, a decision was made to go with the server based project with a slight twist. The project would be centered around a server, but would also include portions of the other ideas to some degree as well. The overall project would include creating a website, building a computer, installing a Linux server operating system and other server applications, configuring the networking on the server for webhosting, and then demonstrating the server’s functionality.

The thought was this would encompass a good majority of the subject matter taught in the program and demonstrate some of what I had learned over the last few years. In my mind, this would be a form of capstone for my time in the ICT program.

Project Website

The project began with the creation of the website. The website was a project requirement and would need to contain the project idea and outline, weekly reports, timeline, tasks completed, and a place for any materials necessary for the final project presentation. To meet the requisite, this website would have six different web pages, the Home, Outline, Reports, Timeline, Tasks, and Links pages. It would be built using a cascading style sheet to give the website a consistent flow from page to page, while still allowing each page to have its own specific purpose as explained further below.

The cascading style sheet set up the pages so that each had a text heading at the top, a container with a logo image immediately below and off to the right, a left column that contained the navigation menu and other information, a main body for media content, and a footer with text.

This format proved to serve the project well, as the main body was easily adaptable for each of the different webpage’s needs, whether it was html text, images or a combination of both. A maroon background that matched the font color, framed each page on all four sides.

The purpose of each of the web pages is as follows:

Home page – this is not only the starting point for the website, but also provided a means to give an update on the projects progress and major accomplishments.

Outline page – this page once contained the original project idea proposal, but now shows the detailed project outline created after the project received approval.

Reports page – this page contains each assignment’s bi-weekly reports. It was set up in a blog style, so the entries could be easily read by scrolling up or down through the reports.

Timeline page – this page contains a table that shows the project flow over the course of the term, the different phases of the project, along with the project milestones.

Tasks page – this page breaks down each phase of the project into individual tasks and provided a means to track progress. Checkmarks were used to indicate task completion and show progression.

Links page – this page was designed to contain the project presentation files, but has also been used to display links to files and show images of the different components used in the project.

The website portion of this project turned out very nice in my opinion. The desire to get away from the simple, basic websites built in the past and learn how to use a cascading style sheet to create more of a professional look, appears to have been a good move. With each page constructed and looking the same, other than the content contained within the main body, it made for easy updates and upkeep. This is an area where planning well ahead of time paid off handsomely and this website turned out to be by far, the best I’ve created to this point.

It was also during the construction of the website where the project got its code name, that eventually became it’s official name. When working on big projects, I like to start out using

some form of a code name for the project to use in project reports/updates and to define a naming scheme for the project’s files and folders. While looking for a code name to refer to this project, the idea came about to see what the number 2013 would be in roman numerals. In roman numerals, 2013 turns out to be MMXIII. At first glance, it was seen as MMX-III and the name stuck. 2013 will be a very significant year for the project manager and it wasn’t long before

MMX-III became the official project name going forward.

Project Timeline and Tasks

With an approved project idea and the general framework of the website in place, the next step was to develop the project’s timeline. In looking at developing a timeline, the work involved seemed to naturally break down into five phases, based on the tasks thought to be required to complete the project. These five phases would be spread over the course of the semester, and are as follows:

Phase 1 - Design and Acquisition

Phase 2 - Building the MMX-III

Phase 3 - Software Installation

Phase 4 - Demonstrate System Functionality

Phase 5 - Project Wrap-up

In order to make a final determination on the project’s timeline, the different tasks deemed necessary to complete each phase were identified and recorded in a spreadsheet. With each phase and its accompanying tasks listed in the left most column, the sixteen weeks of the term including spring break were broken down into one-week increments and added to the top row. In order to create the timeline, it was simply a matter of estimating how much time would be needed for each phase/task and place a different colored graphical indication of that on the

spreadsheet for each. The resulting spreadsheet was used as the timeline and an image of it was placed on the Timeline page of the website.

With most of the tasks for each phase already identified during the creation of the timeline, the process for creating a task list was made easy. Each phase and task previously identified was transferred to an actual task list, where in some cases the task would be further broken down into subtasks. All of this information was transferred to the Tasks page where it was organized using unordered lists in html. Each task/subtask would be marked with a checkmark after it was completed.

Project Phases

Phase 1 - Design and Acquisition

This phase of the project had four main tasks and their associated subtasks. The four included starting a project logbook, creating a hardware design, selecting a Linux server operating system and then acquiring the hardware and software selected. For a logbook, both an electronic and a hard copy were used, depending on the situation. The project generated several new user names, passwords and useful links and having logbooks provided a good way to keep track of all the information accumulated over the project’s lifespan.

For the hardware design, the availability of a free CPU made possible through my employer drove the majority of the decisions. After comparing the different options, the Intel Ivy Bridge, third generation Core i5-3450 was chosen for the CPU. This is one of the latest products offered by Intel and looked to be the best choice for adding long-term flexibility to the project. After selecting a processor, the research shifted to what chipset and motherboard to use.

The motherboard recommendations for the CPU suggested using either the B75 or Z77 chipsets to take advantage of the third generation i5’s features. While comparing different motherboards,

a deal at Newegg was found that included a Biostar TZ77B motherboard for $99.99, with 8GB of Corsair Vengeance RAM included free. This made the decision simple. It would save somewhere around fifty dollars and the decision on what memory to use would be made by default.

For the remainder of the hardware components selected, the decision was made to balance performance, cost and previous buyer reviews. After determining an estimated load, the 400 watt

Antec NEO-ECO-400C was chosen as a power supply for $39.99. The other components used for the project included a Rosewill RCX-ZAIO-92 CPU cooler for $14.99, a Western Digital

Blue 1TB Hard Drive for $69.99, an LG CD/DVD Multi Drive for $17.99, along with the

Corsair Carbide Series 200R Case for $59.99 to contain everything. All of the components were ordered and had a delivery date that met the projects timeline. The total for the components comes to $313.46, which is just above my target goal of $300.00 for the build.

The remainder of this phase included selecting the Linux server operating system and creating a disk with the OS and any other software to be installed. After comparing the options, the choice was made to use Linux Ubuntu Server 12.04.2 LTS for the project. Most of the available operating systems met the project’s needs, but Ubuntu just seemed to have a fresher feel to it. It has a large user base, appears to offer plenty of support, and was a new version of Linux to learn.

An installation disk with Ubuntu server OS and the other services for the project was created for use when the system was ready to have the software loaded.

Phase 2 - Building the MMX-III

This phase of the project included assembling the components, booting the system and ensuring it was ready for the software installation. In addition, the plan was to document on video as many of the activities as possible to use for the project’s presentation. After creating a plan for the

assembly, the build ended up being delayed by almost two weeks due to hardware problems with the video equipment. The first camera failed to work altogether and the backup camera required a special adapter to mount to a tripod. These issues combined to create the project’s first setback.

After resolving the video production issues, the build was finally ready to begin. After creating an introduction and other videos about each component, the build started with the installation of the CPU on the motherboard. The CPU installation went smoothly and as planned. Having read that with some motherboards, it’s harder to install some of the memory modules after the CPU cooler is installed; the decision was made to install the memory followed by the cooler.

The 8GB memory module was inserted into the first slot and snapped into place without issue. A problem came up though when trying to install the CPU cooler. As it turned out, the profile of the heat sink on the memory module was so tall; the cooler had to be rotated one hundred and eighty degrees in order for both to fit on the motherboard. The theoretical problem with this is while the case fans are directing air from the front to the back, the CPU cooler would be moving air in the opposite direction. So far, this hasn’t show itself to be a problem, because the case is well ventilated and the system hasn’t really been taxed.

The next component to be connected would be the power supply. With this connected, the basic system could be test booted to check the critical components. After connecting the power supply’s 24-pin power connector and 8-pin +12 volt CPU power connector to the motherboard, a monitor was connected to the VGA port, and the system was powered on and booted to the BIOS screen without issue. Next steps would be to begin installing the components in the case.

Problems with the case arose immediately upon removing it from the manufacturers packaging and attempting to take off the side panels. The side of the case that provides access to install and remove components was hard to take off and had been damaged in shipping. This turned out to

be a minor setback for the project. It delayed the completion of the build, but ended up as a ten dollars savings when a replacement was found for the same price, with a $10 rebate and free shipping.

When the new case arrived, the remainder of the install went almost as planned. The case had one extra standoff for mounting the motherboard that needed to be removed, but otherwise no problems were encountered. The case is set up for an easy build, with cutouts for routing cables and tool free installation on the drives. The power supply was installed first, followed by the motherboard, and then the drives. One slight change to the original plan was the installation of a

2.5” 160 GB hard drive. The thought was that the 160 GB drive would be used for the initial install of Ubuntu server to test the system. The 1 TB HDD could still be used as part of the server or it could be used to add another OS and make the system more flexible. With the drives installed and the system powered on, the MMX-III booted up and was ready for the software install.

Phase 3 - Software Installation

This phase of the project included installing the Ubuntu Server 12.04.2 LTS operating system, along with Apache HTTP Server, PHP and MySQL. The software installation went trouble free after getting past a bad install disk initially. During the installation of Ubuntu Server OS, the option is presented to also install Apache, PHP and MySQL, as well as other server services.

This opportunity was used to not only install those three planned software packages, but also

OpenSSH server, Samba file server and Tomcat Java server. The Samba and Tomcat services wouldn’t be used for the project, but might come in handy at a later date and time. A user name and password is created during the installation process, so the system is ready to use immediately

after loading the software. Later, Webmin, a free GUI based server administration software application was installed to help learn more about the server’s administrative tasks.

Phase 4 - Demonstrate System Functionality

This phase of the project involved setting up the networking to host the project’s website on the

MMX-III, creating code to demonstrate PHP and MySQL functionality, and performing final systems testing to ensure the system was robust. Hosting the website was an area of concern going into the project and still is to some extent. In order to have a home server accessible outside of the local network, the ISP in this case, requires the user to have a static IP address.

The static IP address comes with a monthly fee of $5.95 and a onetime charge of $25. It didn’t seem like the best way to go at this time, so a work around was implemented.

Since the ISP provides a dynamic IP address for the network, there needs to be a way to compensate for changes. The dynamic DNS service from www.noip.com provides a way to setup and run a server at home without having a static IP address. After creating an account, choosing and configuring a hostname, a Dynamic Update Client (DUC) needs to be downloaded and installed on the host. The DUC monitors the IP address assigned to the network and makes the necessary DNS updates as the address changes. The hostname chosen and configured will continue pointing to the changing dynamic IP address as long as the DUC is running. This requires some periodic maintenance and only allows access to the server from within the network if using a proxy server, but the price is right for this purpose.

The other tasks in this phase required creating code to demonstrate the PHP and MySQL functions of the MMX-III. For this part of the project, a database named mydb was created.

Using the file source.sql, a table was added called courses that's populated with information about the required courses for an ICT degree. This was followed by the creation of the file

index.php that pulls the data from the database and presents it in a table format using html. A link to the demonstration of how these files work is found on the Links page of the website.

Phase 5 – Project Wrap-up

This phase of the project was intended to allow time to deal with any lingering issues with the project and prepare for the presentation. Other than ongoing maintenance with the dynamic DNS service, there are no real issues that prevent the MMX-III from being presented as a completed project. It’s not perfect, but it’s a really good first effort. Otherwise, preparation for the presentation on May 8 th

at noon continues.

Conclusion

There was a lot to be gained from this project and I believe I took advantage of it. This brought together several of the topics that interest me and provided the opportunity to learn more about them all in a way that I chose. Designing and building a server, installing the software, setting up the networking, and demonstrating its capabilities, along with building a website, in my opinion, was a very good way to demonstrate some of what I’ve learned over the last three years in the

ICT program. The project also taught some valuable lessons in project management.

Overall, I believe the project was a success. It had its highs and lows, and obstacles to overcome, but in the end, everything seemed to work out. Maybe not perfectly in all areas, but there’s nothing that can’t easily be overcome with a little bit of time, effort and money. The project will end, but I’ll continue working to improve the networking on the system, learn more about server administration, and work on my web development skills. This was an entertaining and interesting project. I’m glad I did it and I think it was a good way to put a cap on my time in the ICT program.

Download