1. Client Features
1.1. Users
1.1.1. Code syntax recognition for code pieces
1.1.2. Tasks
1.1.2.1. Deadlines
1.1.2.2. Priority
1.1.2.3. Recommended user to execute
1.1.2.4. Assigning tasks to developers
1.1.3. Ideas
1.1.3.1. Commenting on ideas
1.1.3.2. Ranking ideas
1.1.3.3. Removing Ideas
1.1.3.4. Submitting ideas
1.1.3.5. Accepting ideas (making them a task)
1.1.4. Votes
1.1.4.1. Pros + cons of each side
1.1.4.2. Time limit on the vote
1.1.4.3. Public/private/certain people
1.1.4.4. Commenting on votes
1.1.5. Upload programs / libraries etc
1.2. Admins
1.2.1. User management
1.2.1.1. Payments
1.2.1.2. Teams
1.2.1.2.1. Adding/Removing Teams
1.2.1.2.2. Editing team/group permissions
1.2.1.3. Invitations
1.2.1.3.1. Account deleted when registration took too long
1.3. Public
1.3.1. Submitting ideas
2. Platforms
2.1. Silverlight
2.1.1. Desktop?
2.2. Android
2.3. iOS?
2.4. Blackberry?
3. Server Features
3.1. Servers
3.1.1. Web Server
3.1.1.1. Hosts the web client
3.1.1.2. Interacts with the Front-end server
3.1.2. Front-End Server
3.1.2.1. This server deals with incoming connections
3.1.2.1.1. All (non-website) clients
3.1.2.1.2. The web-server
3.1.2.2. Web panel for remote access
3.1.2.3. This won't actually hold any data, it gets + stores all data in the DB server
3.1.2.4. Handles logins + sessions
3.1.3. Database Server
3.1.3.1. Execution order
3.1.3.1.1. Recieves command (TCP/UDP)
3.1.3.1.2. Reads/Writes data
3.1.3.1.3. Returns data (if reading)
4. Programs
4.1. Server
4.1.1. Web Server
4.1.2. Front-End Server
4.1.3. Database Server