User:Shirik/CollabRC/Plan

From Wikipedia, the free encyclopedia
Jump to: navigation, search

This page documents the expected plan for development of the CollabRC project. The plan is agile and implemented using Extreme Programming's planning game. The software development process is divided into two-week iterations.

Iteration 1: 20 Dec 2009 - 3 Jan 2010[edit]

Design prototype AI Framework
  • Develop the AI framework engine
  • Develop initial genetic algorithms
  • Train the AI given known sample sets and evaluate response
  • Repeat as necessary
Develop mutable generic algorithm
  • Design an implement a mutable generic algorithm for use in AI
  • Ensure the algorithm can be branched and crossed
  • Develop unit tests for the system
Develop genes
  • Use the developed algorithm to develop genes as planned
  • Develop unit tests for the genes
Develop organism
  • Pull together genes and algorithms to build an organism
  • Develop the system that allows organisms to breed, mutate, and survive
  • Develop the fitness function per design

Iteration 2[edit]

Test prototype
  • Test the prototype AI against known vandalism edits
  • Adjust genes to allow the AI to train more quickly
  • Tune the fitness function to eliminate false confident positives

Iteration 3[edit]

Develop GUI mockup
  • Develop a cross-platform GUI mockup using QT's framework
  • GUI mockup must contain the following (potentially non-functional) components:
    • Recent change queue
    • Revision diff
    • Toolbar buttons, including:
    • Article history
    • Revision flags - should indicate things such as:
      • High priority alert
      • tags
      • Edit type (revert, assisted, bot, anonymous)
    • Current status of the collaboration network
    • Log/status output
  • The GUI must display all of this functional information in a clean, easy-to-read manner

Iteration 4[edit]

Develop communication paths
  • Establish collaboration connections
  • Establish communication between the bot and CollabRC
Prefetching and pulling
  • Enable ability to download diffs upon request
  • Set up Wikipedia download queues

Iteration 5[edit]

Develop reversion systems
  • Tie communication into GUI for displaying of diffs, etc.
  • Enable user commands such as "revert"