[ST] State of CONGO - what's going on?
Dave Belfer-Shevett
dbs at homeport.org
Mon Jul 21 10:59:23 EDT 2008
This was posted to the 'congo-chat' group, thought Arisia folks might be keen
on hearing what's going on with CONGO...
---------- Forwarded Message ----------
Subject: [congo-chat] State of CONGO - what's going on?
Date: Monday 21 July 2008
From: Dave Belfer-Shevett <dbs at homeport.org>
To: congo-chat at yahoogroups.com
This is a sort of 'state of the code' update for the CONGO general community,
letting people know what's going on with the system, and where things are
going.
CONGO's baseline code has essentially been stable for the last year and a
half. There have been minor tweaks and updates, and at least one fairly
major change (switching the print routine from a custom generated graphic to
an 'on the fly' PDF, which helped in printing portability and code
simplicity).
Two months ago I ran an event in Waltham that used CONGO for public
registration and session signups using a customized public interface. It
worked, handling credit card payments, registrant signup, etc, but the amount
of work required to get the pages and back end service stable was daunting.
There are other events wanting this functionality, I was not excited about
having to customize the code for each event.
CONGO v1.x is over 5 years old, and many of the assumptions and design
decisions made for those first conventions have held strongly, while others
have not worked out well. Rather than try to 'fix' the existing code, which
would have required a tremendous amount of refactoring (CONGO is about 20,000
lines all told), a new approach was necessary.
I decided to start a rewrite.
Congo v2.0 is now a work in progress. Those of you on the congo-dev mailing
list have been seeing commits against the new branch in SVN for the last 2
months. While I'm trying to reuse as much code as possible, much of the
original material is not portable, so I'm essentially using the screens and
templates from Coconut, and rewriting the back end logic.
Architecture wise, here's what Congo v2.0 looks like:
o 100% Java (no PHP)
o Struts v2.0 based
o Page rendering using JSP + Struts + JSTL
o Runs in a servlet container ala Tomcat
o No standalone appserver
o Uses SOAP/Webservices for remote API access
o MySQL back end
Needless to say, this is a major overhaul of the system, but one that I feel
is required.
Project wise, I'm working this in a few phases...
1) Build up the basic toolset and framework for how pages and processing will
work. Understand struts, proper DAO methodology, and session management.
2) Convert Coconut page for page to Struts. Don't add functionality, don't
look for refactoring - just duplicate the existing application.
3) Rework the database structures to be more normalized and, frankly, sane.
In particularly, registrant contact details (address / phone / etc) get
reworked, and history activity completely refactored.
4) Overhaul the transactions mechanism so financial transactions are tracked
properly and audit trails can be easily looked up.
5) Recreate the 'public' interface so registrants can come in on the public
pages, create logins, view their event details, and purchase registrations.
Make sure back end processing is modular, so interfaces like Authorize.net,
Paypal, etc can all be 'plugged in' as necessary, and configured via Coconut.
At this point, we should have completed the entire rewrite, including greatly
enhancing internal structures and processes, and can focus on additional
major features, such as...
6) Session management - and I don't mean HTTP sessions. Event managers can
create session schedules and timetables, and registrants can use the public
interface to sign up for sessions, print out their schedules, and pay for
workshops. This was partially done for the Waltham event using Properties
and custom written templates, and the users liked it a lot. It needs to be a
big part of CONGO.
7) With Session management comes other possibilities, such as published
schedules and marquee displays showing the current event schedules and
updated news, for display at-con.
8) Better at-desk registration payment processing, allowing workstations to
run credit cards and paypal transactions at the operators station, rather
than relying on wireless swipe machines.
---------------------------------------------
Where I am right now...
Currently I'm about halfway through step #2. Logins, lookups, and edits on
registrants are working, and I'm working on the event maintenance screens.
It's a long process, but it's moving along at a reasonable pace.
Feel free to contact me on or off-list(s) (this is going to several lists) for
any further questions, details or just general chitchat).
I expect it'll be another few months until Congo v2 is ready for beta testing
by existing users. Those who are interested in the work in progress are
welcome to sign onto the congo-dev mailing list
(http://groups.yahoo.com/groups/congo-dev) and keep an eye on things, or if
you're interested in participating in coding, and know Java (or don't mind
learning it), sign onto congo-chat
(http://groups.yahoo.com/groups/congo-chat) and let us know.
Thanks for everyone's support through this entire project. I think the new
codebase will allow for some stellar functionality in the system, and I'm
looking forward to adding a lot to the system over the next several months.
-dbs
-------------------------------------------------------
More information about the staff
mailing list