• All in all, the project has gone very well thus far. The project isn’t completed, even though the majority of the original tasks are. Along the way further capabilities of the website were realized, and the project evolved into a much more comparable undertaking.

    During the course of the myMoneyPower website development, a few problems reared their ugly face. The problems primarily came in the form of third party entities. The website involves a lot of services offered by third party vendors who specialize in setting up custom websites for their clients. The discount programs page features links to these custom tailored websites. The discounts page also serves as the staple feature of the website. All the third party entities took longer than they estimated in setting up these websites. After the websites were set up, they were some minor problems. This took more time to fix. All the third party vendors were less than timely in correspondence as well. The combination of all these factors resulted in a delay of the website launch. The impact of this isn’t as big as it seems though. There were a few other factors that delayed the website launch as well. This included a video re-shoot and the scope of the project expanding.

    The project undoubtably took more time than I expected. This was partly due to the lack of control over the third party enities, but primarily due to the scope of the project changing. The team decided on adding a host management feature to the website. It would include a registration, log-in, and event management applications. A myMoneyPower host would be able to register, log-in, create an event, and send invites to guests via e-mail by using the system. It might seem like a realtively simple application, but it takes a considerable amount of time to code. There are several things to consider along the way. Things like security, validation, and efficiency. Other than that, I did a fairly accurate job predicting the time estimation. But I did make a mistake, I did not expect the project to change so extremely. Though I did make it explicit to my sponsor that my time estimations were based on the original tasks we agreed on.

    My web design skills were invaluable in aiding me in the completion of this project. My great knowledge of HTML and CSS allowed me to breeze through the design of the website. The only thing that took a significant time to code was the menu, but this was because I wanted it purely CSS for accessibility reasons. A javaScript based menu would be easier to set up, but would be less accessible to users and spiders. Javascript code is often ignored by spiders. Javascript causes longer load times and is often disabled by users. Having javascript disabled could mean the user would be unable to navigate through the site. A CSS only option was the obvious choice.

    I had to teach myself a great deal of PHP to complete this project. I knew enough to complete the assessment forms without a hitch. It took a little bit of research to code the validating contact form. It took a great deal of learning to code the unfinished host management system. I consider myself a designer more than a programmer, and I made this explicit on the start of the project. Though, I am very glad I am undertaking these tasks. I have no qualms with increasing my knowledge and skill-set.

    The most obvious take away from this project is a great addition to my portfolio. This is the most tangible to the outside eye. Though I value the experience much more. I learned a great deal about time estimation and problem solving. I learned to expect the unexpected, and most importantly, plan for it. I also learned a great deal about how businesses operate. I now know to expect those third party companies to take longer than they say they will. I also learned to treat them like team members. Checking in on the progress every couple of days would of helped them stay on task. I also gained a fair amount of communication skills. I took part in two conference calls every week and learned how valuable working in teams really is. To conclude with, I am very grateful to have managed this project. I feel it has added an invaluable amount of both soft and technical skills to my repertoire. I am extremely glad to end this chapter of my academic career with such a involved learning experience.

  • A good website needs to be able to capture data about their audience. A website is a marketing tool, and pertinent data is a marketer’s best friend. Capturing data might seem like a simple process from the outside, but the code behind it is quite complex. Outsiders think you can just throw up a form on the site that is the end of it. But, capturing data is a tedious process and a lot has to be considered to ensure viability. Efficiency, security, and accessibility are all factors that have to be taken into account.

    An efficient database should only store information that you need. Storing data that you don’t need is a waste of time, space, and money. It might only take a few kilobytes of storage for each field in a database, but when you have thousands of people entering in their information, those unnecessary fields could result in thousands of dollars in hard disk space. Also, as the amount of unnecessary data you store increases, so does your risk. Recently, a standardized test company was embarrassed because of unnecessary data storage. The company was supposed to store data about test scores with no identifying information, to discover trends in scoring. They decided they wanted to store every student’s name, address, phone number, and social security number. They accidentally made the database publicly accessible, and not only were thousands of students’ test scores exposed, but as well as all the private information needed to allow identity theft. Only store data you need.

    All data capturing methods need to be secure. From the PHP forms to the databases themselves, everything needs to be integral. PHP forms are particularly suspectible to SQL injection attacks. SQL is the language used to moderate databases. A SQL injection attack, is the injection of SQL code into a form to perform unintended tasks. For example, a person could enter the following into a form and delete the members table from the database.

    Name: Derek Allen
    E-Mail: dja05c@hotmail.com’ DROP TABLE members;’

    By using a apostrophes I injected a SQL command to attack the database. This type of attack can be used to do almost anything, from viewing a database’s entire data, to deleting it, or to send out automated spam e-mails. By using addslashes() or mysql_escape_string(), we can tell the forms to ignore any apostrophes, preventing any SQL commands being ran by user input.

    Another security strategy involves server side validation. Using PHP to validate user input before it interacts with the database enchances security. This not only prevents the user from using SQL injection but also ensures all the data is correctly formatted and stored. By using the following expression, all non-numerical characters are stripped from the Phone Number field and if it is ten characters long it is stored, if not the user is alerted of the error.

    $phonelength = 10;
    $_POST['phone'] = ereg_replace(”[^0-9]“, “”, $_POST['phone']);
    if(strlen($_POST['phone'])!=$phonelength) {
    $error_message .= ‘Please enter a phone number that is exactly ‘.$phonelength.’ digits long.’;

    So if a user enters his or her phone number in any of the following formats, it is still stored:

    8501234567

    850-123-4567

    (850) 123-4567

    And if the user entered something like the following:

    (850)123-4567′ DROP TABLE phone_numbers;’

    The malicious code at the end of the statement would be deleted.

    Finally, a good database is accessible. More often than not, the people who code and maintain the database are not the only people who need to access the data. You could share this data in a variety of ways, including: writing a SQL retreive statement everytime someone needs data or designing a web based log-in system that grants pre-defined users access to the data. Both of these strategies would be very time consuming. As an alternative, I have introduced a marketing tool, SugarCRM.

    SugarCRM is a customer relationship management system. It is a password protected system that allows users the ability to market to and support customers. I will integrate my PHP forms to populate the SugarCRM database with the information users enter. For instance, if a user fills out the Request Information form, their information will be entered into the Leads section of SugarCRM automatically. Then our Sales & Marketing employees can log-in to SugarCRM, and use this information to contact them, and make notes about the potential client that are shared with every other user. We can also use this information to conduct e-mail campaigns that SugarCRM will send out automatically. That is really just the tip of the iceberg of what SugarCRM can accomplish. I have chosen to use the open source edition, which is entirely free. This solution is not only cost-effective, but timely. I do not have to waste time designing and coding a user interface for the database. All I have to do is install SugarCRM, create some user names, and point the PHP forms to SugarCRM.

  • The first major problem came in the form of a third-party entity, our web host, Matrosity. It became evident really early on that the website needs to do more than just deliver information. The concept behind the website involves value added features. The website needs to add value to the program in order to increase participation. To add value, the website has to grant the users access to valuable tools. The tools include contact forms, assessment/workbook exercises, functional applications, and instructional videos. All the applications and forms will be PHP / mySQL based. The problem shows itself, primarily, in two ways: storage and functionality.

    Our current web hosting plan is limited to 100 mb at $20/month with 10 gb transfer bandwidth. We plan to utilize several instructional videos, ranging from 10-30mb in size. Under our current plan, we might be able to use three of those videos. An ideal plan would include 1000mb storage and 50gb transfer and would cost upwards of a $100/month with our current host. Any of the major players in the hosting industry offer these types of storage and transfer for about 10% of the price. Matrosity is also not very fast, and the videos load very slowly.

    The second problem with Matrosity is functionality. We want the website to serve as a medium for participants and potential participants to contact us with. Matrosity uses a very restrictive mandatory spam filter. A lot of e-mails from clients are never received and our host refuses to compromise. If we have an important e-mail coming in and we tell Matrosity what address it will be coming from, they will not create an exception allowing the e-mail to be received. With myMoneyPower a lot of organic e-mails will be coming in, that will be surely bounced by Matrosity’s paranoid spam filter. This is unacceptable and needs to be addressed.

    The second functionality problem involves PHP programming. Every functional aspect of our website will be driven by the programming language, PHP. PHP is a server-side scripting language that allows interaction with databases. We want to use the website to capture data about our audience. In order to feasibly interact with PHP, you need access to a shell client, a online command line interface. Even though Matrosity supports PHP, they do not allow shell clients to connect to the web server. This means every time I change a single character in a file, I have to re-upload the file to the web server to see any changes, as PHP only operates on the server level. This method of programming is extremely implausible and time consuming, and thus, out of the question.

    I propose hosting the myMoneyPower website on another web host. The web host should be a major player in the industry that offers ample storage, a fast connection speed, nonrestrictive spam filters, and a facilitation of PHP programming. I advocate the switch to the webhost, Dreamhost, for several reasons. First, I host my personal websites with Dreamhost, and have not once encountered a problem with their services. Next, I am also very familiar with their control panel and how their web servers operate. Lastly, they are far cheaper than our current host ($10.95 with no obligation), and on par with the industry average in terms of service and cost.

    A spreadsheet highlighting the technical differences not mentioned above can be found here: Host Comparison Spreadsheet.

  • The myMoneyPower website needs to be a complete financial guidance resource for the individual. Given that this content is delivered through the website, there is a great opportunity for advanced functional online tools. In the last couple of years, online finances have grown exponentially. More and more people each day enroll in online banking. This has sparked the growth of third party finance analysis and management tools. Companies like Mint allow you to enter different bank/finance log-ins, and they retrieve your data and aggregate it into one financial portal. They also offer in-depth analysis tools. They automatically categorize your expenditures and allow you to monitor and compare your spending. You can compare this month’s grocery spending to six months ago. The concept of this tool fits perfectly into myMoneyPower’s financial fitness program. Which presents a problem, how do we offer these types of services, for free, to our participants?

    The first solution would be to develop and host these services ourselves. In order to have complete control over these applications and their functions, we would have to create and host them. This would allow us to custom tailor the applications to fit the needs of the participants. We would be able to go back and make changes based on feedback, or even add new features as the program progresses. This would also serve as another source of revenue in the future. Mint makes money through advertising. They target individuals who spend a lot at certain retailers with special discounts and coupons. These retailers pay for this advertising. Credit card companies also target individuals through Mint. Based on spending trends, a credit card that better fits the individual’s spending habits can be signed up for. Perhaps timely and certainly costly, the development of these applications could prove to be a viable tool.

    The second solution would be to contract third party entities for the supplying of these applications. This contract would be a referral program. myMoneyPower would refer participants to the select applications, and the providers would grant free access to our participants. Ideally, we would also receive a commission/referral bonus. It would also be ideal if these entities could conform, if even minimally, to myMoneyPower’s branding in terms of colors and logos.

    I propose the second solution. Given the current constraints on scope, time, and cost, I feel that this is the most viable option. The short-term scope of the third party applications would be far greater than any application developed in-house. Given that I am the only web developer, it would also take an insurmountable  period of time to develop these custom applications. Lastly, it would be far cheaper to contract out for these applications. It would take hundreds of more man hours to code even a primitive online application that fits the needs of myMoneyPower. As far as I am concerned, the second solution is the only current option. Later down the line, when myMoneyPower is launched and has grown successful, the first solution can be reconsidered. But this is at the very least a year+ down the line.

    Tags:

  • The scope of the project is rapidly evolving. Because of this, objectives must be split up and broken down into different phases. This will allow for a logical flow of work progress. I will get the primary and simple objectives done first, before I move on to the more complex and time consuming tasks. Following this method will allow for a timely and accurate fulfillment of the website’s goal: the design and implementation of a myMoneyPower website that facilitates program participation and revenue increases.

    In order to meet this goal, the following objectives need to be met:

    1. Presentation of Information: All program information needs to be presented in a logical and easy to read manner.
    2. Assessment Exercises: The premise of the program is to gain trust through free financial guidance. Online assessment forms need to be created with a high attention to detail.
    3. Contact Information: In order to enroll, people must be able to easily contact the appropriate people.
    4. Host a Party: The primary resource for party hosts will be the website, all information needs to be presented in a clear and concise manner.
    5. Search Engine Optimization: At the end of each live phase, the website’s SEO needs to be analyzed and modified to ensure constant traffic.
    6. Third Party Bonus Features: Part of the value added aspect includes third party bonus sites. These bonus sites should result in savings for the individual. These sites need to be carefully chosen, and should integrate into the program’s website.
    7. Site Design: The website’s design should be in close proximity to the designs developed by Martopia for the physical marketing material. This will help maintain and further brand identity.

    A number of assumptions are evident in any project, with myMoneyPower being no different. I assume constant access to the necessary resources like a workstation, programs, and the web server. I assume the web server will be up and running 99.99% of the time. I assume the third party affiliates will hold up their end of the contracts. I also assume their sites will be up and running 99.99% of the time. I also assume all team members will be available through out the project, and that monetary resources will be as well.

    There have been some constraints that have impacted the project and some I perhaps foresee being an issue. Cost has affected the project already. I have only been granted resources to purchase Dreamweaver and no graphic software. It is cheaper to hire a graphic designer to make the handful of images necessary for the site. But it would be quicker if I could create the images myself. Time is a second constraint. The website development must be in sync or ahead of the program’s overall development to ensure a timely launch.

    Tags:

  • Let me begin with a brief overview of the myMoneyPower program. myMoneyPower is a personal financial guidance program. It will offer several services, with the primary ones being free. The primary service is free financial guidance delivered through the website. The website will feature a good amount of content aimed at giving the visitor some valuable financial advice. Not only that, but it will tell the visitors how to achieve this, all without any commitment. The idea is to develop a bond with the visitor, offer them very good advice for free, and intrigue them into looking into the program’s other services. The services that would cost money would be personal financial guidance meetings with a representative. The representative would do everything in their power to help organize and improve the client’s finances. It would be an investment, resulting in more financial power for the participant.

    My portion of the project is the design, creation, and implementation of the website. This is very important because the primary marketing will be done online through this website. There is no office people can go to and learn about the program. All the information must be readily available on the website. It must be presented in a very structured and easy to navigate format. It must also achieve conversion. There is no face to face sales pitch to the customer. The website must convert people into enrollment with the program. The biggest challenges do not come in the form of coding, but in the form of marketing. The website is not overly complex or reliant on object oriented code. But it has a very hefty achievement to make in terms of marketing and conversion.

    The project was born out of a couple business problems. The primary one being profitability; How can Worksite Communications increase their revenue? The project will increase revenue through enrollment in the program, and referral bonuses to third-party services such as discount prescriptions and green energy consultation. In order to achieve true financial security one must enroll in coverage plans and the representatives will serve as a medium to do this.

    The second business problem is growth; How can Worksite Communications grow and expand their operations? There are many reasons for doing this including increased revenues, market share, and brand equity. Worksite Communications is expanding their operations into the personal market. This expansion will accomplish all the aforementioned reasons and will better prepare the company for their primary audience, the corporate sector. Worksite Communications enrolls businesses into benefits packages that are custom tailored to fit their needs. Understanding the individuals that make up these businesses will allow Worksite Communications to better fulfill their client’s needs.

    The third problem is survival. In the current times, businesses are suffering losses, cutbacks, and layoffs. Rather than buckle up and take the hits, Worksite Communication is looking for opportunity. With the economy wavering people are in desperate need for financial guidance. Worksite Communications realizes this and are utilizing this as an opportunity to fill the void of the inevitable loss of profits from their primary business operations.

    The deadline of the project is split into two phases. The first phase will culminate with the official launch of the primary website. The deadline for this is set for June 12th. The second phase will consist of revisions based on feedback and the addition of the programs with more advanced features. The deadline for this is set for July 10th.

    The team members will communicate everyday through correspondence. There will be weekly conference call meetings to ensure project stability. The team is compromised of the following members:

    • Joe Gaudino - President
    • Maria Hinson - Marketing & Implementation Manager
    • Diane Matheson - National Implementation Manager
    • Derek Allen - Web Developer


    Tags:

  • Welcome to my LIS 4910 Information Technology Project blog. I will use this as a medium to track and highlight my progress of my project. Please visit the About Me page to learn more.

 

May 2012
M T W T F S S
« Aug    
 123456
78910111213
14151617181920
21222324252627
28293031