A desktop application for navy radar

README · hilmoo/navyradar
Desktop application for navy radar
Kelompok Mesin Rumput S8000
Ketua Kelompok: Hilmi Musyaffa - 23/516589/TK/56795
Anggota 1: Christian Kevin Andhika Danidaiva - 23/513576/TK/56433
Anggota 2: Harun - 23/514148/TK/56466
Anggota 3: Hilmi Musyaffa - 23/516589/TK/56795
Docs
You can find the openapi docs here.
Class Diagram
classDiagram
%% --- Model Classes ---
class Account {
+string Id
+string Username
+string Password
+string Email
+string Role
}
class AccountCaptain {
+List~string~ AssignedShipIds
+string CurrentShipId
}
class Position {
+double Latitude
+double Longitude
+DateTime Timestamp
}
class Ship {
+string Id
+string Name
+ShipType Type
+int YearBuild
+int LengthOverall
+int GrossTonnage
+string Destination
+string Origin
+double Speed
+double Heading
+Position CurrentPosition
+ShipStatus Status
+DateTime LastUpdate
+DateTime EstimatedArrival
}
class TrackingData {
+string ShipId
+List~Position~ PositionHistory
+DateTime StartTime
+DateTime EndTime
+double TotalDistance
+double AverageSpeed
+double MaxSpeed
}
class ShipType {
<<enumeration>>
CargoVessels
Tankers
PassengerVessels
}
class ShipStatus {
<<enumeration>>
Underway
AtAnchor
Moored
}
class AccountService {
+Register(username, password, email, isAdmin) Account?
+Login(username, password) Account?
+GetUser(id) Account?
+ListAllUser() List~Account~?
+UpdateAccount(id, account) Account?
+RemoveUser(id) Account?
}
class CaptainService {
+AddCaptain(id) Account?
+GetCaptain(id) AccountCaptain?
+ListAllCaptain() List~AccountCaptain~?
+UpdateCaptain(id, captain) Account?
+RemoveCaptain(id) Account?
}
class ShipService {
+GetShip(id) Ship?
+ListAllShips() List~Ship~?
+AddShip(ship) Ship
+UpdateShipPosition(id, position) Ship?
+UpdateShipStatus(id, status) Ship?
+UpdateDestination(id, destination) Ship?
+RemoveShip(id) Ship?
}
class TrackingDataService {
+AddTracking(trackingData) TrackingData?
+GetTracking(id) TrackingData?
+ListAllTrackings() List~TrackingData~?
}
Account <|-- AccountCaptain
Ship "1" *-- "1" Position : has
Ship "1" -- "1" ShipType
Ship "1" -- "1" ShipStatus
TrackingData "1" *-- "0..*" Position : has history
TrackingData "1" -- "1" Ship : tracks
AccountCaptain "1" -- "0..*" Ship : manages
AccountService ..> Account : uses
CaptainService ..> Account : uses
CaptainService ..> AccountCaptain : uses
ShipService ..> Ship : uses
ShipService ..> Position : uses
ShipService ..> ShipStatus : uses
TrackingDataService ..> TrackingData : uses