by Jesse Charles Valley

Web Programming and Database Development

A.A.S. Degree from

Dunwoody College of Technology


Outcome 1

Evaluate the organizational structure of a business in order to facilitate data management.

Artifact 1.1

Boats 4 Dayz Website

Boats 4 Dayz was an entire web project that focused on using Agile development in order to create a company and an accompanying website with included database components. This group project was created from scratch; we had to first think up a business and then determine what we needed to do to create that business legally. The whole project was collaborative as we thought through the various development solutions that we needed to do to create and update the website. We also presented the website to our teacher and the other students in class at the end of each sprint, where we discussed the development solutions and struggles we faced with creating the website. We had to think over the data that we needed to manage for the site, and since we had not yet learned SQL and a server-side language, we used XML to store the data related to our FAQ and Services sections.

Besides the practice of working collaboratively and developing web solutions, we learned how developers, project managers, and others work together in the workforce. Even if I am originally hired purely as a web developer, knowing about other aspects of business will make me a much more productive employee.

Artifact 1.2

Data Planning Lab

In creating my final project, I needed to first start by thinking about the data that I was going to need in order to host a viable website. I am creating a portfolio/gallery site, so I need to be able to upload images to a gallery, create new galleries, and allow users to log in when appropriate. To start actually planning for the website, I needed to start at the very beginning with the data. I started by creating the scope and business rules that dictate the data I want to collect, and then I started to map out the relationships of the tables into ERD diagrams. Once I’ve done this and completed normalization, then I will create the database to use on my website.

This artifact shows how I’ve been evaluating what types of data I will be collecting in order to facilitate data management. By starting early and specifying sample data sets, it really helped me hone in on the data I would ultimately need to collect. One interesting challenge I’ve encountered as I’ve progressed in the project is that I’ve needed to add attributes to some of the entities that I did not originally foresee in order to increase the functionality of the website. Ultimately, the effective management of data will be extremely valuable in my career, and it all starts by looking closely at the organizational structure of a business.

Data Planning Excel Sheet

Outcome 2

Illustrate networks used for the Internet.

Artifact 2.1

LAMP Server Installation

The internet is not a magical black box that dishes out websites on your phone or computer; it is created through a network of computers, switches, routers, and other physical hardware. Even though I have been primarily focused on developing the websites that people will view online, it is also beneficial to learn about how the internet is created.

In this lab, I created a LAMP stack on an Ubuntu server. The “L” of LAMP stands for Linux, the “A” stands for Apache, the “M” stands for MySQL, and the “P” stands for PHP. Quite simply, this configuration is one of the most important aspects that create the internet as we know it today. Not only did I learn how to properly configure the various modules to host and serve a webpage, but I was also able to view that webpage over a network (on a computer that is different than the website host), which you can see in the artifact to the right. When you start to expand that scenario to thousands of computers connected through a network, you can start to see how the internet really works.

LAMP Web Server

Artifact 2.2

OSS Server Project

The point of this project was to design, implement, and configure a 100% Open Source infrastructure that provides DHCP, DNS, LAMP, FTP, SSH, and Firewall/NAT. On a micro-scale, this is a vibrant picture that truly does illustrate how networks are used to create the internet. One of the most interesting and challenging aspects of this project was to combine the knowledge we learned in previous labs together into one huge lab. For me, it really solidified the disparate parts we had been learning about.

On a personal level, I do feel like the networking we learned will help us in our future jobs, if only in troubleshooting why something we developed is not working. Additionally, knowing more about how networks connect and work together can help me innovate and be more efficient in the systems I design and build out in the real world.

Server Diagram

Outcome 3

Determine that a database is properly structured.

Artifact 3.1

ER Diagram

ER diagrams are created to visually show the relationships that tables have with each other in a relational database and in order to properly structure that database. Getting to an optimal point is an iterative process, and it is ultimately determined by the needs of the website or business. In the end, the database is properly structured if it meets the needs of the business efficiently and does not allow for the possibility of data anomalies or too much redundancy.

One of the primary things I learned in the process of creating the ER diagram for my final project is how to create the diagram and what the different symbols mean. As a part of an iterative process to make sure a database is properly structured, the diagram can help you see where you may need to create additional tables to improve normalization and to create a properly structured database. I also learned how to take the ER diagram and forward engineer it in MySQL Workbench, which ultimately creates the database tables with the appropriate constraints from the ER diagram itself. This knowledge will help me be more efficient and consistent in a future job.

ER Diagram

Artifact 3.2

Database Normalization

In this group activity, we needed to take a sample table of data and normalize it, which is the key to demonstrating that a database is properly structured. Even though there are further levels of normalization, the general goal most often is to bring it into third normal form (3NF) or Boyce-Codd normal form (BCNF). Normalization reduces data anomalies, deletion errors, and too much data redundancy. All of these benefit businesses, which is why we strive to make databases properly structured.

Overall, I learned a lot about normalization and its importance through this project. One of the most interesting things I learned is that sometimes it is advantageous to denormalize a database—it can improve the performance of the server and make queries easier to write. I am also completing normalization for the database used in my final project, and these skills will be invaluable in the workforce.

Normalization Artifact

Outcome 4

Create web solutions using a variety of programming languages.

Artifact 4.1

The Pet Store Website

The Pet Store website was created for an assignment by using the Bootstrap framework and PHP to create a responsive website. This assignment taught me how to use PHP to take a more programmatic approach to web development, versus a more design-based approach. I also ended up learning how to make circular images and pills with Bootstrap, which was unexpectedly interesting to me.

This assignment will help me immensely in my future career because it has added a versatile server-side language to my repertoire. Additionally, I was able to learn even more about HTML and making a responsive website with the help of the Bootstrap framework. Web programmers today need to use these accessible tools in new and smart ways effectively design across the myriad web-enabled devices used daily.

Artifact 4.2

Jesse Valley Website

The Jesse Valley website is a portfolio site for my art and other creative works. It was my first ever multiple page website, and it was written from scratch with HTML5 and CSS3. Since I had no previous experience with web programming, I had to learn everything. Generally, I don’t complete sketches to plan out my artwork, so creating wireframes and mockups for a website was definitely my least favorite part of the assignment. However, using CSS and HTML to make the website look like the mockup taught me so much about web design. I also had to learn how to include a JQuery plugin on the website and include some custom JavaScript.

One of the final requirements for this assignment was to make continual improvements over time, which is where the web programming field (and software development in general) is moving. For this website alone, I created all of the elements and styling with only a text editor (which I believe will be very helpful for my future employment). The skills I learned will help me make customizations to existing frameworks (such as Bootstrap) and other programmatic methods of web design (such as Model View Controller, or MVC).

Outcome 5

Articulate development solutions to peers and supervisors.

Artifact 5.1

Fishing Licenses Webpage

This simple webpage was a collaborative group project. We were assigned the task of using JavaScript with a JSON object in order to present data in three different ways online. Using JavaScript, we also needed to learn how to create a sorting method for the data (we could not use the built-in JavaScript sorting functions)—our group was assigned the "insertion sort". We had no previous experience with JSON, and only limited experience with JavaScript, so we learned a tremendous amount through this project.

We had to present and elucidate the sort method we were assigned to the class. This involved visual aids to teach our fellow classmates about creating an insertion sort from scratch. We also were required to present important sections of our code to the class and explain how we came up with the solutions we used on our webpage. This experience will be very beneficial for a future job because I will need to be able to document and explain my code to co-workers and supervisors.

Artifact 5.2

IntelliJ IDE Project

This simple webpage was yet another collaborative group project. Not only did we need to articulate information about an IDE to the rest of class, but we needed to create a webpage about that IDE to share with them. We also had to create a sample Java project in the IDE we researched that would demonstrate the use and features of that IDE. At this point in my education at Dunwoody, most of the programming I had done was in Python and logically using pseudo-code. We had limited exposure to C#, and we had not done anything in Java. However, since it is very similar to C#, it turned out to be a great stretch project and was very doable. Overall, it turned into something very rewarding and gave me more confidence in moving toward the real workforce.

In addition to these programs and demonstrations, we had to present our code for the webpage and to talk about the development solutions we used in the process. Like I mentioned in the previous artifact, this process is something we will encounter in our jobs, so practicing in front of our classmates and teachers has a huge benefit.