Invariably in a post like this there are at least a few lessons. To my mind, the most interesting one is how by working on X (coffee ordering system) you can get to product Y (group small-debt tracking), where Y is very different from X, but something people want ™. As is well known in startupland, this happens with products quite a bit. But I’ve also seen it happen with features. A developer’s mind is trained to have a bad reaction to feature creep, but when you don’t know what the feature or product should be feature creep is almost desirable – from a product perspective, not a software one, as the software will probably be worse with the feature creep.
There are several apps available that can accumulate debts and credits for a group and then split it up into optimal payment plans. Highly recommended for group vacations. One person pays for hotel, one for rental car, one for dinner, etc. Then instead of six people writing five checks each, it’s more like four people writing one check each.