blob: 40f4aaeb41090160cacad9a8b1d8601e181c4e25 [file] [log] [blame]
#summary One-sentence summary of this page.
#labels 2013DeveloperDoc
= Introduction =
Document describing how information is stored and managed on Melange. It describes the relationships between the data entities and how those entities are transformed into UI elements.
= Details =
== Data model architecture ==
=== Jargon ===
* Model - Structural and relational definition of the data.
* Entity - An instance of the data model which is stored.
=== User Information ===
* User model stores the user's public name, the Google account with which the user signed up for Melange and the user's link id.
* Profile information is stored in the Profile (GSoCProfile and GCIProfile) models which are in turn inherited from Role model. The user entity of the user to whom profile belongs to serves as the parent of the profile entity. GSoCStudentInfo and GCIStudentInfo models store student specific information such as school name, project and proposal counts in GSoC, completed tasks count in GCI and so on. Corresponding profile models are the parents of the StudentInfo models. Both the Profile models and StudentInfo models contain user supplied information as well as derived properties.
=== Program Information ===
* The program models(GSoCProgram and GCIProgram) store the settings such as total number of slots available, age restrictions for participants, program's current visibility that are related to the entire program.
* The timeline (GCITimeline and GSoCTimeline) models store the program's timeline. However the timeline corresponding to the surveys such as organization application and mentor and student midterm and final evaluations are stored as part of the corresponding surveys outside these timeline models. There exists a 1:1 relationship between the program model and the timeline model. Program model references the timeline model through "timeline" reference property and timeline model references program model through "scope" reference property.
* The program messages (GSoCProgramMessage and GCIProgramMessage) models store the message bodies of the emails that are sent by hosts to different various participants. Message models are descendents of program models.
=== Organization Information ===
* The organization (GSoCOrganization and GCIOrganization) models store both the information pertaining to the organization that are publicly visible such as organization name, contact details etc. and organization specific settings such as their GSoC proposal scoring scale, accepted and rejected student messages in GSoC. These models also store some derived information such as the number of mentors assigned to proposals, slots allocated and so on.
=== Proposals and Projects ===
* The StudentProposal model stores the content of the proposal submitted by the student, mentors who wish to mentor the proposal, the mentors assigned to the proposal, etc.
* The GSoCComment model stores the proposal review comments.
* The GSoCScore model stores the score assigned by each member of the organization to a proposal.
Relationship between entities: