Individual module and interface development

Individual module and interface development

Development interfaces

Interface development symbol image with puzzle on Macbook

As a subcontract for a successful software company, we implemented a major project lasting several months. This involved the individualized creation of an interface for a proprietary merchandise management system for Joomla/Virtuemart. There were numerous technical hurdles to overcome: How is the data retrieved? How should the data ultimately be displayed? Here we provide a brief overview of the project and our approach.

Problem definition

The problem was as follows: The customer provides a proprietary merchandise management system that has an enormously large database in the background. The system is continuously maintained and modified. The data records stored there are used, for example, to generate catalogs or provide customers with information. The system has several interfaces, including standardized queries via MySQL. This was our starting point: the customer wanted the catalog to be dynamically loaded into a web-based catalog without further external intervention, to be searchable and to generate an always valid URL and a QR code for each item and to be able to narrow it down using many filter and search bar properties. The solution was to be designed modularly for use in Joomla as well as later for Typo3 and also as a complete integration into a store system.

Approach

First of all, we had the customer explain the problem in detail and defined milestones together with them. Based on these milestones, a cost estimate was drawn up and then incorporated into all the systems involved. A prototype was then created on the basis of this familiarization, which was intended to demonstrate and ensure the basic functionality of the system. This prototype was ready for use after just one working day.

After an interface conception and elaboration, the research for functional solutions for the content management system followed „Joomla“, on which we were able to base our solution. We quickly found „VirtueMart“ a popular and promising platform whose technology we have been able to utilize and gradually expand.

We had to create two direct connections and write a translator: On the one side, the proprietary structure of the customer's merchandise management system is read out, translated and standardized by our system and output again on the other side or read into VirtueMart. This module alone, with its several thousand lines of code distributed across a well-structured architecture in PHP, is absolutely unique.

In addition to this translator, several adjustments to the presentation were necessary. Here, we approximated the desired functionality as closely as possible with already available modules in order to minimize the customer's costs. These modules were further adapted by us, for example, the URLs of the front end were made „speaking“ - and it is now possible to address both products and any product structure levels, which was not possible without further ado. In particular, our adaptation means that any number of categories and structure levels can now be assigned, as the database is dynamically broken down into its components. The implementation was completely detached from Virtuemart and the design, i.e. in plain language: You can take any Joomla with Virtuemart and „let go“ of our extension and Virtuemart is then fed and modified with the data from the WWS. This makes the solution highly portable! An implementation in Typo3 has also already been planned and prepared accordingly.

Special features and Special functions

Where images for products are available in the database, the customer wanted the images to be imported automatically and assigned in the front end. Different sizes are generated for thumbnails as well as for the final view.

For each product, there is a function in the front end for generating a PDF, „Ask a question“, for emailing/sharing, etc. Furthermore, the customer and the user can now filter products dynamically and fine-tune which properties are displayed for filtering. The customer can also make separate settings in the backend for each item as to which properties they want to display, which information an item contains and which functions are available to a user in the item overview. This can already be flexibly determined on the database side in the merchandise management system! Titles and identifiers can also be changed dynamically on the database side without affecting QR code generation: Once set, links remain valid.

You can also specify whether you want to sort/filter with checkboxes, radio buttons, dropdowns etc.. Filtering works in real time without reloading the page. The filtering adapts dynamically. For this purpose, an extension was completely adapted and rewritten so that it works both with Ajax and without Ajax.

The entire solution is prepared as a store and can also be assigned prices if desired. Furthermore, the connection to the database has been designed so dynamically that the customer can reload the database at any time or even partially via a function in the backend, or this can also be done via an external command („Cronjob“) can be triggered. For this purpose, an additional interface to the outside world was created and the backend area of Virtuemart was expanded.

Punctum.de

Punctum.de

SEO and website concept development

Punctum.de open on smartphone, desktop and tablet
 Punctum.de is the website of Punctum KG from Lohfelden, which, in addition to its proven expertise in databases and SAP modules, also promotes, offers and supports its own projects.

In cooperation with the management of Punctum AG, we realized a new website concept. The aim was a conservative, flexible structure based on the Windows 8 tile design. The site was designed by the customer himself and is also maintained by him thanks to live training.

Profizelt24.de

Profizelt24.de

For the event and tent specialist Profizelt24 we have adapted and extended the existing eBay template to a new management software.

This required creative skills as well as a few tips and tricks to be observed on eBay.

Management software development

Profizelt24.de open on smartphone, desktop and tablet
Mariomerkle.ch

Mariomerkle.ch

Website of Mario Merkle (Mariomerkle.ch) , opened on an iMac

Backend development

Mario Merkle is an artist from Switzerland whose existing static website was to be expanded with new functionality.

Previously, each new work by the artist had to be integrated into the HTML code by hand, with attention to many technical details, which did not make things any easier. It was also necessary to create preview images for the works.

A backend has now been implemented, which enables the artist to manage his work easily. New works can be created, older ones edited or deleted.

The order of the works can also be changed using drag & drop. The most attractive thumbnails possible are automatically generated for uploaded works. Our solution was integrated into the existing system and still exists today and can be downloaded at https://www.mariomerkle.ch/ can be visited.

Google Maps® API

Google Maps® API

As part of this order, a script was developed that is based on the Google Maps API to display zip code area boundaries. The Google Maps API, the Google Geolocation API and the Google Fusion Tables API were combined for this purpose. The following data set, which is available in the public domain, was used as the basic data set for the area boundaries Data set used. This still had to be adapted and converted.

Google Geolocation API

Google Maps® Postcode search section
Google Maps® API postal code areas on a Macbook

In addition, all area boundaries are indicated by a marker (the zip code). This marker can also be selected, which opens a popup that can again be equipped with any text. The example image shows that the zip code is displayed, as well as another text with a link, which also contains the zip code so that it can be used for other purposes.

The script reacts to GET parameters in the browser, which determine the color and selection of the postal codes. An example call with only one zip code would look as follows with the default settings: ?script.php?zip=46509&mColor=ff0000. The parameter names can be changed as required.

Since the aim of the project was to be able to mark surrounding zip codes for a main zip code with two different colors, there are additional parameters: script.php?zip=46509&mColor=ff0000&rZip=46459,47665&rColor=0000ff&fZip=46487&fColor=00ff00.

As can be seen in the example, several zip codes can also be entered, in this case separated by commas. The separator can also be changed as required. The script accepts 3 different types of zip codes, each with a color, and displays them in color on a Google Maps map.

The advantage of the implementation is that the script can be integrated into existing websites. Either as a dynamically moving map or as an image section. A possible application scenario could be a store that only delivers various products to certain regions. The script could be integrated into the detailed description of the products and display the regions to which the product can be delivered in two colors, for „immediately available“ or „currently sold out“. The script can also be expanded to include other colors and zip code types, so that a variety of other application scenarios would be possible.