This was a personal project to teach myself new technologies. I wrote a webpage for an animal adoption charity.
The database is MongoDB with a NodeJS backend, running behind my Apache webserver. All the data is requested via an API over HTTPS with JavaScript. Edit access is protected via a login, with JWT.
In addition to the fontend, an Admin page had to be written for the owners of the charity to use, to add and update the animals. This includes a bulk change page for ease of use - to quickly update multiple animals records. A common case is for quickly reserving / unreserving lots of animals.
Our brief was to build a CD database frontend and backend. This included setting up a database with multiple components and interactions.
The frontend was written in PHP. Standard web development techniques were used, as well as a number of more advanced processes. The design is original, and written with no templates.
For excellent code maintanability, I wrote scripts to manage the HTML. These supports custom attributes, classes, unlimited content nesting and is extended for support self-closing elements. The form has a similar system, with built-in inputs including selectors, buttons and text / number input. The Album Art is provided by a company called Discogs. It is loaded after initial pageload for speed.
A small project for my A Level Computer Science Coursework. It demonstrates Monte Carlo Integration, an old integration technique
The frontend is written with standard web development techniques. The design is also original, and written with no templates.
A package is used to parse the entered equation - this is a surprisingly hard task. The graph plotting is written from scratch, however. This was made easier by preventing scrolling, and there being no need to show the negative half of the graph. The edges of the graph are set as 2 less and 2 more than the lower and upper limits.
The Wolfram Alpha API is used to get the correct (exact) answer and compare it to the calculated result.
Another small project this time to teach myself jQuery. It was supposed to be nice and simple, and only take a couple of hours. It turns out that even basic calculator functions are complex to code.
The frontend is written with standard web development techniques. The design is based on the iOS calculator app, and the functionality is identical.
It uses a number of different techniques to work out how to behave. It classes the buttons into 3 groups - operators, commands and numbers. Operators are +, -, × and ÷. Commands are AC, C, =, ± and % - although ± and % are treated differently sometimes. And numbers are 0 to 9, and a decimal point.
While it seems simple, there's lots of edge cases, including: