Thursday, May 28, 2015

Extra Blog: }

It was pretty fast I would say. Mandatory school. School that students need to complete before starting into society and can make their own decisions of what they want to do. All these years, 15 of them, went by like a blink of an eye. And high school was only a faction of that blink. It's crazy to think that this is over, but we must move on with life.

High school has been fun and stressful at the same time and I have changed my mindset regarding the world. I see it as a place with possibility and people. But despite high school ending, I want to enjoy the rest of it to its fullest. I aim to spend time with the people I've been with for the last four years in the next week to the fullest since, for some of them, I may never see again.

Regardless, I am glad that I am almost stress-free, the last thing I need to consider is my college classes and finals. I am glad I've had the experiences I see a bright future ahead, regardless of where I go. I wish everyone the same as well. It's sad honestly.

Also, we are now a part of history, and, like so many other years, are graduating high school. I have confidence in this class that they will make a change to this world we live in. There are some great people in this class. Kind and happy people, leaders, and creators. If any class can do something to this world, regardless of whether they are good or bad, I believe that this class has the power to do that. To be more than just a statistic in history, but rather, a driving force for a new tomorrow.

Senior Project Reflection

1. Positive Statement

What are you most proud of in your block presentation and/or your senior project? Why?

Time management with the amount of information I had. I had more than 70 slides and I was able to us up all the time and include everything. I was worried I wouldn't have enough time, but I used it all efficiently. Also, I was able to speak energetically throughout the presentation without

(2) Questions to Consider

a. What assessment would you give yourself on your block presentation (self-assessment)?

          AE/P

b. What assessment would you give yourself on your overall senior project (self-assessment)?

          AE/P

(3) What worked for you in your senior project?

Having actual experience in programming and creating applications as well has having solid evidence for my answers. Each were very direct the answers were clear and made sense logically. There was a lot of information and I was able to communicate them well, despite the large amount of content.

(4) (What didn't work) If you had a time machine, what would you have done differently to improve your senior project if you could go back in time?

I would have cut some slides from the powerpoint as some were not as needed. Also, I would prepare better organization of distributing the activity forms as they was disorganized. I would also rehears more so I wouldn't stutter.

(5) Finding Value

How has the senior project been helpful to you in your future endeavors? Be specific and use examples.

I was able to understand what it really takes to be a software developer and a programmer in general. I was able to learn things that people wouldn't learn until they start working, therefore giving me ample experience in programming. I will have a large amount of background experience going into the major of computer science as well as understanding what exactly is possible with technology.

Monday, May 11, 2015

Blog 22: Mentorship

Literal
Log of specific hours with a total and a description of your duties updated on the right hand side of your blog.
Done.

Contact Name and Mentorship Place
Lily Wu.
Our house at her computer desk.

Interpretive
What is the most important thing you gained from this experience? Why?
The most important things that I have learned from mentorship are various programming skills and information as well as how to actually applying that knowledge that could be used in a practical way. This includes not only teaching me a large amount of code that helped me later on in my independent component and having me research parts and create a computer from scratch, but also showing me the code and contents of example programs that she had worked on previously in the workplace. These elements helped me to understand what it really means to be a programmer and what I would need to generally prepare for when I enter this field in the near future.

Applied
How has what you've done helped you to answer your EQ? Please explain.
During mentorship, I told my mentor about my essential question and asked about her thoughts on it. She immediately said that the most important aspect is the understanding of the business side of the application, meaning to understand all the external aspects of the developing application other than programming itself. This would include communication with team members, understand customers' needs, and knowing how the application will be used. I was able to experience how important this was by doing work assignment she had me do including creating a computer and installing software such as the Oracle database into the computer. I had to understand what exactly she wanted and needed to cater my actions towards that need. Doing this helped me to develop my 2nd answer to my EQ and ended up becoming my best answer.


Sunday, May 10, 2015

Extra Blog: Generating Reports in PDF Format

As an addition to the development of JIIS, I allowed for users to have a way to generate a report of the existing user records in a PDF format that could be downloaded, saved, and printed. On the report, it contained the title "JIIS User Profiles Report," the report generation date, the report page number, and the table of all the current user records in the JIIS_User_Profiles database table. My mentor helped to guide me through this process by directing me to which sample programs to review, as well as what I should replicate in the JIIS programs.


Also, in addition to implementing the ability to generate user profile reports, I changed the font color and size of the alert messages in the add and update forms so that they could be more noticeable. I changed the font color to be red and made the font almost the same size as the titles of those forms.



Wednesday, May 6, 2015

Exit Interview

Content:

(1) What is your essential question, and what are your answers? 

EQ: How can a software developer create applications that best meet customers' needs?

Answer 1: A software developer can create applications that best meet customers' need by having a solid foundation in fundamental knowledge.
Answer 2: A software developer can create applications that best me customers' needs by understanding the business side of the application.
Answer 3: A software developer can create application that best meet customer's needs by actively keeping up to date with technology and continually learning new technological subjects.

What is your best answer and why?
My best answer is my second answer, due to the fact that it involves the developer of the understanding of the customer, the people who will use the application, and how it will be used. In a sense, it is basically the understanding of the application's main purpose to fulfill. A solid foundation, as stated in answer one, can be helpful and will certainly make the process of creating the application easier, but this does not mean that the application will directly be in line with customers' needs, much less met them at all. Also, as stated in answer 3, learning new subjects is also helpful and it allows the developer to be be flexible if addressed with a task they have never done before, but this is not present in every request. In fact, it rarely happens that the developer would need to learn something new. Also, learning new things can help to meet a customer's needs by doing something they requested, but it will not ensure that it can be completed as successfully as possible as having an understanding of the business side of the application. Therefore, due to these reasons, answer 2 is my best answer.

(2) What process did you take to arrive at this answer?
I wanted to research what is at the core of programming an application and wanted to single out what was really important. I found that the only reason why applications exist is due to the end goal, as everything is worked towards and developed to complete it. I found that this goal is the customers' needs on the business side of the application, mixed in with other work and date that needs to be researched. My mentor even said that the business side is most important as well as it allows the programmer to not only understand how the system works, but also understand the request, or end goal, as well. I was able to see how this relate directly to both it's success as an application, but also its relativity to the essential question itself.

(3) What problems did you face? How did you resolve them?
One problem I ran into was defining who the customer is. Throughout my research, I found that applications were for both customers that came directly to the developer with request (as in the case of my mentorship and independent component), as well as the customer as a general target audience in the market. To make sure I could accurately represent who the customer is, I had to define the customer as two different types - a direct customer and a target audience. I also had to define the differences in knowing what their needs are since direct customers would write request layout all the needed items explicitly and target audiences would be unknown, therefore requiring research into what problems they need solving.

(4) What are the two most significant sources you used to answer your essential question and why?
Stating that the business side is extremely important.
Mentorship and interview with Lily Wu.

Why understanding customer is important.
Interview #3 with Jorge Huerta.

Identified how much change is causes depending on the target audience.
Katie Klumb's article "How to Design Websites for a Target Audience."

Link that the target audience is a customer also.
Diane Vigil's article "Web Design, Ad Copy and Targeting your Target Audience."
----------------------------------------------------------------------------------------------------
Huerta, Jorge. Personal Interview. Feb. 13, 2015.

Klumb, Katie. "How to Design Websites for a Target Audience." Web Ascender. Michigan Website Design and Development, July 1, 2014. Web. Jan. 23, 2015.<http://www.webascender.com/Blog/ID/565/How-to-Design-Websites-for-a-Target-Audience#.VMJZTivF-VM>

Vigil, Diane. "Web Design, Ad Copy and Targeting your Target Audience." Web Design Help. DianeV Web Design Studio, n.d. Web. Jan. 23, 2015. <http://dianev.com/web-design-help/web_design_basics/target_audience.html>

Wu, Lily. Personal Interview. Oct. 24, 2014.


Sunday, April 26, 2015

Independent Component 2

LITERAL
(a) Statement saying:
“I, Jason Wu, affirm that I completed my independent component which represents 37.5 hours of work.”

(b) Cite your source regarding who or what article or book helped you complete the independent component.
Rockoff. Larry. The Language of SQL. San Bernadino, CA: Course Technology Cengage Learning,
     Feb. 27, 2015. Print. Mar. 27, 2015.

(c) Provide a digital spreadsheet (aka log of the 30 hours).
The digital spreadsheet has been completed. This is the link to the spreadsheet: https://docs.google.com/spreadsheets/d/1pk06m750zrh1IsLXwaHWU21neVqb5LkzlIeC5KYTGr0/edit#gid=0

(d) Explanation of what you completed.
For Independent Component 2, I expanded Jason Internet Information System (JIIS) to include the use of the Oracle database as well as additional functions, as specified by my mentor's service requests, spanning over three phases. The first phase involved setting up a database table, named JIIS_User_Profiles, using the PL/SQL Developer so that the JIIS Web Application can have access to the database table to store user ID's, user passwords, first names, last names, phone numbers, security levels, and password status. I also reviewed several sample ColdFusion programs that my mentor gave me to study. Based on what I learned, I used the sample programs as a template to create JIIS programs to connect to the JIIS_User_Profiles database table. I tested the programs and debugged four of them so that they could connect to the database properly. The second phase, I converted my existing JIIS Web Application programs from HTML to ColdFusion so that they could interact with the database. Basically, the task was converting the static web application to become a dynamic web application. Here, I also made the header bar, footer bar, and Cascading Style Sheets (CSS) code, which alters the look and format of the page, into their own, separate programs so that they could be easily changed in the future without having to alter every page that contains them. The third phase involved including addition functionality to the JIIS Web Application. I created entry form programs to allow "Administrator" and "Manager" users to add new user records into the JIIS_User_Profiles table. Users who do not have the "Administrator" or "Manager" security levels will be unable to have access to this form and will get a message stating that the add function is not available to them. In addition, when a record had been successfully added to the JIIS_User_Profiles table, I generated a display message to indicate that it had been added successfully. Next, I created programs that also allows "Administrator" and "Manager" users to view all of the existing user data records that had been saved into the JIIS_User_Profiles database table. Again, users who do not have the "Administrator" or "Manager" security levels will not have access to the view function. Furthermore, I created several programs that would allow "Administrator" and "Manager" users to have the ability to modify, update, and delete user records, as well as have the ability to reset a user's password. First, I modified the view program to add a hyperlink in the User ID column to allow "Administrator" and "Manager" users to select and click on the link to have access to the update entry form and transfer the selected record onto the update form. Second, I created programs that allowed "Administrator" and "Manager" users to modify existing user data records and update it in the database table. The programs also allows them to delete the user's data record from the database table as well as reset the user's password. While developing these programs, I performed an extensive amount of testing to ensure that everything was working, including validation of the user records in the database table.

After development and testing of the web application was completed, I modified the header button images to better reflect the contents of the web application. I also added in comments into the programs to log changes and to describe what the programs do, as I had learned from my mentor before hand. Once this was completed I preformed a final test to ensure all of the the programs were working properly and turned it over to my mentor for acceptance testing. Throughout the development of the JIIS Web Application, I researched web design and read an SQL book.
 
INTERPRETIVE
Defend your work and explain how the significant parts of your component and how it demonstrates 30 hours of work. Provide evidence (photos, transcript, art work, videos, etc) of the 30 hours of work.
Developing JIIS allowed me to understand what it really took to develop a web application for a customer. Each phase of my Independent Component had requirement tasks that I needed to complete by a deadline. I had to exactly meet these needs and had to follow them exactly as they were stated in the service request specification from my customer. The experience I had developing a web application is similar to what people do in the work place. I also dealt with setting up a database, creating a table, and using it.

Phase #1 Work Assignment

Phase #2 Work Assignment

Phase #3 Work Assignment

The JIIS_User_Profiles table and it's contents during developement

The Update form without the Reset Password function

Notification that the user was updated successfully

The View Page and the links to the Update form

The Add Form

Code for the add form that adds the inserted information into the database

Code that makes the actual, visual part of the Add Form

Code that checks to see if the current user has enough administrative rights to access the page


APPLIED
How did the component help you answer your EQ? Please include specific examples to illustrate how it helped.
This component helped me answer my EQ as I was able to see how all three of my answers apply to meeting a customer's needs. My first answer was supported in that I needed extensive knowledge of how to program before actually creating the application. I spent a large amount of time learning how to use SQL code and planning the logical steps of how to achieve my objective. My second answer was supported in that I needed to understand the business side of the application, how it will be used, and the customer's expectations. This included designing the layout of the webpage. Also, if I didn't meet a requirement exactly, my mentor had me correct it. I also had to learn to communicate with my mentor to ensure that I understand all the requirements completely. This, as well as other factors, enforce the need of understanding the business side of the application. My third answer was also supported in that I needed to know how to use tools such as the PL/SQL Developer to create database tables and Adobe Dreamweaver to design and write programs. I also had to learn how to program using the ColdFusion programming language to create a dynamic web application. I learned some of these aspects as I was developing JIIS, but they were all something new to me that I needed to know to be successful in completing this component. This enforced the idea that continuous learning of new skills in technology is essential in creating a web application for a customer.

Tuesday, April 14, 2015

Extra Blog; HTML to CFM

On April 12th (starting on April 10th), I completed the first and second phase of the Independent Component work assignment. This involved creating a database table for user profiles and converting my previously made HTML programs of JIIS into ColdFusion (CFM) programs.


For the first phase of the independent component, I created a new database table in the PL/SQL Developer and named it "JIIS_User_Profiles". Here, I added in user ID's, user passwords, first names, last names, phone numbers, security levels, and password status. Then, using SQL code, I retrieved information, added new records, updated existing information, and deleted records from the table. I then turned my work assignment over to my mentor to perform acceptance testing for phase 1. Once she completed, I moved on to the next phase.



After using existing FRS ColdFusion programs that were given to me by my mentor that allowed the application to connect to the database tables, I was able to complete this phase 2 swiftly. Some versions of the code weren't working so I had to debug the programs. Some programs worked after renaming the specified table to the one I made in the database. Others were more complicated. One major problem I ran into was updating a user's password from the default password, "12345". At first, I thought that the problem was due to a few lines of code that converted the user ID from lower case characters to upper case characters to check against the user ID's in the database. Since the user ID's were lower case  in the database (an 'e' followed by a number), I decided to remove that part of code. Unfortunately, it was late at the time, and I could not fix the problem.

The next day, I started working on it again. I decided to make the user ID's upper case in the database table and re-entered the lines of code that I deleted the day before. After testing it, the program worked fine and I confirmed that the user's password was updated in the the database table correctly.

Once I fixed this problem, I needed to convert my previously made HTML programs to ColdFusion programs. This part was pretty easy as I had a clear idea of what to do. First, I copied and pasted my HTML programs into the ColdFusion "CFM_Code" folder and changed their file extensions to .cfm. Then, I decided to update the directories of the images and hyperlinks in the programs to match the new locations of the program files. Once I started doing this, I realized I should make two new programs for the header and footer bars so that, instead of altering every hyperlink and directory path of the images repetitively in each program, I could instead just modify them once.

After making separate programs for the header and footer, I altered the "JIIS_Functions" program to match the directory paths in the folders as well. I then entered the <cfinclude> tag into each of the programs where the header and footer were used. After performing unit testing, the result displayed the header and footer correctly.

After converting all the programs from HTML to ColdFusion, I performed the final acceptance test to ensure that all the buttons and hyperlinks worked. After changing some minor bugs, I was finally able to get the program to work completely. I turned over my work assignment to my mentor and she checked all of my programs and performed validation testing to ensure that all the requirements for the second phase of the work assignment were met.

Now that I have completed phase 2, I will be starting on phase 3, the final part of my independent component. It will consist of creating a new entry form that would allow users to add, delete, update, and view user information.