diff --git a/HW3 Design/CS411 HW3.pdf b/HW3 Design/CS411 HW3.pdf new file mode 100644 index 0000000..89add8a Binary files /dev/null and b/HW3 Design/CS411 HW3.pdf differ diff --git a/HW3 Design/IMG_3793.jpeg b/HW3 Design/IMG_3793.jpeg new file mode 100644 index 0000000..a2b157d Binary files /dev/null and b/HW3 Design/IMG_3793.jpeg differ diff --git a/HW3 Design/wildlife_tracker/animal_management/__init__.py b/HW3 Design/wildlife_tracker/animal_management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/HW3 Design/wildlife_tracker/animal_management/animal.py b/HW3 Design/wildlife_tracker/animal_management/animal.py index 9b3e051..ff7cffc 100644 --- a/HW3 Design/wildlife_tracker/animal_management/animal.py +++ b/HW3 Design/wildlife_tracker/animal_management/animal.py @@ -1,5 +1,18 @@ from typing import Any, Optional class Animal: + #Section 1 + def __init__(self, animal_id: int, species: str, age: Optional[int] = None,health_status: Optional[str] = None): + self.animal_id = animal_id + self.species = species + self.age = age + self.health_status = health_status + + def update_animal_details(animal_id: int, **kwargs: Any) -> None: + pass + + + def update_animal_details(animal_id: int, **kwargs: Any) -> None: + pass + - pass diff --git a/HW3 Design/wildlife_tracker/animal_management/animal_manager.py b/HW3 Design/wildlife_tracker/animal_management/animal_manager.py index 4493784..ffe394c 100644 --- a/HW3 Design/wildlife_tracker/animal_management/animal_manager.py +++ b/HW3 Design/wildlife_tracker/animal_management/animal_manager.py @@ -1,17 +1,19 @@ -from typing import Optional - -from wildlife_tracker.animal_managment.animal import Animal +from typing import Optional, Dict +from animal import Animal class AnimalManager: - + #Section 1 def __init__(self) -> None: - animals: dict[int, Animal] = {} + self.animals: Dict[int, Animal] = {} + def register_animal(self, animal: Animal) -> None: + pass def get_animal_by_id(self, animal_id: int) -> Optional[Animal]: pass - def register_animal(self, Animal) -> None: + def remove_animal(self, animal_id: int) -> None: pass - def remove_animal(self, animal_id: int) -> None: + def update_animal_details(self, animal_id: int, **kwargs: Any) -> None: pass + diff --git a/HW3 Design/wildlife_tracker/habitat_management/.DS_Store b/HW3 Design/wildlife_tracker/habitat_management/.DS_Store new file mode 100644 index 0000000..dd1b535 Binary files /dev/null and b/HW3 Design/wildlife_tracker/habitat_management/.DS_Store differ diff --git a/HW3 Design/wildlife_tracker/habitat_management/__init__.py b/HW3 Design/wildlife_tracker/habitat_management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/HW3 Design/wildlife_tracker/habitat_management/habitat.py b/HW3 Design/wildlife_tracker/habitat_management/habitat.py index a1842ed..9e03bd6 100644 --- a/HW3 Design/wildlife_tracker/habitat_management/habitat.py +++ b/HW3 Design/wildlife_tracker/habitat_management/habitat.py @@ -1,7 +1,7 @@ from typing import Any, List, Optional - +from wildlife_tracker.animal_management.animal import Animal class Habitat: - + #Done for us def __init__(self, habitat_id: int, geographic_area: str, @@ -29,4 +29,5 @@ def get_animals_in_habitat(self) -> List[Animal]: pass def get_habitat_details(self) -> dict: - pass \ No newline at end of file + pass + diff --git a/HW3 Design/wildlife_tracker/habitat_management/habitat_manger.py b/HW3 Design/wildlife_tracker/habitat_management/habitat_manger.py index 5e4213d..b165f0d 100644 --- a/HW3 Design/wildlife_tracker/habitat_management/habitat_manger.py +++ b/HW3 Design/wildlife_tracker/habitat_management/habitat_manger.py @@ -1,5 +1,36 @@ -from typing import Optional, List +from typing import Optional, List, Any +from wildlife_tracker.animal_management.animal import Animal +from wildlife_tracker.habitat_management.habitat import Habitat + class HabitatManager: + #Section 2: Habitat Management + def __init__(self) -> None: + habitats: dict[int, Habitat] = {} + #Done in order as the requirements + def create_habitat(habitat_id: int, geographic_area: str, size: int, environment_type: str) -> Habitat: + pass + def remove_habitat(habitat_id: int) -> None: + pass + + def get_habitats_by_size(size: int) -> List[Habitat]: + pass + def get_habitats_by_geographic_area(geographic_area: str) -> List[Habitat]: + pass + def get_habitat_by_id(habitat_id: int) -> Habitat: + pass + def get_habitats_by_type(environment_type: str) -> List[Habitat]: + pass + + def get_habitat_details(habitat_id: int) -> dict: + pass + + def get_animals_in_habitat(habitat_id: int) -> List[Animal]: + pass + def assign_animals_to_habitat(habitat_id: int, animals: List[Animal]) -> None: + pass + def update_habitat_details(habitat_id: int, **kwargs: dict[str, Any]) -> None: + pass + def assign_animals_to_habitat(animals: List[Animal]) -> None: + pass - pass diff --git a/HW3 Design/wildlife_tracker/migration_tracking/.DS_Store b/HW3 Design/wildlife_tracker/migration_tracking/.DS_Store new file mode 100644 index 0000000..eb544ea Binary files /dev/null and b/HW3 Design/wildlife_tracker/migration_tracking/.DS_Store differ diff --git a/HW3 Design/wildlife_tracker/migration_tracking/__init__.py b/HW3 Design/wildlife_tracker/migration_tracking/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/HW3 Design/wildlife_tracker/migration_tracking/migration.py b/HW3 Design/wildlife_tracker/migration_tracking/migration.py index 697e17f..c1c81b1 100644 --- a/HW3 Design/wildlife_tracker/migration_tracking/migration.py +++ b/HW3 Design/wildlife_tracker/migration_tracking/migration.py @@ -1,5 +1,23 @@ -from typing import Any +from typing import Any, Optional +from wildlife_tracker.habitat_management.habitat import Habitat +from wildlife_tracker.migration_tracking.migration_path import MigrationPath + class Migration: - pass \ No newline at end of file + def __init__(self, migration_id: int, destination: Habitat, migration_path: MigrationPath, start_date: str, start_location: Habitat, status: str = "Scheduled", duration: Optional[int] = None): + self.migration_id = migration_id + self.status = status + self.duration = duration + self.start_location = start_location + self.destination = destination + self.migration_path = migration_path + self.start_date = start_date + self.start_location = start_location + #Section 3: Migration Tracking + def update_migration_details(migration_id: int, **kwargs: Any) -> None: + pass + def get_migration_details(self)->dict[str,Any]: + pass + def cancel_migration(self) -> None: + pass diff --git a/HW3 Design/wildlife_tracker/migration_tracking/migration_manager.py b/HW3 Design/wildlife_tracker/migration_tracking/migration_manager.py index ab3ead7..dab63b1 100644 --- a/HW3 Design/wildlife_tracker/migration_tracking/migration_manager.py +++ b/HW3 Design/wildlife_tracker/migration_tracking/migration_manager.py @@ -1,6 +1,42 @@ -from typing import Optional - +from typing import Any, Optional +from wildlife_tracker.habitat_management.habitat import Habitat +from wildlife_tracker.migration_tracking.migration_path import MigrationPath class MigrationManager: - pass + def __init__(self) -> None: + migrations: dict[int, Migration] = {} + paths: dict[int, MigrationPath] = {} + def get_migration_paths(self) -> list[MigrationPath]: + pass + def get_migration_path_by_id(path_id: int) -> MigrationPath: + pass + def get_migrations() -> list[Migration]: + pass + def remove_migration_path(path_id: int) -> None: + pass + def get_migration_by_id(migration_id: int) -> Migration: + pass + def get_migration_details(migration_id: int) -> dict[str, Any]: + pass + def get_migrations_by_status(status: str) -> list[Migration]: + pass + def get_migration_paths_by_species(species: str) -> list[MigrationPath]: + pass + def get_migration_paths_by_start_location(start_location: Habitat) -> list[MigrationPath]: + pass + def get_migrations_by_current_location(current_location: str) -> list[Migration]: + pass + def get_migration_paths_by_destination(destination: Habitat) -> list[MigrationPath]: + pass + def get_migrations_by_start_date(start_date: str) -> list[Migration]: + pass + def get_migrations_by_migration_path(migration_path_id: int) -> list[Migration]: + pass + def get_migration_path_details(path_id) -> dict: + pass + def schedule_migration(migration_path: MigrationPath) -> None: + pass + def cancel_migration(migration_id: int) -> None: + pass + diff --git a/HW3 Design/wildlife_tracker/migration_tracking/migration_path.py b/HW3 Design/wildlife_tracker/migration_tracking/migration_path.py index 48085c6..d04e17f 100644 --- a/HW3 Design/wildlife_tracker/migration_tracking/migration_path.py +++ b/HW3 Design/wildlife_tracker/migration_tracking/migration_path.py @@ -1,5 +1,23 @@ -from typing import Optional +from typing import Any, Optional +from wildlife_tracker.habitat_management.habitat import Habitat +from wildlife_tracker.migration_tracking.migration_path import MigrationPath + class MigrationPath: - pass \ No newline at end of file + def __init__(self, path_id: int, current_date: str, current_location: str): + self.path_id = path_id + self.current_date = current_date + self.current_location = current_location + #Section 3.1: Migration Paths + def create_migration_path(self, species: str, start_location: Habitat, destination: Habitat, duration: Optional[int] = None) -> None: + pass + + def get_migration_path_details(self) -> dict: + pass + + def remove_migration_path(self) -> None: + pass + + def update_migration_path_details(self, **kwargs) -> None: + pass