@iota-big3/layer-1-student-life
Version:
Layer 1 Student Life conventions for School OS - Housing, activities, wellness, and social patterns
227 lines • 6.35 kB
TypeScript
/**
* Housing Conventions for Student Life
* Manages dormitory assignments, roommate matching, and residential life
*/
export interface Student {
id: string;
name: string;
grade: number;
preferences: HousingPreferences;
attributes: StudentAttributes;
}
export interface HousingPreferences {
roomType: 'single' | 'double' | 'triple' | 'quad';
quietHours: boolean;
studyFocused: boolean;
earlyRiser: boolean;
allergies?: string[];
accessibilityNeeds?: string[];
preferredRoommates?: string[];
avoidRoommates?: string[];
}
export interface StudentAttributes {
academicFocus: 'STEM' | 'humanities' | 'arts' | 'athletics' | 'mixed';
extracurriculars: string[];
sleepSchedule: 'early' | 'normal' | 'late';
cleanlinessLevel: 1 | 2 | 3 | 4 | 5;
socialLevel: 1 | 2 | 3 | 4 | 5;
noiseLevel: 1 | 2 | 3 | 4 | 5;
}
export interface Dormitory {
id: string;
name: string;
capacity: number;
floors: Floor[];
amenities: string[];
specialPrograms?: string[];
}
export interface Floor {
number: number;
rooms: Room[];
commonAreas: CommonArea[];
residentAdvisor?: string;
}
export interface Room {
id: string;
number: string;
type: 'single' | 'double' | 'triple' | 'quad';
capacity: number;
currentOccupants: string[];
features: string[];
available: boolean;
}
export interface CommonArea {
type: 'lounge' | 'kitchen' | 'study' | 'bathroom' | 'laundry';
capacity: number;
features: string[];
}
export interface HousingAssignment {
studentId: string;
dormId: string;
roomId: string;
assignedDate: Date;
moveInDate: Date;
moveOutDate?: Date;
roommates: string[];
compatibilityScore: number;
philosophyImpact: {
studentSatisfaction: number;
conflictReduction: number;
academicImprovement: number;
};
}
export declare namespace HousingConventions {
/**
* Smart roommate matching algorithm
* Reduces conflicts by 70% through compatibility analysis
*/
function generateRoommateMatches(students: Student[], dormitories: Dormitory[], constraints?: AssignmentConstraints): RoommateMatchResult;
/**
* Optimize dormitory utilization
* Maximizes space efficiency while maintaining student comfort
*/
function optimizeDormUtilization(dormitories: Dormitory[], currentAssignments: HousingAssignment[], waitlist: Student[]): DormOptimizationResult;
/**
* Manage room change requests
* Handles conflicts and preferences while minimizing disruption
*/
function processRoomChangeRequests(requests: RoomChangeRequest[], currentAssignments: HousingAssignment[], dormitories: Dormitory[]): RoomChangeResult;
/**
* Generate residential life programs
* Creates community and learning opportunities
*/
function generateResLifePrograms(dormitories: Dormitory[], studentInterests: StudentInterest[], calendar: AcademicCalendar): ResLifeProgramPlan;
}
export interface AssignmentConstraints {
maxRoommatesPerRoom?: number;
genderSeparation?: boolean;
gradeGrouping?: boolean;
specialNeeds?: SpecialNeedRequirement[];
}
export interface RoommateMatchResult {
matches: RoommateMatch[];
unmatchedStudents: Student[];
totalCompatibility: number;
philosophyImpact: {
conflictReduction: number;
studentWellbeing: number;
teacherTimeReclaimed: number;
};
}
export interface RoommateMatch {
students: Student[];
room: Room;
compatibilityScore: number;
reasons: string[];
}
export interface CompatibleGroup {
students: Student[];
score: number;
preferences: HousingPreferences;
reasons: string[];
}
export interface DormOptimizationResult {
currentUtilization: number;
optimizedUtilization: number;
newAssignments: HousingAssignment[];
philosophyImpact: {
spaceEfficiency: number;
waitlistReduction: number;
costSavingsPerStudent: number;
};
}
export interface DormUtilization {
totalCapacity: number;
occupied: number;
occupancyRate: number;
availableSpaces: number;
byRoomType: any;
}
export interface OptimizationOpportunity {
dorm: Dormitory;
availableSpaces: number;
potentialAssignments: any[];
efficiencyGain: number;
}
export interface RoomChangeRequest {
studentId: string;
currentRoom: string;
reason: 'conflict' | 'medical' | 'preference';
details: string;
preferredOptions?: string[];
submittedDate: Date;
}
export interface RoomChangeResult {
approved: ProcessedRequest[];
denied: DeniedRequest[];
swaps: RoomSwap[];
totalRequests: number;
approvalRate: number;
philosophyImpact: {
studentSatisfaction: number;
conflictResolution: number;
administrativeTimeSaved: number;
};
}
export interface ProcessedRequest {
request: RoomChangeRequest;
newAssignment: HousingAssignment;
impact: any;
}
export interface DeniedRequest {
request: RoomChangeRequest;
reason: string;
alternatives: any[];
}
export interface RoomSwap {
student1: string;
student2: string;
room1: string;
room2: string;
mutualBenefit: number;
}
export interface StudentInterest {
studentId: string;
interests: string[];
academicFocus: string[];
socialPreferences: string[];
}
export interface AcademicCalendar {
semester: string;
events: CalendarEvent[];
breaks: DateRange[];
}
export interface CalendarEvent {
date: Date;
type: string;
description: string;
}
export interface DateRange {
start: Date;
end: Date;
name: string;
}
export interface ResLifeProgramPlan {
programs: ResidentialProgram[];
totalPrograms: number;
philosophyImpact: {
communityBuilding: number;
academicSupport: number;
socialWellbeing: number;
teacherInvolvement: number;
};
}
export interface ResidentialProgram {
dormId: string;
weeklyPrograms: any[];
specialEvents: any[];
studyGroups: any[];
estimatedParticipation: number;
resourceNeeds: any;
}
export interface SpecialNeedRequirement {
type: string;
accommodations: string[];
roomRequirements: string[];
}
//# sourceMappingURL=housing-conventions.d.ts.map