This was quite a large project which involved several developers to create an online store where customers could select wedding stationary and personalise it all online. The main part of the store is built in the Zend Framework, but my responsibility was to develop the Flash engine for customising the invites in a user-friendly way.
The CMS for the store allows the client to create and manage the invite templates. There is a separate Flash interface for creating these templates which lets the owner manage text areas, images and masks on the invites. They can select which areas can be edited by customers and which fonts, colours and image options are available for each one.
The interface must be easy for customers to use but still give them the power to customise their stationary and see what looks like before committing to purchase. Depending on the template selected, the customer can upload their own images onto the stationary, choose the fonts they would like to use and amend the layout of the text. A PDF sample of the stationary can be generated before the order is finalised, and the user can always save their design and come back later to complete it.
A common data structure in XML is used to enable the Flash application to efficiently communicate with the Zend CMS and storefront. XML also works well as a method for storing the template layouts in the database.
The biggest challenges in this project revolved around producing something which looked good on the screen and was also perfectly laid out when printed. The Flash application creates high-resolution PDF (via the pdflib PHP library) which the printers can download from the CMS for production. There are some core shared functions in the Flash app which are used for converting the pixel position relative to the frame of the movie to millimetre sizes which will be used in the final printed product.