// UML class diagram in Umple showing the data managed by
// a co-operative education system that has to place students with employers

class Program
{
  name;
  1..* -- * Student;
}

class Application
{
  * -- 1 Student;
  * -- 1 Job;
  1..* -- 0..1 Interview;
  1 -- 0..1 Offer;
}

class Job
{
  description;
  location;
  Date startDate;
  Date endDate;
  * -- 1..* Program;
}

class Employer
{
  name;
  1 -- * Job;
  0..1 -> * TimeSlot;
}

class Interview
{
  location;
  0..1 -> 0..1 TimeSlot;
}

class TimeSlot
{
  startTime;
  endTime;
  status;
}

class Student
{
  Integer stNum;
  1 -- 1 Transcript;
  0..1 -> * TimeSlot;
}

class Resume
{
  text;
  0..1 -- 1 Student;
}

class Transcript
{
  text;
}

class Offer
{
  ranking;
  Boolean accepted;
}

//$?[End_of_model]$?



class Program
{
  position 40 459 113 64;
  position.association Program__Student 113,22 0,42;
}

class Application
{
  position 128 355 109 46;
  position.association Application__Student 109,35 0,8;
  position.association Application__Job 0,0 90,109;
  position.association Application__Interview 109,3 0,43;
  position.association Application__Offer 68,0 0,70;
}


class Employer
{
  position 329 66 113 64;
  position.association Employer__Job 0,40 149,26;
  position.association Employer__TimeSlot 113,49 23,0;
}

class Interview
{
  position 339 298 128 64;
  position.association Interview__TimeSlot 128,8 0,66;
}

class TimeSlot
{
  position 543 212 140 108;
}

class Resume
{
  position 563 414 109 46;
  position.association Resume__Student 0,39 128,9;
}

class Transcript
{
  position 552 497 109 46;
}

class Offer
{
  position 265 170 148 82;
}

class Job
{
  position 38 130 148 109;
  position.association Job__Program 32,109 30,0;
}

class Student
{
  position 289 439 127 58;
  position.association Student__Transcript 127,32 0,10;
  position.association Student__TimeSlot 116,0 0,10;
}
