# 1

Name: Student Record Information System
Objects:

- Student
	- ID
- Lecturer
	- ID
- Module
	- Lecturer Name
	- Year
	- Marks[]
- Optional Module
	- transferTo()
	- transferFrom()
Classes:
- Person
	- First Name
	- Last Name
- Programme
	- register()
Relationships:
- Person 1-1 Student
- Person 1-1 Lecturer
- Programme M-1 Module
- Module 1-1 Optional Module

```mermaid
---
title: Student Record Information System

---
erDiagram
	Person ||--o| Student : is
	Person ||--o| Lecturer : is	
	Programme }|--|| Module : has
	Module ||--o| OptionalModule : could_be
	
	OptionalModule {
		bool transferFrom()
		bool transferTo()
	}
	Module {
		string LecturerName
		int Year
		int[] Marks
	}
	Programme {
		bool register()
	}
	Lecturer {
		string ID
	}
	Student {
		string ID
	}
	Person {
		string FirstName
		string LastName
	}
%%{init:{'theme':'dark'}}%%
```

# 2

Name: Library Information System
Objects:

- Book
	- ISBN
- Recording
	- Duration
- Magazine
- Journal
	- ISSN
- Serial
	- Issue Number
Class:
- Holding
	- Title
	- Keywords
	- Type
	- Register()
Relationships:
- Holding 1-1 Book
- Holding 1-1 Recording
- Holding 1-1 Serial
- Serial 1-1 Journal
- Serial 1-1 Magazine

```mermaid
---
title: Library Information System
---
erDiagram
Holding ||--|| Book : is
Holding ||--|| Recording : is
Holding ||--|| Serial : is
Serial ||--|| Journal : has
Serial ||--|| Magazine : has

Holding {
	string Title
	string[] Keywords
	string Type
	bool register()
}

Book {
	string ISBN
}

Recording {
	int Duration
}

Serial {
	int issueNumber
}

Journal {
	string ISSN
}

Magazine {

}
%%{init:{'theme':'dark'}}%%
```

# 3

Name: Flight Travel Booking System
Objects:
- Flight
	- Departure Location
	- Arrival Location
	- Flight Number
	- Departure Date
	- Arrival Date
- Hotel
	- Departure Date
	- Arrival Date
	- Room Number
	- Guest Count
- Flight Booking
	- eTicket
- Flight Reservation
- Hotel Booking
- Hotel Reservation
	- Transaction ID
Class:
- Contract
	- ID

Relationships:
All 1-1

```mermaid
---
title: Flight Travel Booking System
---
erDiagram
Contract ||--|| Flight : books
Contract ||--|| Hotel : books
Flight ||--|| Flight_Booking : has
Flight ||--|| Flight_Reservation : reserves
Hotel ||--|| Hotel_Booking : has
Hotel ||--|| Hotel_Reservation : reserves

Contract {
	string ContractID
}

Flight {
	string departureDestination
	string arrivalDestination
	int flightNumber
	date departureDate
	date arrivalDate
}

Hotel {
	date departureDate
	date arrivalDAte
	int roomNumber
	int guestCount
}

Flight_Booking {
	int eticketNumber
}

Hotel_Reservation {
	int transactionID
}

%%{init:{'theme':'dark'}}%%
```
