Sibisy, The Simple Billing System

Foreword

Sibisy is a Simple Billing System.

It’s projected functionality was to allow you to enter Creditors, Bills, Bill Payments, and report off the Bills and Payments.

Extra functionality looked at exporting data to XML (amongst other reasons, for the inclusion into other Account packages), and the ability to Email straight from the program.

Download

Sibisy 0.1.0

Purpose

In developing Sibisy I wanted to do a number of things.

  1. Shed light on Clarion, and just how good it is
  2. Experience a very short Development cycle
  3. Hopefully, get some feedback from the public at large
  4. Add a few more notches in the brain towards becoming a better Developer

The subject matter wasn’t all that important, although for a while now I’ve been thinking about doing a simple billing system for family and friends. A way to track your bills. Of course, the main problem is that we want someone else to do the work, and that someone else is usually an Accountant with MYOB or Quickbooks. But maybe not. Hopefully not.

Versions

0.1.0

Wednesday, 25th January, 2006

  • c60dosx.dll added to the install exe – Thanks Lil!

Friday, 20th January, 2006

  • Download :: Sibisy 0.1.0
    • Initial Project was a test to see what could be done with Clarion in 2 hours. The rules were:
      • Only thoughts beforehand, no writing down of ideas
      • No Code, that is, no handcoding in the project
      • Fully installable executable by the end of the 2 hours

      I initially broke up the 2 hours as follows (in minutes):

      • Phase 001, 1-15 … planning, writing, no use of Clarion
      • Phase 002, 16-105 … creation of Sibisy, first the dictionary, then the app, with any dictionary changes as needed
      • Phase 003, 106-120 … creation of installation exe, testing of this install

      It actually was a blessing doing this. Even though by the end of Phase 002 I was panicking. I spent way too much time on unimportant things, although was able to realise this at certain stages and sharpen up. Although would drift back into that ill-disciplined mindset.

    What a blast. This was a great idea, and is definately the way to become a better developer.

    Here’s my notes from the 2 hours.

    Phase 001

    • Started by fleshing out the file structures on paper. First thing is that I spent too much time doing the individual fields, actually writing their names down. I’m not convinced this is necessarily bad, but when on a time-limit it should definately be avoided. Doing the actual design of the database should take priority. File names and keys, and how they relate together.

      Noted here that I would like to export bills to XML using the excellent IQXML. I have it in my clarion template registry, but haven’t used it yet.

      Also noted the inclusion of Error Logging. At this stage, I hadn’t realised that this can’t really be done without handcode. Not with any precision.

    • Ten or so minutes in and I came to the first awakening. I wouldn’t be able to have child files. PeopleCreditors and BillEntries were gonna have to go by the wayside. Wasn’t enough time for BillEntries, and PeopleCreditors requires (the way I do it) a bit of handcoding.Also by the wayside went the Options file (for printer defaults, etc etc). Owner Details made it in.

      Owner Details is mainly there for the reports, so when you print something out your name, etc etc, can appear on the report. In hindsight this was a pretty big mistake. For one thing, this is a Billing system, don’t really need to send anything out. But also it’s not really a core part of the functionality. And I spent a LOT of time on this. Good to know for next time.

    • Then started thinking through the actual windows of the program. By this time, Time is running short. Need some Browses, a few update windows, and the reports.

    Phase 002

    • Just some simple field names. Head needed clearing at this point, and I didn’t really do that … just kept motoring along.

      Also, this is where I realised the problem with the Error Logging and needing handcode.

    • BAM! Before I knew it, the time was up. I started to get a little panicky, and went a few minutes overtime just getting things like icons in. Again, not core. But helped with the end look, which was okay.

    Phase 003

    • Not much to say here except that it went pretty smoothly. I use Tarma Installer (free version). It’s very simple and easy. Does the job, quick to open, probably not as powerful as others, but that’s not what I needed for this.

      Used Depenency Walker to check for the needed Clarion dlls, and put them into the application’s directory.

      Install went fine, but I did it on this, my development laptop. Not sure how it will go on a clean machine.

    Further NotesThere are a lot more things I wanted to get into this, but with the restriction of No Code made impossible to achieve. However, this allowed me to actually get the product done. Looking back, if I had allowed code, I would have wasted more time on the inconsequential, rather than the core.

    So as it stands I learnt a GREAT deal from doing this. I would recommend any and all developers to regularly give this a go. 2 hours is a seriously short amount of time, and you’ll come out the other side more buffed up than when you went in. Brain-Buffed … heh heh. Ahh, the "humor" is returning.

Engine

Clarion, by Softvelocity was my tool of choice for the development of this project.

The only third-party template that I used was File Manager 3.