Systems Development... At a glance.
My last project for RBS had all of the structural elements of Web-based Applications development.
It followed the "Client-Server" model. An SQL Database on a server delivered data to client programs distributed on a network.
Web-based Applications follow a similar model. An SQL Database, typically MySQL, delivers data to client programming tools, typically PHP, on the web-server which the web server makes available to the client browser on the user's device, PC, Mac, "Pad" or Cellular Phone.
I have spent much of the last 12 months re-skilling... learning about the tools and techniques of Web-based Applications development and applying them to an example development - OurSQS
OurSQS demonstrates my understanding of Web-based applications and how to build them.
OurSQS runs on a MySQL database. It is in essence a "content management" system. It features:
- Image Galleries
- Asynchronous Document Upload to the Web-page
- Data Capture to MySQL
- Previewing a Question
- Randomization of Options
XHTML uploads images to PHP5 which resizes them, creates thumbnails and stores them in folders.
PHP reads the folder content to feed links to the contents of each gallery back to the pages delivered to the user.
Users can define and populate new galleries.
Before HTML5 and the file API: uploading documents to the page in the browser required the file to be uploaded to the web-server and the content downloaded to the page either as a page refresh or using AJAX.
OurSQS tests for the availability of the file API and uses it if it is available. If not then the file is passed back to to PHP5 on the web-server and passed back through an iFrame.
A user enters the components of a question or uploads the question in HTML, Rich Text or simple text formats. The question is edited, links and images added and can then be saved as a draft question, or if complete, saved as a "finished" question. The content is delivered to PHP5 which inserts the content into the MySQL database. If the question is being saved as a draft then the "state" of the page is captured to allow the page when refreshed to be as it was when it was saved.
The system allows the user to preview the question and builds the HTML code dynamically (DOM element insertions) when preview is requested.
Questions can then be presented to "students" with multiple choice options in random order.
I have been developing systems on PCs since 1982.
I built a small accounting system for my brother, in Basic, and a marketing database in UCSD Pascal to keep track of my bank customer direct marketing. It kept track of the marketing materials that I had sent out and when loans were due to be repaid: so I could persuade people to borrow more money from the Bank.
The Victor 9000
I bought a Victor 9000 - an Intel 8088 based computer with 128-896K RAM and two 5" floppy disks:more - to continue to learn to program a computer. In the UK, the Victor 9000 was sold by ACT as the ACT Sirius.
I was working in the Royal Bank of Scotland's Trade FInance Department on the Bank's "Smaller Exporters Scheme". It became clear that a small database and letter writing system would be very useful, so I built one using an IBM PC and the Smart System.
I was recruited into the Royal Bank of Scotland - RBS - Systems Development Department, in 1986, to develop PC based systems.
Of all my careers to date, my time working in the Systems Development Department of the RBS stands out as the one that I loved most of all.
I learned something new every day. I worked with intelligent people who knew what they were doing and cared about it. I was able, indeed asked, to apply my intelligence to problem solving with computers. I was able to contribute a great deal to the working of the Bank.
My role was to identify areas of the Bank who could get useful work from a PC, put forward a cost benefit analysis and then to work with the users to develop systems jointly.
I taught users to use the programs and assisted in the development of systems by the users, teaching them systems analysis and design concepts.
I developed a starter kit in the Smart System which provided utility functions and and a skeleton menuing system which allowed users to complete developments more quickly.
Problems addressed included:
- A Trade Finance Exposures System.
- A Shipping Exposures System.
- A Contribution Analysis System for Documentary Credits.
- A Subsidised Mortgage Accounting System.
- A System to Collect and Collate Customer Risk Exposures for Central Credit Control.
I was taught how to use systems analysis methods,principally: data-flow, state-transition and entity relationship diagrams.
I worked on analysis, testing, selection and implementation of a Documentary Letters of Credit "Package" using IBM AS/400 and Mainframe computers.
I moved to the Treasury Team and worked on building a new dealing room and rapid prototyping of Deal Capture systems using BSD Unix, "C", and TCP/IP sockets on a distributed network of PC's.
In my last project for the RBS: I ran a team implementing a distributed time series database of customer exposures on PCs running on Novell Netware and Gupta's SQLBase and SQLWindows.