Skip to content

Schemas

Sam Ping edited this page May 25, 2021 · 1 revision

Schemas

Here is a list of all our schemas. You can also see a more frequently updated list of schemas on our Swagger Documentation.

Hackathon

The hackathon schema is what the Admin Dashboard implements and edits.

{
    season: String, // ex. Spring 2021
    categories: {
        [CategorySchema]
    },
    submissionPhase: {
        inProgress: Boolean, default: false }, // Whether or not the submissions phase is in progress. Defaults to false.
        deadline: Date, // Optional. Automatically set inProgress to false when deadline is reached.
        flags: { type: [mongoose.Schema.Types.ObjectId], ref: 'submission' }, // array of submissions. _id refers to a Submission.
    },
    judgingPhase: {
        // is judging phase in progress. Defaults to false. If submissionPhase inProgress is true,
        // then this MUST be false. Can be enforced in frontend.
        inProgress: { type: Boolean, default: false },
    },
    isComplete: { type: Boolean, default: false }, // is hackathon over. Defaults to false.
}

Submission

The submission schema is what the hackers submit to the hackathon.

{
    isSubmitted: { type: Boolean, default: false },
    attributes: {
      title: { type: String, default: '' },
      description: { type: String, default: '' },
      technologies: { type: [String], default: [] },
    },
    urls: { type: [{
                _id: false,
                label: String,
                url: String
            }], default: [] },
    categories: { type: [{
        _id: false,
        categoryID: String,
        categoryName: String
        }],
        default: [],
    },
    flags: { type: [String], default: [] },
    numFlags: { type: Number, default: 0 },
    removedFromJudging: { type: Boolean, default: false },
  },
);
Clone this wiki locally