Hello,
So it says on the Umit page that you accept other projects. I have my own 
project I really want to work on over the summer for GSoC. Could you please 
look at my proposal and see if it might fit with what Umit wants in projects 
students bring to them? I am also answering Umit specific questions but this is 
the meat of the proposal.

Title: Global General Assembly
Summary: A secure, encrypted text and video chat system for organizing 
political movements. The chat system will integrate encryption of text and 
video. Global GA will also incorporate a system for voting and 'temperature 
checks', as seen in offline general assemblies.

Benefits to the Community: In the past year, revolutions swept the world. A key 
part of these was the general assembly, a forum for anyone to share their 
opinions on issues facing the movement. I believe social movements worldwide 
could benefit from an online version of the general assembly to share ideas 
with people all over the world, including those who might not be comfortable 
with the risk associated with attending in-person meetings. Global General 
Assembly would provide that forum for secure online discussions.

Deliverables/Schedule-

Before Project Starts:
Discuss project and finalize goals with mentor.
Familiarize self with the best ways to start and get video data from webcams.
Investigate the best way to do encryption on the chat.

May 22-June 18:
Write basic chat system which at this point includes the following features.
      The ability for a client to connect to a server.
      The ability for a client to specify the location of the chat on the 
server.
      The ability for the chat client to recognize a user by their IP.
      The ability for the chat client to assign a user a name.
      The ability for the user to select a name.
      The ability for a user to send a message typed into a text box.
      The ability for the server to receive the message. 
      The ability for the server to transmit the message to other users.
      The ability for one user to send a message to another user.
      The ability for the chat to display names selected by users.

June 19-July 7:
Get encryption of plain text working with OTR. This is broken down into the 
following steps.
    The ability for the application to generate a key.
    The ability to authenticate the key with the server.
    The ability for a client to encrypt messages.
    The ability for the server to decrypt messages.
    The ability for the server to encrypt messages before sending them to 
clients.
    The ability for a client to decrypt messages.

July 8: Midterm Review

July 8-July 20:
Get video chat running using Google video chat source code or other open source 
video chat project. Integrate this into the chat system.

July 21-August 4:
Encrypt video chat similarly to encrypted plain text chat. This is possibly 
optional as it might prove too difficult based on current available technology. 
If I do not do this, I will substitute this step with a secure etherpad 
integrated into the chat or encrypted file upload. I will discuss this with my 
mentor and investigate it in more detail.

August 5-August 13:
Provide a voting/signals system base on the system used in Occupy general 
assemblies. This is optional and if I am behind on the rest of the project I 
might add this later. The voting system includes the following.
        The ability to initiate a vote.
        The ability to select an option when voting.
        The ability to count and display votes.
        The ability to block a vote and provide a reason. Blocks are used for 
results of votes that could cause someone to leave the movement.

August 13-August 20:
Debugging and finishing up the project

August 24: Final Evaluations Due

Description-
The project will be done mostly in C/C++ and will likely be a separate 
application (not web-based). The encryption on the chat will be done using OTR 
(Off-the-Record) messaging. The project itself has the following components.
1. Chat System: A basic chat application, outline in the schedule.
2. Chat Encryption: It uses OTR, also outlined in the schedule. The encryption 
will be very user friendly so the user does not need to understand how 
encryption works. As much as possible will be automated. Non-computer-savvy 
people can be easily confused by existing encrypted chats.
3. Video Chat: A video chat for presenters. This will likely only have the 
ability to show one person at a time in the video chat but it could later be 
expanded.
4. Encrypted Video Chat (possibly optional): This is the video chat as above 
but with encryption. If it is more feasible to encrypt only voice, I might do 
that instead.
5. Voting System (optional): A poll system on the side of the chat that allows 
users to vote on proposals. This is used as the equivalent of a temperature 
check in a normal general assembly. It will also include the ability to block 
proposals the voter believes detrimental to the movement.
6. File Upload (optional): An encrypted file upload option for sharing 
documents securely during a chat.
7. Integrated Etherpad (optional): Integrating Etherpad into the chat window 
for collaborative document editing, agenda tracking, etc. 

Related Work-
Off-the-Record Messaging (http://www.cypherpunks.ca/otr/): An encryption system 
that allows encryption and authentication like most encryption schemes but also 
complete deniability. I will most likely use OTR for encryption in Global GA.

Cryptocat (https://crypto.cat/): A web-based application for encrypted chat. It 
does not have the ability to use video chat like Global GA will or to initiate 
votes. It also uses a different encryption scheme. There are other encrypted 
chat programs but none seem to be designed for conferencing or organizing 
movements.

Biographical Information: I am a senior at Boston University Academy. I have 
taken several classes in the Boston University computer science department. 
These classes include Data Structures and Algorithms, Computer Systems, 
Advanced Software Systems, Combinatoric Structures, Machine Learning, and 
Software Engineering. I also work at the MIT Media Lab in the Affective 
Computing Group where I create software and assistive technology to study 
emotions. I have presented at a few conferences and will soon have a published 
paper. Additionally, I recently founded a nonprofit which makes software to 
promote civic engagement and democracy.

Comments are very welcome! Thank you very much for your help.

-- 

M. C. McGrath (Shidash)
Student | Boston University Academy
Research Intern | MIT Media Lab Affective Computing Group
207-475-8401 | http://shidash.com | http://twitter.com/Shidash
A person shielded by a true, benevolent passion is invincible!

------------------------------------------------------------------------------
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second 
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
_______________________________________________
Umit-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/umit-devel

Reply via email to