Learning Proposal

Name:Jordan Fonseka
Student Number: 10637217

Personal Learning Needs

SWOT Analysis

Strengths

A good basic grounding in fundamentals like (X)HTML and CSS based website design.
Prior experience in creating simple web sites.
Skills in using graphic creation and editing software (photoshop, illustrator etc) familiarity with HTML editing software (dreamweaver) etc.

Weaknesses

Very limited exposure to server side technologies such as PHP and SQL.
I have experience with java and javascript, but my coding skills are very average.

Opportunities

The opportunity to learn some new skills which will be genuinely useful in my day to day work and experiment in a risk free environment.

Threats

Choosing a project that is too ambitious or complex for the given timeframe and consequently not completing that project goal.
I have a bad habit of getting too focused on small details. The most obvious example for a project such as this would be spending too much time on designing interface and graphics when my interest is back end scripting.

Learning Needs in DMT

PHP is my main focus followed by SQL. And, if time allows, I will attempt to learn and implement some AJAX style functionality. However, I am considering this last item a 'bonus' goal and it's likely that it will not be possible in the given timeframe.

Learning Plan

Objectives

I want to dive into technologies and develop skills which are practical and I can transfer directly into my day to day work. To be very specific, I'm currently involved in rolling out an open source content management system called Drupal to drive my employer's website. (Drupal is in fact used on the DMT website: www.dmt-uts.net, for information on drupal see also: www.drupal.org). Drupal is quite powerful 'out of the box' but for serious customisation it's essential to posses a knowledge of the underlying technologies.

Drupal is written entirely in PHP. Custom 'modules' may be appended to the Drupal core to extend functionality. My primary goal is to get acquainted with PHP.

Drupal is also a database driven CMS, specifically MySQL. So my secondary goal is learning more about SQL databases and database design.

Strategies

1. What will you build?

I will attempt to create a web application which acts as a support or subscription tool by distributing files to users on request. Depending on the level of access users have they will be able to request files and be provided with download links by a web page.

2. who is it for?

Realistic scenarios for this application include for example, a music subscription service which provides users with audio files related to interests they specified when they created an account, or perhaps a software update service which deliver users patches and update files to software they own and so on.

3. What technologies will it use?

To realise the application I will need to create a facility to allow users to register and create a unique username/password combination, as well as a stored profile which gives an indication of what files the user will be interested in.

I will need to devise a security strategy to handle login and registration processes. My application will also be required to send email as part of a verification process or password retrieval process. I will need to access stored files on the server and have the ability to provide unique links to each (possibly based on a session token) to ensure the user is not able to simply post a static file link elsewhere (such as on a message board).

I will also need to create an interface for administrator level users to upload and 'tag' files for appropriate distribution amongst registered users.

The pages will be visually quite plain so that I can concentrate my efforts can be the back end.

4. how does it satisfy your learning objectives?

From an end user point of view there will not be a great deal of substance in the final result - just a couple of pages dealing with login and download, however I think there are enough concepts involved to make the project worthwhile as far as my learning objectives go. For example, security, file upload and download, sending email via php, database management and design and so on. The focus is squarely on PHP and SQL, and there are range of realistic functions which will easily transfer to 'real world' projects.

Keeping in mind what I listed under 'threats' (see above) I think the scope is probably about right for what will end up being about 10 weeks of work, especially when the only other subject I'm taking this semester is Database Fundamentals (31271) which deals almost entirely with SQL and ought to make things go a lot smoother for me in that respect. If I find things progressing well I can add AJAX functionality and have the entire web app operate from within a single web page and add in more administrator functions such as modifying other user permissions via the webpage.

5. sketches, wireframes, architecture, diagrams etc...

click here for a flow chart illustrating how I imagine a user might navigate through this web page/app.

Schedule

very rough schedule

References

Hunter Dunlap, Issac. Open Source Database Driven Web development, Chandros Publishing, 2006 Oxford UK

Mannino, Michael V. Database design application development and administration Third edition, McGraw Hill Irwin, 2007 New York.

Coggeshall, John. PHP 5 Unleashed , Sams Publishing 2004 USA

W3Schools Online Web Tutorials www.w3schools.com/

http://www.opensourcetutorials.com/tutorials/Server-Side-Coding/PHP/

http://www.builderau.com.au/program/php/