Years ago I wrote an application for a small company to manage a market garden. They grow plants, collect seeds and sell seedlings, beside a lot of related products for gardening. The application has the following features:
- Manage categories of products
- Manage products with labels, prices, html & text description
- Export products for upload to webshop
- Print labels for products
- Manage customers with billing & deliver addresses, newsletter subscription and bank account information.
- Print mailing labels for packages.
- Statistics to list best sellers with amounts and revenue per product.
- Letter window to write emails to clients and keep them stored. Use place holders to auto fill in values and pass letter to email application or print for mailing in letter.
- Newsletter window to setup various newsletter and send to all subscribers or only to people in a certain area.
- Label printing for mailing labels for yearly catalog mailing. Easily prints 1000+ labels.
- Manage orders.
- Receive new orders from web shop. Order can be reviewed and modified.
- Split function to split invoice between products available now and later.
- Print product labels for products in one invoice.
- Print invoice, package label and send email to announce delivery.
This is a single user database application running based on SQLite database for 8 years now. It runs on a dedicated Mac in the office and is used over the day by several members of staff to edit products, print labels and handle orders. Originally we started in REALbasic, than Real Studio and now Xojo.
Development in Xojo is quite straight forward. We often arrange controls on the windows with the client together and than fill the events with code later. For the database access we simply build SQL statements and run them. Of course we use prepared statements to avoid SQL injections. Once we had the load and save for a window done, the other windows are more or less copy & paste. In total this project has 22 windows, printing the code gives a 218 pages PDF.
Label printing is done via a dedicated label printer where we sent control commands to the printer via CUPS Plugin functions directly over USB. And the whole job started just by them looking for help on getting the printer to print. But later we discovered it would be worth to have the app know the products, so you don’t need to enter the labels manually. And than when we have products, why not import orders and print invoices and labels for each order? Well, as you see this solution grew over the years and I am looking for keeping it running for another decade.
The totally billed time was 62 hours of development. That includes times at a visit in the office to get the printing working, write down specifications, check how they process orders, get details on web shop interface and starting with a prototype. It started in 2009 with a prototype and got a working in production solution within a few month. Between the first contact and a working application, it took 5 months with a lot of breaks for several weeks, but over the years the application grew a bit to the current level. The time above also includes support calls and bug fixes.
I hope this information helps a few people to see how quick you can develop in Xojo and how long a project like this takes.