Friday, 24 June 2011

STU199 - ECA miniportfolio - Build

This week I am in the build phase of the project.

At the start of the week there were no details supplied from devtech regarding the unix accounts for hosting nor the the database logins/passwords. Chased riky up via the pm and some of this has been done.

We now have database we can connect to I can now run the development version of the application as I build it.

We don't have the file storage system up and running yet although devtech are saying that it shouldn't take any extra time since they are looking for the application to handle the file synchronisation. They never said how long though.

SDS

Mike has also finished with my design document, there are two changes required:

  • How will I schedule the staff intake from EUGEX - this will be an scheduled, automated task.
  • remove references of CRON and replace with coldfusion scheduled task - instances now changed.
He has looked over the changes and signed it off on Bills behalf. This will be used for the project signoff next week.

Build Progress

The build is actually going well, I'm not having too much difficulty with the mach-ii framework and I am able to convert the outdated functional implementations to more up to date versions.

As I've said in previous entries there are gaps in the software where manual work is being carried out and some of this still needs clarified.

Friday, 17 June 2011

STU199 - ECA miniportfolio - Design

The familiarisation period is now finished and this week I am now working on the design document. I've also had two days leave, monday and tuesday so three days on the SDS out of five.

What I have done is try my best to automate the manual processes already in the software, as the current system works reasonably well. There does appear to be holes in the processes though, some of it must be done manually around the hard coded areas. It surprises me that they are able to keep track of all the changes that need to be made in this application.

To produce the specification I have followed the business requirements document (BRD), investigated coldfusion functions and data structures and seen what would be suitable for this applications needs.

The original database schema requires some updates I am including a lookup table for the staff and course relationship and adding in a staff table. Extra fields are still being defined at the moment and I am awaiting further information on this.

I have also been consulting with mike mcmonagle, another developer here, he has been reviewing my work.

So far I have been testing methods of automation of some processes and adapting my database to suit.

I will be submitting my design for approval today and I will update when I get it back, it is likely since this is my first big design task that I may need to make a few changes.

Meeting

We also had a progress meeting today, this was more focused around the storage solution being worked on by Riky in devtech, with the servers we are using being load balance over two machines that means we needed to work out how we can store files which would be available to both machines and allow both reading and writing by each server.

This has introduced the issue of disaster recovery, how we recover this file system seems to be more difficult than than the issue of storage itself. I have been asked to try and work out a coldfusion system of recovery, this system should check both servers local storage for inconsistencies and then copy the files between machines to ensure the shared storage now holds the correct data and that none has been lost while the system was down.




Tuesday, 7 June 2011

ITS199 - ECA Mini Portfolio - Familiarisation

Update

I have now finished the budgeted period of familiarisation for this application.

So far I feel I have a reasonable understanding of how this application works and I feel confident that I can soon move onto the design phase of the project

In order to familiarise myself with the system I took the following steps;

Firstly I broke the system into its applications (as defined in the original business requirements and by the URL's used to navigate to them)
  • Applicants
  • Administrators/Staff
For each of these I drew a UML (there is every possibility it may not be perfect UML) model of the page sequence (and any deviations from it) a user would follow in making a portfolio submission. As I went through this I noted the functions each page used.

Following on from here I then went through the code starting from the Application.cfc file and began to model all the processes used in the Applicants side, where they start and what functions are involved in automating them. This model also took into consideration the datasources used and queries ran for each process.

These step were also repeated for the Admin side, although I ran into problems here as I am unable to access certain parts of the administrator functions and it seems that without getting another administrators passwords, I don't think this will be allowed as the MiniPortfolio is still a live application and so is its database. I don't have access to the ECA's servers so my access is restricted, what I do have access to is the code itself and a read only copy of the database.

The software itself has been written in a procedural style and has vaguely been compartmentalised (i.e. the admin side in an admin directory, business logic in another directory and some form of framework to the architecture). As I missed the chance with iSkills I am going to design this application to use the Mach-II framework (frameworks are the last hard skill I need to have before I leave my placement then that gives me a working experience of them).

I know I will need to add a further table to the database schema however I asked other developers to look at the original and was told its only semi relational and will need changes, at this stage its probably worth redesigning that as well. The database itself is on a Microsoft SQL Server DBMS and will be replaced with the latest Oracle 11g DBMS which is the standard for the university and will not incur further expense in terms of licences. Luckily I have some experience with both.

The issue which may arise here is the application depends heavily on the database and there are LOTS of queries taking place on each page and through many of its functions. If I am to redesign the database then this will make the existing queries obsolete as some of the tables and fields may no longer exist meaning longer development time. To compound this I only have limited experience in relational databases, my DBMS module was a long time ago now and I'll be learning on the job, first I have to find out if its worth the work as there is every chance I might not get to do it as a restructure of the database and rewrite of the existing code may exceed the allocated budget, however I don't know until I ask.

To summarise:

Completed
  • Applicant side modelled
  • Admin side modelled (as far as possible)
  • User (movement through the pages) sequences mapped
  • Database Schema mapped
  • New Schema under development