Typica: Software for Coffee Roasting Operations

Recent Work on Typica 2

Lately I've had a chance to get back to work on the Typica 2 code base. There's still a lot of work to do on that before I expect to have it ready for release, but I thought I'd share a bit on what I've been doing with the Receive Samples interface.

In Typica 1.x, there is no such interface. You can record sample information when doing a sample roast, but the assumption is that you get one roast out of that sample and that's it. While having the data closer to reality is always a good thing, there are work arounds and for most companies it really doesn't matter. It's better to have the data be a little bit off for samples than to have a bunch of green coffee samples cluttering up inventory lists and reports, making it harder to deal with production.

One of the changes that I'm most excited about for Typica 2 is having the ability to completely change how things are happening in the database, and one of those changes is a complete re-work of how Typica tracks inventory. That makes a lot of things much easier.

An example department list.
Bold lines are unselectable headers that
group departments by type.

First, I'm introducing the concept of Departments. This is just a way to separate out different segments of inventory. Each department has two optional properties: a department type and a location. This provides a couple different ways that you can filter and aggregate different portions of your stock, but it also means that you can do things like receive green coffee samples into your Samples department (won't show up for production roasting), then when you've evaluated those samples and made your purchasing decisions, you can reference that same sample item to add stock to a contracts department representing green coffee that you've agreed to buy but haven't yet taken delivery of. Again, this coffee on contract won't show up for production roasting. As the coffee is needed, you can transfer some or all of that coffee on contract into your current stock where it becomes available for production roasting and it's easy to see what's still on contract. If you're roasting in multiple facilities, you can just create separate departments for each and set things up so that most of the time you're only seeing things relevant to the location you're at.

Typica is going to have a few departments created by default, but you'll be free to add new ones or delete the provided ones. It's easy to go overboard with this feature so I'm going to recommend that companies set up as few departments as they think they can get away with and only increase that when they feel a clear need to do so. Similarly, if there are too many departments created, it's fine to merge those to keep things easy to work with.

With the ability to have different work flows default to operate on different stock departments, interfaces like Receive Samples start to make a lot more sense.

An invalid weight (an optional group
separator is mis-placed) appears in red.

The other thing that's on display here is a weight entry field. In Typica 1.x this sort of thing is implemented as a line edit to type the numbers in and a combo box for unit selection and what's logically a compound control gets created from scratch all over the place. I might back port this into the 1.x code base because this one is locale aware (so if you usually use a comma as a decimal separator you'll be able to just do that and things will work provided your locale settings agree that this is fine) and provides immediate but relatively unobtrusive feedback (you might just not be done typing, after all) if you've entered something that can't be interpreted as a number.