diff --git a/GCIUserManual.wiki b/GCIUserManual.wiki
new file mode 100644
index 0000000..f4c580b
--- /dev/null
+++ b/GCIUserManual.wiki
@@ -0,0 +1,88 @@
+#summary Starter Manual for using GCI module.
+#labels Importance-Useful,Phase-QA,Contents-Draft
+
+<wiki:toc max_depth="3" />
+
+= Introduction =
+
+  This document covers detailed explanation of how to use the Task-based work flow, GCI module of Melange. These features are available for you to try out at the demo instance running at [http://melange-madhusudancs.appspot.com http://melange-madhusudancs.appspot.com]. It will soon be made available through [http://melange-demo.appspot.com http://melange-demo.appspot.com]
+
+
+= Details =
+
+  This document is exclusively written for users of the GCI module of Melange, and is in no way a developer manual. If any of you are willing to contribute to GCI module in particular, please ping any one of the developers on our IRC channel: #melange @ irc.freenode.net or on our developer mailing list.
+
+  The following document is divided into 5 separate sections, one for each role of Melange.
+
+== Program Admin(PA) ==
+
+  A Program Admin(PA henceforth) is one who creates and manages a GCI Program. He/She has all the rights of an Org Admin and a Mentor.
+
+  * Create/Edit Program Admin profile: TBD
+  * Create the GCI program: TBD
+  * Edit the GCI Program: The PA will have a link on the sidebar under the <Program Name> menu to edit the Program profile. The following are the list of things that PA can set from the Program profile page:
+    * Org Admin, Mentor, Student Agreement document link ids.
+    * Home page link id
+    * Minimum age of the participating student to be enforced and the date as of which this requirement must be met.
+    * She can also set the maximum number of tasks that a student can claim simultaneously (1 for GCI).
+    * She can also set Winners and Runners-up per organization.
+
+=== Timeline ===
+
+A PA must set:
+
+  * All the program specific timeline in the edit program timeline link available from the sidebar
+  * Org App and all other survey timeline in the *Survey Create/Edit page*. Note Org Admins will not be able to apply as organizations just by setting the Org signup start and end dates in timeline but also be made sure that it is set in the Org App survey.
+
+
+== Organization Admin (OA) ==
+
+  An Organization Admin (OA henceforth) is one who creates and manages an Organization under the GCI Program that PA has created. An OA does not have all the rights of a Mentor.  To perform any of the operations mentioned below i.e. to become an OA or to apply as an organization, the basic minimum requirement is to login to http://socghop.appsot.com with your Google account and create a profile by clicking on the "Create profile" link on the sidebar.
+
+  The workflow to apply as a an organization and hence to become an OA
+  * Once the Organization application period opens as per the program timeline a link titled "Apply to become an Organization" appears on the sidebar under the Programs menu's specific program for which Organization applications are open.
+  * Login to http://socghop.appspot.com with the Google account you previously used to create your profile.
+  * Click on the "Apply to become an Organization" link which is mentioned above.
+  * Fill up the application and submit. *Note:* This form asks to specify a backup admin for the Organization and this is mandatory. You must specify the Link ID of another person who would like to be the backup admin for your Organization. And to specify the Link ID here in the backup admin field he/she should have already created a profile on http://socghop.appspot.com and that Link ID must be used.
+  * Similarly you can submit applications to as many organizations as you would like to be OA of.
+  * You can view the list of all the applications you have submitted by clicking on "List My Organization Applications" link under the same program.
+  * The PA reviews your application and accepts or rejects it.
+  * If your organization is accepted you will get a notification regarding the same.
+    * To read the notification click on the "Notifications" link on the sidebar under the Users menu.
+    * In the notification message click on the link that leads to a form where you can fill in your Organization profile.
+    * Upon that you and the backup admin you had specified when you submitted the application will get a notification which contains the invitation to become an OA for the organization you registered the Organization profile with.
+    * Clicking on that link will lead you(same for backup admin as well) to a page where you can accept/reject the invitation to become an OA for that Organization. Upon acceptance you are redirected to a form where you can fill in your OA profile.
+    * On the sidebar you will now see a new submenu with your Organization name under the GCI Organizations menu which you can use to manage your Organization's work.
+    * You may invite other users to become OAs or Mentors as you
+  * However if your application was rejected no notification will be sent to you. But you can anyways find this out by clicking on the "List of participating organizations" link that appears on the sidebar under the same program once the accepted organizations are announced.
+
+
+== Mentor ==
+
+  A Mentor is one who mentors one or more student for accomplishing GCI Tasks.
+
+  * Suggest a new task/Edit the task: The deadline for the task cannot exceed 30 days i.e in terms of hours it cannot exceed 720 hours.
+
+== Student ==
+
+  A student is one who can claim a task, work on it, submit his work and win prizes.
+
+  * If student submits no work and the initial deadline passes, the deadline is automatically extended for another 24 hours. This shoots a mail to all the subscribers to the task notifying about the deadline extension. The task of the status is set to ActionNeeded. If the student fails to submit any work in that extended deadline of 24 hours also, the task is automatically re-opened. To learn how to subscribe to the task read the Rules of subscription below.
+
+== Public ==
+
+  Any user. Every such user is differentiated as a logged-in or non-logged-in user.
+
+= General =
+== Subscription ==
+
+  * A user is subscribed to a GCI Task if the star button on the top of the Task public page preceding the task title is a glowing icon and is not subscribed otherwise.
+  * He/She can subscribe to the task by clicking on the non-glowing star icon
+  * And unsubscribe by clicking on the glowing icon.
+
+Rules of the subscription game:
+  * A mentor is automatically subscribed to the task the moment he suggests the task. Assigned mentors are *not* automatically subscribed to the task.
+  * An Org Admin is automatically subscribed to the task the moment he creates the task.
+  * A student is automatically subscribed to the task the moment he *Requests* to claim the task.
+  * All other users must manually subscribe to the task by clicking on the star button.
+  * No user is automatically unsubscribed from the task. All the users irrespective of a student who has claimed the task, Org Admin who created the task and mentor who suggested the task should unsubscribe from the task manually.
\ No newline at end of file
