ImageMagick

Christmas Cards for Schools Clustered Print Generation

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East), again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies

Summary

Christmas Cards for Schools based in Middlesbrough here in the North East, part of Fundraising Creations, offer Fundraising solutions for Schools, their primary product being the production of bespoke printed and customised Christmas Card packs personalised with the pupils name, class and of course their own drawing. Having been responsible for the production of in excess of 1.1 million cards in the Christmas 2013 season efficiency and scalability are high priorities

Technical

Client Christmas Cards for Schools Ltd – Middlesbrough based School Fundraising

Platforms Linux, Web, WebServices,

Technologies PHP, Perl, CSS, Jquery, MySQL, REST, ImageMagick, Apache, Clustering

Development Web Development, Web Services Integration, Synchronisation

Case Study

To understand the scale and requirements to create, print and distribute in excess of 1million Christmas Cards in a 3 month period each year it’s probably beneficial to understand the workflow required, and the stages at which dotUK have been able to build out and scale, thus adding capacity each year.

• Participating Schools are sent Artwork kits

• Kits are returned and the drawings are scanned, grouped, and filed into our Web Based storage system

• School batches are processed within our processing cluster leading to the creation of digital print ready personalised images (1 Per child)

• Print ready images are synchronised to the print partner who takes responsibility for print and distribution, feeding back status to the storage system dashboard.

Due to the system being highly seasonal dotUK have built a bespoke hosting infrastructure that offers a cost effective, but highly scalable hosting solution. Services that are required year around are separated from the seasonal processing cluster, thus offering a base line cost for the majority of the year. The processing cluster is build in such a manner, that additional processing nodes can be added at 15minute deployment windows, and will automatically join in the pool of processing power, but can be removed when surplus thus reducing hosting and running costs that are unwarranted.

To maintain maximum data integrity, control, and compliance in excess of UK Data Protection requirements, the hosting cluster and processing engine is a bespoke, privately hosted solution provided, hosted, and monitored by dotUK

Depending on the solution offered to the school the workflow may include digital samples that are offered initially to the school prior to order, but ultimately school co-ordinators enter their school order quantities online through their own access portal, which triggers the print cluster and sync services to push final orders to the print partner.

In addition to the core card generation workflow, we also generate supplementary personalised products, and fully automate other ancillary services such as billing, marketing / kit requests and the ability for parents to view online samples prior to order

Art Screen Prints – Cross Platform Mugs App Case Study

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East), again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies

Summary

Art Screen Prints based in Guisborough here in the North East specialise in producing print based fund raising merchandise for schools, clubs and other associations. One such product is ceramic mugs printed with the pupils drawing. In order to best represent the potential end product the need to produce Parental Order Forms (POF’s) that are personalised with the pupil’s details, and as close as possible to a final representation of the Mug printed with the pupils drawing. We would also need, within the same workflow, to print the final print ready templates in PDF format for use in the printing process,

Technical

Client Art Screen Prints – Guisborough based School and Fundraising Print

Platforms Apple Mac, Windows

Technologies C#, Mono, GTK+, .Net, ImageMagick

Development Desktop Software, Mac Software, Windows Software, Cross Platform Software

Case Study

One of the unique requirements of this software development was the fact that the client used a mixture of both Apple Macs, and Windows based PC’s and as such this tool would potentially need to run, in the same manner, across both platforms.

The workflow is in essence two fold, presented with a folder of pre-scanned images (grouped by Class, or other equivalent organisational hierarchy), the desktop application we developed would need to take this feed of images, process them, and generate one, or both of;

  • Print Ready, PDF Formatted print template for the actual scaled image to appear on the Mug
  • A Parental Order Form to be distributed to the schools representing a final printed mug as closely as possible.

To do this we built the application utilising the Mono framework (a Cross platform representation of the C# language that allows applications to be built from a single codebase under Windows, Mac, and Linux).  However as this was a desktop application and we had to consider the User Interface (UI) it was also necessary to make a decision on the UI framework.  In the end we settled on GTK as the best performing, simplest, multi platform graphical interface framework, for what was as an interface quite simple.

The application itself was mostly a wrapper around pre-generated ImageMagick (A cross platform software suite for manipulating images programmatically) commands that we built to create both the print template, and the POF.  Particularly challenging was the need to take a flat two dimensional image, and create the effect of wrapping and warping the image ‘around’ the Mug so as to represent what the human eye would see in the flesh.

In addition, owing to the batch processing and time it would take, we had to ensure to user asynchronous event based programming within the apps interface to ensure that a consistent update on progress was fed back to the user, without the application timing out, or ceasing to respond as it would with lengthy synchronous waits.

Thanks to our success the project grew to encompass a sister project for the generation of Calendar templates, and associated order forms.