#labels Phase-Guidelines
#Wiki Page for the Google Code-In with new Architecture Project.

= Meetings =
== Tuesday, May 17:10:00 in UTC ==
=== Metting Notes ===

Location : Skype <br />
Time : Tuesday, May 17:10:00 in UTC <br />
Conducted by: Lennard de Rijk, Madhusudan C.S <br /> 
Notes taken by : Selwyn Jacob <br />

 * General Discussion on the approach to start the project.
  * Change the GCI models such that the fields that refer to student/org admin/mentor should now refer to Profile as we are getting rid of Mentor/OrgAdmin entities and Students are defined by their StudentInfo coupled to the profile.And use mapreduce or Task API to go over all entities in GCI that need to have their reference updated.
  * Move the List generating module from gsoc.views.helper to soc.views and change corresponding imports as even GCI needs this. 
  * Create GCI specific RequestHandler and RequestData object created for each request in GCI before starting with writing the views.
  * Start with the dashboard functionality.