{"id":21130696,"url":"https://github.com/annal001/wildlife-sighting-tracker","last_synced_at":"2026-05-07T21:39:20.419Z","repository":{"id":110787356,"uuid":"489336892","full_name":"AnnaL001/wildlife-sighting-tracker","owner":"AnnaL001","description":"A Java web application that allows users to track wildlife sightings in an area for the purposes of an environmental impact study on the clearcutting of a nearby forest.","archived":false,"fork":false,"pushed_at":"2023-06-01T13:43:46.000Z","size":244,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T06:11:33.509Z","etag":null,"topics":["gradle","gradle-java","handlebars","java","java-spark","java11","junit5","maven-pom","object-oriented-programming"],"latest_commit_sha":null,"homepage":"https://anna-wildlife-sighting-tracker.herokuapp.com/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AnnaL001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-06T11:58:27.000Z","updated_at":"2023-01-26T10:12:19.000Z","dependencies_parsed_at":"2025-01-21T06:11:12.761Z","dependency_job_id":"120a4cb7-7ce7-46a3-ab84-1a5f3dad76f6","html_url":"https://github.com/AnnaL001/wildlife-sighting-tracker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnnaL001%2Fwildlife-sighting-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnnaL001%2Fwildlife-sighting-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnnaL001%2Fwildlife-sighting-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnnaL001%2Fwildlife-sighting-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnnaL001","download_url":"https://codeload.github.com/AnnaL001/wildlife-sighting-tracker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243573495,"owners_count":20312883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gradle","gradle-java","handlebars","java","java-spark","java11","junit5","maven-pom","object-oriented-programming"],"created_at":"2024-11-20T05:37:19.895Z","updated_at":"2026-05-07T21:39:15.398Z","avatar_url":"https://github.com/AnnaL001.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wildlife Sighting Tracker\n#### A Java application that allows users to track wildlife sightings in an area for the purposes of an environmental impact study on the clearcutting of a nearby forest.\n\n## Description\n\nThe Java application allows users to track wildlife sightings in an area by recording animal data such as whether they are endangered or not, their species and sighting data; the animal sighted, the location, who sighted the animal and the time of reporting. Moreover, a user can record multiple animals/species sighted at the same time. In addition to this, a user can view sightings based on location and the rangers that reported it. Form validation has also been included to validate user input. Currently, the list of rangers and locations are predefined thus readonly. The application also contains JUnit tests that check that the backend logic is working as expected in various scenarios as listed in the Behavior Driven Development section below. That is, in the development of the application TDD(Test Driven Development) has been used alongside BDD(Behavior Driven Development). \n\n**Hosting to be moved from Heroku**\n\n#### By **[Lynn Nyangon](https://github.com/AnnaL001)**\n\n## Setup/Installation Requirements\n\n- Using a mobile device/laptop ensure you have access to stable internet connection\n- To access the Java application's code from your GitHub repository, you can fork the repository main's branch via the 'Fork' button.\n- To access the Java application's code locally, you can clone the main branch or download the ZIP folder via the 'Code' button\n- Once locally, you can view/run the Java application's code via a text editor(VS Code or Sublime Text) or an IDE(IntelliJ).\n- In the case of IntelliJ, to navigate you can reference their documentation https://www.jetbrains.com/help/idea/getting-started.html\n- Commands to set up the databases(wildlife_tracker and wildlife_tracker_test) are as listed below: \u003cbr\u003e\n  ```\n    /* In psql */\n    CREATE DATABASE wildlife_tracker;\n    \\c wildlife_tracker;\n    CREATE TABLE animals (id serial PRIMARY KEY, image varchar, name varchar, health varchar, age varchar, category varchar);\n    CREATE TABLE sightings (id serial PRIMARY KEY, locationid int, rangerid int, reportedat timestamp);\n    CREATE TABLE rangers (id serial PRIMARY KEY, name varchar, badge varchar UNIQUE, phone varchar UNIQUE, email varchar UNIQUE);\n    CREATE TABLE locations (id serial PRIMARY KEY, name varchar, description varchar);\n    CREATE TABLE species (id serial PRIMARY KEY, name varchar);\n    CREATE TABLE animals_sightings (id serial PRIMARY KEY, animalid int, sightingid int);\n    CREATE DATABASE wildlife_tracker_test WITH TEMPLATE wildlife_tracker;\n  ```\n- Otherwise to view the web application navigate to the link below \u003cbr\u003e\n[Live Site](https://anna-wildlife-sighting-tracker.herokuapp.com/)\n  \n## Behavior Driven Development(BDD)\n| **Behavior**                              | **Input Example**                           | **Output**                                                         |\n|-------------------------------------------|:--------------------------------------------|:-------------------------------------------------------------------|\n| Add an endangered animal     | name=Lion King, image=https://wildlife_tracker/image.jpg, category=Endangered, health=healthy age=young |  Animal is added and user redirected to animal list page    |\n| Add a thriving animal   | name=Mindy,  image=Lion King, speciesId=1 image=https://wildlife_tracker/image.jpg, category=Thriving  | Animal is added and user redirected to animal list page |\n| Add a sighting  | locationId=1, rangerId=1 | Sighting added and user redirected to sighting list page   |\n| Add animals sighted to sighting | animalId=1, sightingId=1   | Selected animal sighted added to sighting data and user redirected to sighting details page|\n| Read an endangered animal's data | id=1  | User redirected to endangered animal profile page |   \n| Read a thriving animal's data | id=1 | User redirected to thriving animal profile page | \n| Read a sighting's data | id=1 | User redirected to sighting's detail page |\n| Read all endangered animals' data | No input required  | User redirected to endangered animal list page |\n| Read all thriving animals' data | No input required | User redirected to thriving animal list page |\n| Read all sightings' data | No input required |  User redirected to sightings' list page |\n| Read sighting's data based on location | locationId=1 |  User redirected to location's page and can view what sightings have been reported at specified location |\n|Read sighting's data based on ranger| rangerId=1 | User redirected to ranger's page and can view sightings reported by each ranger |\n| Update an endangered animal's data | name=Cecil, speciesId=2 image=https://wildlife_tracker/image.jpg, category=Endangered, health=ill age=young | Endangered animal's data is updated and user redirected to endangered animal's profile page |\n| Update a thriving animal's data | name=Mindy Starr,  image=Lion King, speciesId=1 image=https://wildlife_tracker/image.jpg, category=Thriving  | Thriving animal's data is updated and user redirected to thriving animal's profile page |\n| Update s sighting's data | locationId=1, rangerId=3 | Sighting data updated and user redirected to sighting's details page |\n| Update animals sighted to sighting data | animalId=1, sightingId=4 | Sighted animals' data recorded alongside other sighting details |\n| Delete an endangered animal data | animalId=1 | Endangered animal's data is deleted and user redirected to animal list page |\n| Delete a thriving animal's data | animalId=1 | Thriving animal's data is deleted and user redirected to animal list page |\n| Delete a sighting's data | id=1 | Sighting's data is deleted and user redirected to sighting list page |\n\n\n## Dependencies\n\n- JUnit 5 \n- Spark Framework\n- Handlebars \n- Gradle\n- Maven\n- Joda Time\n\n## Technologies Used\n\n- Java \n- Bootstrap\n- HTML\n- CSS\n- Postgresql\n\n## Known bugs\nThe form selects do not automatically set the selected value as the current value in the database, when updating data.\n\n## Support and contact details\n\nIn case of any queries you can reach out via email; lynn.nyangon@gmail.com\n\n### License\n\nMIT License\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\u003cbr\u003e\nCopyright (c) 2022 **Lynn Nyangon**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fannal001%2Fwildlife-sighting-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fannal001%2Fwildlife-sighting-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fannal001%2Fwildlife-sighting-tracker/lists"}