#summary Project Progress/Log for the Testing, Code Guru, Code Quality Assurance Project (GSoC2010) of Melange
#labels Phase-Design,Contents-Draft,Importance-Details

<wiki:toc max_depth="3" />


= Introduction =
  This document will be used to documents the progress and details of the Testing, Code Guru, Code Quality Assurance Project (GSoC2010) of Melange. 


= Meetings and Agendas =

== Wednesday May 12, 2010 18:00 in UTC ==
===Meeting Logs===
    Meeting start: http://www.thousandparsec.net/~irc/logm/%23melange.2010-05-14.log.html#t2010-05-14T18:08:47

    Meeting End: http://www.thousandparsec.net/~irc/logm/%23melange.2010-05-14.log.html#t2010-05-14T19:19:48    
    

===Meeting Notes===

  Location: #melange on freenode

  Chaired by: Sverre Rabbelier

  Notes taken by: Leo (Chong Liu)

    * Told Sverre what I had done:
       * Learned the code base of Melange and Melange tests
       * Generated the directory organization of Melange and Melange tests
       * Generated the package diagram and the class diagram of Melange
       * Made some statistics on the code base of Melange
    * What to do next week:
       * Start with the testing of the modules which are the most important and used most, e.g. soc.logic.models.base and soc.views.models.base
       * Specifically add more test cases to the existing tests of these modules, e.g. tests.app.soc.logic.models.base and tests.app.soc.views.models.base

= Specification & Requirements =
  The detailed project specification will be added and updated here.  


= Timeline =
  The tentative project timeline will be added here.


= Project Design and Implementation =
  The software design and implementation details will be added here.