Carrying on from PaperworkPlus, I have decided to develop a PHP 7 web application. This will make the program more accessible and easier to use. Paperwork++ is an ongoing personal and academic project, being used for my A-Level Computer Science course.
This decision was reached based on user feedback from PaperworkPlus v1.6. Users outlined that by using the program, they had to continually tab out of the game in order to fill out forms. While users wanted to have this level of realism, it had to be accessible.
Choosing to make a web application was based on the idea that users wouldn't have to tab out of their game. In all circumstances, either of the following can happen with Paperwork++.
But why PHP? Hypertext Preprocessor is a major server-side programming language that presents a huge array of opportunity. The task that I set out to complete would simply not be possible with client-side processing, and would be very hard to achieve without a language as dynamic PHP.
Paperwork++ is different to PaperworkPlus as it adds a whole new level of automation. In PaperworkPlus, when users wished to use the online database service, they had to register an account. These accounts, due to limitations, had to be approved and added manually.
Now, with PHP server-side processing, accounts are registered in the traditional email authentication method. Within only a few days of publishing the website for users to pre-register their accounts, over 100 users had authenticated.
But what other languages, frameworks, and technologies does Paperwork++ use, and why?
As Paperwork++ processes personal data, its important to take into consideration legislation surrounding data processing. Not just that of the Data Protection Act, which is current UK legislation, but that of the future, including the General Data Protection Regulation, laws which will override the DPA.
Furthermore, in terms of security, the system should be analyses to ensure that all possible bases are covered. While a perfect system will never exist, its important to try implement as many vulnerability patches as possible.
Paperwork++ deals in a lot of user input and database queries, so SQL injection methods will have to be well protected against. One potential option is to filter characters inputted in order to remove anything that may cause an issue.
Another major factor to consider is the structure of said database and whether or not it meets normalised standards. A number of databases exist, all with a multitude of tables. In these databases, tables must be well set out, clearly identified, and well-related. Failure to do so will likely lead to problems further down the development line.
At GCSE level Computer Science, I produced a Maths Quiz for students to use and teachers to monitor results. Where most members of the class used a text file to save information, I opted to use the mysqlite3 library in Python.
My database structure at the time was basic and consisted of a single table that held all results. The staff client, intended for teacher use, simply printed out the contents of the table. However, with much experience following on from this project, my database structure is much more normalised and features relationships, authentication measures, and a multitude of datatypes.
The project was written in a procedural-style long list of nested if statements. At the time, my understanding of object-orientated programming was poor, and so the whole program was written out linearly. The opening lines of the quiz at the top, and the database saving and score results were at the very bottom. This was of course entry-level practices.
My A-Level Project, Paperwork++ is completely different. In the four year journey between the Maths Quiz and this project, I've learned a whole lot.
This just goes to show how in the course of four years my ability has grown and adapted to suit different needs.
A copy of my GCSE Maths Quiz code is available here, so that you may view the style in which it has been written, and compare it to that showcased above.
Paperwork++ is still being developed. As the process continues, more and more information will be added to this section.