A dynamic webpage with a SOAP and REST web service used for uploading, searching and downloading images.
The client’s web-based application allows registering (i.e. uploading) an image, listing all the images currently stored on the server and searching through them. The backend runs independently, meaning that different client-side applications could be run using the same web service.
When an image is registered, the client is able to add some metadata to it, that will be stored and used when searching. The service also includes the possibility of performing some server-side encryption, which would protect sensitive data from potential data breaches on the database; the image is encrypted before storing it and decrypted before being returned to the user.
XML encryption is also performed in the SOAP web service to ensure a more secure communication. Only the sensitive parts of the XML payload are encrypted in order to reduce the computational cost.
The service offers search capabilities, where the user can enter some data in the search fields that will be translated into an SQL query, giving as a result the images that fulfill such conditions.
The system is able to perform fuzzy search, meaning that the input need not match perfectly the image metadata in order for it to be shown; a partial match of the string will also find that image.
The image results, whether from the search or list functions, are listed in a table displaying all the metadata, plus a clickable miniature of the image to download the original. Note that in this case we show all the raw metadata as it is stored in the database; in a real-life scenario, the client application would probably hide some of this data, or display it in a more user-friendly manner.