Acknowledged.

Pertaining the freeze, can we have it scheduled for mid this week?

Thanks.

On Mon, Mar 15, 2010 at 5:51 PM, David Kobia <david@...> wrote:
Hi Guys,
First I wanted to thank all of you for the hard work that's been put
in so far. It's been a busy last few months and Ushahidi's codebase
has grown significantly. The rate at which new features have been
added to the system also means that bugs are rampant, many weeds have
sprouted in the system that need to be pruned - and generally the
system needs a little sprucing up. So I wanted to suggest the
following:

* A feature freeze on our current release cycle (1.2 -
http://dev.ushahidi.com/versions/show/7), and quite possibly bumping
the 1.2 and 1.5 releases with an aim to release a 2.0 that is
'stable'.
* A code-a-thon focused on completing the currently listed features,
and cleaning up the codebase.

Cleaning house would encompass the following:

1. Code Cleanup
~~~~~~~~~~~~~~~~~~
Our Controllers are horribly bloated. In a rush to get some of the
stuff done, many MVC principles have been overlooked (or ignored!).
Business logic should be in the models, and Application logic should
be in the controllers. A controller with a few hundred lines of code
is simply inexcusable, and we're all to blame in one way or another.
To understand this better, you can go to:
http://www.developer.com/design/article.php/3856246/Fat-Models-and-Skinny-Controllers-Bring-Out-the-Best-in-Your-MVC-Framework.htm

There's also a lot of repetition, so I want to encourage code re-use
via helpers/library classes

Since we're using the Kohana framework - it was agreed from the very
beginning to stick to the Kohana coding standards, which you can view
at: http://dev.kohanaphp.com/wiki/kohana2/CodingStyle - Clearly we
have plenty of work to do here. Moving forward it is absolutely
necessary that we stick to these standards.


2. API
~~~~~~~~~~~~~~~~~~
Our API needs to be absolutely bullet proof in order to encourage 3rd
Party applications that interact with Ushahidi. So far it works very
well, but a few functions could be optimized.


3. UI Cleanup
~~~~~~~~~~~~~~~~~~
Cleaning up our User Interface involves the following:
* Making sure our HTML is XHTML Compliant
* Working on the admin user interface that now has a myriad of options
and settings, and starting to become a little confusing for the end
users
* Less PHP in the Views


4. Database Schema Cleanup
~~~~~~~~~~~~~~~~~~
There are quite a few stale schema records that need to be removed.
Add to that the sql schema itself is poorly documented. One of the
best sql schema conventions I've come across is at Sahana
(http://www.sahana.lk/wiki/doku.php/dev:sqlpolicies).


5. Documentation
~~~~~~~~~~~~~~~~~~
In case it wasn't stated before we're using phpDocumenter (phpDoc), so
any DocBlocks should follow their convention. Much has been done
already with the current code, but more can be done.  Self-documenting
code will be so much cleaner and comprehensible if we can add phpDoc
DocBlocks to every file, class, function, and where needed - constant
or variable. More information at:
http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg.html

Please feel free to add your thoughts to this discussion too!

Lastly, please don't forget the Tuesday Skype Chats at 1pm GMT. Link:
http://skype.ushahidi.com - we can discuss these items in detail, and
a strategy for getting them done.



~~~~~~~~~~~~~~~~~~~~~~~~~~
List Archive: http://list.ushahidi.com/

Would you like to receive list mail batched in a daily digest instead? Send a message to:
developers-digest-subscribe@...

To remove your address from the list, just send a message to
the address in the "List-Unsubscribe" header of any list
message. If you haven't changed addresses since subscribing,
you can also send a message to:
developers-unsubscribe@...

For addition or removal of addresses, we'll send a confirmation
message to that address. When you receive it, simply reply to it
to complete the transaction.

If you need to get in touch with the human owner of this list,
please send a message to:
developers-owner@...




--
Kennedy Kasina
(e) ken@...
(m) +254.720.269.850
(w) www.ushahidi.com
(b) http://blog.ushahidi.com