@iota-big3/layer-1-student-life
Version:
Layer 1 Student Life conventions for School OS - Housing, activities, wellness, and social patterns
271 lines • 7.75 kB
TypeScript
/**
* Activities Conventions for Student Life
* Manages clubs, sports, arts, and extracurricular programs
*/
export interface Activity {
id: string;
name: string;
type: 'club' | 'sport' | 'arts' | 'academic' | 'service' | 'leadership';
category: string;
description: string;
requirements: ActivityRequirements;
schedule: ActivitySchedule;
capacity: Capacity;
advisor: string;
budget: number;
}
export interface ActivityRequirements {
gradeLevel?: number[];
gpaMinimum?: number;
prerequisites?: string[];
tryoutRequired?: boolean;
applicationRequired?: boolean;
commitmentHours: number;
fees?: number;
}
export interface ActivitySchedule {
meetingPattern: 'daily' | 'weekly' | 'biweekly' | 'monthly';
dayOfWeek?: string[];
timeSlot: TimeSlot;
location: string;
season?: 'fall' | 'winter' | 'spring' | 'summer' | 'year-round';
}
export interface TimeSlot {
startTime: string;
endTime: string;
duration: number;
}
export interface Capacity {
minimum: number;
maximum: number;
current: number;
waitlist: number;
}
export interface StudentParticipation {
studentId: string;
activities: ActivityEnrollment[];
totalHours: number;
leadershipRoles: LeadershipRole[];
achievements: Achievement[];
}
export interface ActivityEnrollment {
activityId: string;
enrollmentDate: Date;
status: 'active' | 'inactive' | 'completed' | 'withdrawn';
attendance: number;
role: 'member' | 'officer' | 'captain' | 'president';
performance?: PerformanceMetrics;
}
export interface LeadershipRole {
activityId: string;
position: string;
startDate: Date;
endDate?: Date;
responsibilities: string[];
impact: LeadershipImpact;
}
export interface LeadershipImpact {
membersLed: number;
eventsOrganized: number;
budgetManaged: number;
skillsDeveloped: string[];
}
export interface Achievement {
type: 'award' | 'recognition' | 'milestone' | 'competition';
name: string;
date: Date;
level: 'school' | 'district' | 'state' | 'national' | 'international';
description: string;
}
export interface PerformanceMetrics {
skillProgress: number;
teamworkScore: number;
leadershipScore: number;
commitmentScore: number;
}
export declare namespace ActivitiesConventions {
/**
* Generate balanced activity schedules
* Prevents conflicts and maximizes participation
*/
function generateActivitySchedule(activities: Activity[], facilities: Facility[], academicSchedule: AcademicSchedule, constraints?: SchedulingConstraints): ActivityScheduleResult;
/**
* Match students to activities based on interests and skills
* Enhances engagement and personal growth
*/
function recommendActivities(student: Student, availableActivities: Activity[], currentParticipation: StudentParticipation, peerData?: PeerActivityData): ActivityRecommendation;
/**
* Track and optimize activity participation
* Ensures balanced involvement and prevents overcommitment
*/
function optimizeStudentPortfolio(student: Student, currentActivities: ActivityEnrollment[], academicPerformance: AcademicMetrics, wellbeingMetrics?: WellbeingIndicators): PortfolioOptimization;
/**
* Manage activity resources and budgets
* Optimizes allocation for maximum student benefit
*/
function allocateActivityResources(activities: Activity[], totalBudget: number, historicalData: ActivityHistoricalData[], priorities: ResourcePriorities): ResourceAllocationResult;
}
export interface Student {
id: string;
name: string;
grade: number;
gpa?: number;
}
export interface Facility {
id: string;
name: string;
type: string;
capacity: number;
availability: TimeSlot[];
equipment?: string[];
}
export interface AcademicSchedule {
schoolHours: TimeSlot;
classPeriods: TimeSlot[];
breaks: TimeSlot[];
}
export interface SchedulingConstraints {
maxDailyActivities?: number;
bufferBetweenActivities?: number;
priorityTypes?: string[];
blackoutTimes?: TimeSlot[];
}
export interface ActivityScheduleResult {
schedule: ScheduledActivity[];
conflicts: ScheduleConflict[];
utilization: FacilityUtilization;
philosophyImpact: {
participationPotential: number;
conflictReduction: number;
teacherTimeOptimized: number;
};
}
export interface ScheduledActivity {
activity: Activity;
timeSlot: TimeSlot;
facility: Facility;
conflicts: string[];
}
export interface ScheduleConflict {
activity: Activity;
reason: string;
alternatives: TimeSlot[];
}
export interface FacilityUtilization {
overall: number;
byFacility: Map<string, number>;
peakTimes: TimeSlot[];
underutilized: Facility[];
}
export interface ActivityGroup {
type: string;
activities: Activity[];
priority: number;
}
export interface OptimalSlot {
time: TimeSlot;
facility: Facility;
conflicts: string[];
}
export interface PeerActivityData {
popularActivities: string[];
friendParticipation: Map<string, string[]>;
}
export interface ActivityRecommendation {
topRecommendations: RecommendedActivity[];
byCategory: Map<string, RecommendedActivity[]>;
philosophyImpact: {
engagementIncrease: number;
skillDevelopment: number;
socialConnection: number;
};
}
export interface RecommendedActivity {
activity: Activity;
fitScore: number;
reasons: string[];
growthPotential: number;
peerParticipation: number;
}
export interface StudentProfile {
interests: string[];
strengths: string[];
availableTime: number;
preferences: any;
}
export interface FitScore {
overall: number;
reasons: string[];
growthPotential: number;
peerMatch: number;
}
export interface AcademicMetrics {
gpa: number;
courseLoad: number;
academicStanding: string;
}
export interface WellbeingIndicators {
stressLevel: number;
socialConnection: number;
physicalHealth: number;
mentalHealth: number;
}
export interface PortfolioOptimization {
currentLoad: ActivityLoad;
balance: PortfolioBalance;
recommendations: PortfolioRecommendation[];
projectedOutcomes: any;
philosophyImpact: {
studentWellbeing: number;
academicBalance: number;
holisiticDevelopment: number;
};
}
export interface ActivityLoad {
totalHours: number;
byType: Map<string, number>;
intensity: 'low' | 'medium' | 'high';
}
export interface PortfolioBalance {
diversity: number;
academicImpact: number;
wellbeingScore: number;
timeBalance: string;
}
export interface PortfolioRecommendation {
type: 'reduce' | 'diversify' | 'leadership' | 'maintain';
reason: string;
suggestedChanges: string[];
expectedBenefit: string;
}
export interface ActivityHistoricalData {
activityId: string;
year: number;
participation: number;
budget: number;
outcomes: any;
}
export interface ResourcePriorities {
focusAreas: string[];
underservedPopulations: string[];
strategicGoals: string[];
}
export interface ResourceAllocationResult {
allocations: ActivityAllocation[];
totalAllocated: number;
unallocated: number;
fundedActivities: number;
philosophyImpact: {
studentReach: number;
diversitySupported: number;
opportunityEquity: number;
};
}
export interface ActivityAllocation {
activity: Activity;
allocatedBudget: number;
percentOfRequest: number;
justification: string;
expectedOutcomes: any;
}
//# sourceMappingURL=activities-conventions.d.ts.map