Appearance
DoCurious API Reference / types / School
Interface: School
Defined in: types/school.types.ts:34
A school organization registered on the DoCurious platform.
Remarks
Schools form the top of the SA -> Teacher -> Student -> Parent hierarchy. A Head School Admin creates the school record and manages its settings. School-affiliated users (student, teacher, school_admin) reference the school via their User.schoolId.
Example
ts
const school: School = {
id: 'sch-001',
createdAt: '2025-08-01T00:00:00Z',
updatedAt: '2025-08-15T00:00:00Z',
name: 'Lincoln Elementary',
city: 'Portland',
state: 'OR',
country: 'US',
timezone: 'America/Los_Angeles',
allowStudentSelfRegistration: false,
requireParentalConsent: true,
studentCount: 320,
teacherCount: 18,
classCount: 14,
}Extends
Properties
academicYearEnd?
optionalacademicYearEnd:string
Defined in: types/school.types.ts:74
ISO date for the end of the academic year
academicYearStart?
optionalacademicYearStart:string
Defined in: types/school.types.ts:72
ISO date for the start of the academic year
address?
optionaladdress:string
Defined in: types/school.types.ts:36
allowGifting?
optionalallowGifting:boolean
Defined in: types/school.types.ts:58
Whether students and teachers can send challenge gifts
allowStudentSelfRegistration
allowStudentSelfRegistration:
boolean
Defined in: types/school.types.ts:87
Whether students can self-register with a school code (vs. admin-only enrollment)
city?
optionalcity:string
Defined in: types/school.types.ts:37
classCount
classCount:
number
Defined in: types/school.types.ts:93
contactEmail?
optionalcontactEmail:string
Defined in: types/school.types.ts:43
contactPhone?
optionalcontactPhone:string
Defined in: types/school.types.ts:44
country?
optionalcountry:string
Defined in: types/school.types.ts:39
createdAt
createdAt:
string
Defined in: types/common.types.ts:154
ISO 8601 datetime when the entity was created
Inherited from
dataRetentionYears?
optionaldataRetentionYears:number
Defined in: types/school.types.ts:84
Number of years to retain student data after departure
defaultStudentSharingScope?
optionaldefaultStudentSharingScope:"public"|"school_only"|"community"
Defined in: types/school.types.ts:56
Default sharing scope for student Track Records
district?
optionaldistrict:string
Defined in: types/school.types.ts:50
gradeLevels?
optionalgradeLevels:string[]
Defined in: types/school.types.ts:52
Grade levels offered at this school (e.g., ['K', '1st', '2nd', ...])
gradingPeriodsPerYear?
optionalgradingPeriodsPerYear:number
Defined in: types/school.types.ts:78
Number of grading periods per academic year
id
id:
string
Defined in: types/common.types.ts:167
Inherited from
logo?
optionallogo:string
Defined in: types/school.types.ts:48
URL to the school logo image
minAgeWithoutConsent?
optionalminAgeWithoutConsent:number
Defined in: types/school.types.ts:82
Minimum age for students without parental consent
name
name:
string
Defined in: types/school.types.ts:35
parentNotificationFrequency?
optionalparentNotificationFrequency:"immediate"|"daily"|"weekly"
Defined in: types/school.types.ts:64
How often parents receive email digests about their child's activity
publicTrackRecordGallery?
optionalpublicTrackRecordGallery:boolean
Defined in: types/school.types.ts:60
Whether the school's Track Record Gallery is publicly visible
requireParentalConsent
requireParentalConsent:
boolean
Defined in: types/school.types.ts:89
Whether all under-13 students at this school require parental consent
state?
optionalstate:string
Defined in: types/school.types.ts:38
studentCount
studentCount:
number
Defined in: types/school.types.ts:91
surveySenderName?
optionalsurveySenderName:string
Defined in: types/school.types.ts:68
Display name used as the sender in survey emails
teacherCount
teacherCount:
number
Defined in: types/school.types.ts:92
teacherNotificationChannel?
optionalteacherNotificationChannel:"both"|"email"|"in_app"
Defined in: types/school.types.ts:66
Channel used for teacher notifications
termSystem?
optionaltermSystem:"semester"|"trimester"|"quarter"
Defined in: types/school.types.ts:76
Term system used by the school
timezone?
optionaltimezone:string
Defined in: types/school.types.ts:41
IANA timezone identifier (e.g., "America/New_York")
updatedAt
updatedAt:
string
Defined in: types/common.types.ts:156
ISO 8601 datetime when the entity was last modified
Inherited from
website?
optionalwebsite:string
Defined in: types/school.types.ts:49