{"id":26145007,"url":"https://github.com/cos301-se-2021/high-five","last_synced_at":"2025-04-14T02:35:34.935Z","repository":{"id":46967501,"uuid":"369605106","full_name":"COS301-SE-2021/High-Five","owner":"COS301-SE-2021","description":"High Five is a real-time image analysis platform for images and videos taken by drone cameras. Users can add and customize the platform with the type of analysis that must be performed. Examples include counting cars in a parking lot, property surveillance or mapping. The platform allows users to write and upload their own analysis tools. A livestream feed from a drone camera can also be analysed through either the system's default tools, or user's custom tools.","archived":false,"fork":false,"pushed_at":"2022-08-16T08:42:31.000Z","size":142380,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-14T02:35:28.617Z","etag":null,"topics":["android-application","azure","csharp","dji-drone","video-processing"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/COS301-SE-2021.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-21T17:14:46.000Z","updated_at":"2024-05-20T18:12:35.000Z","dependencies_parsed_at":"2022-09-10T14:40:33.034Z","dependency_job_id":null,"html_url":"https://github.com/COS301-SE-2021/High-Five","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/COS301-SE-2021%2FHigh-Five","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/COS301-SE-2021%2FHigh-Five/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/COS301-SE-2021%2FHigh-Five/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/COS301-SE-2021%2FHigh-Five/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/COS301-SE-2021","download_url":"https://codeload.github.com/COS301-SE-2021/High-Five/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248811930,"owners_count":21165345,"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":["android-application","azure","csharp","dji-drone","video-processing"],"created_at":"2025-03-11T04:25:22.473Z","updated_at":"2025-04-14T02:35:34.897Z","avatar_url":"https://github.com/COS301-SE-2021.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cbr /\u003e\r\n\u003cdiv style=\"background: #ffffff\"\u003e\r\n\u003cp align=\"center\"\u003e\r\n  \u003ca href=\"https://github.com/COS301-SE-2021/High-Five\"\u003e\r\n    \u003cimg src=\"https://cdn.discordapp.com/attachments/841566124087705625/848994647472209990/logo1.PNG\" alt=\"Logo\" width=\"400\" height=\"300\"\u003e\r\n  \u003c/a\u003e\r\n\u003c/div\u003e\r\n\u003c!--\u003ch1 align=\"center\"\u003eHigh Five\u003c/h1\u003e --\u003e\r\n\u003ch2 align=\"center\"\u003eBDP Solutions\u003c/h2\u003e\r\n\r\n\r\n\r\n\r\n\r\n[comment]: \u003c\u003e (\u003c!-- TABLE OF CONTENTS --\u003e)\r\n\r\n[comment]: \u003c\u003e (\u003cdetails open=\"open\"\u003e)\r\n\r\n[comment]: \u003c\u003e (  \u003csummary\u003e\u003ch2 style=\"display: inline-block\"\u003eTable of Contents\u003c/h2\u003e\u003c/summary\u003e)\r\n\r\n[comment]: \u003c\u003e (  \u003col\u003e)\r\n\r\n[comment]: \u003c\u003e (    \u003cli\u003e)\r\n\r\n[comment]: \u003c\u003e (      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e)\r\n\r\n[comment]: \u003c\u003e (      \u003cul\u003e)\r\n\r\n[comment]: \u003c\u003e (        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e)\r\n\r\n[comment]: \u003c\u003e (      \u003c/ul\u003e)\r\n\r\n[comment]: \u003c\u003e (    \u003c/li\u003e)\r\n\r\n[comment]: \u003c\u003e (    \u003cli\u003e)\r\n\r\n[comment]: \u003c\u003e (      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e)\r\n\r\n[comment]: \u003c\u003e (      \u003cul\u003e)\r\n\r\n[comment]: \u003c\u003e (        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e)\r\n\r\n[comment]: \u003c\u003e (        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e)\r\n\r\n[comment]: \u003c\u003e (      \u003c/ul\u003e)\r\n\r\n[comment]: \u003c\u003e (    \u003c/li\u003e)\r\n\r\n[comment]: \u003c\u003e (    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e)\r\n\r\n[comment]: \u003c\u003e (    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e)\r\n\r\n[comment]: \u003c\u003e (    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e)\r\n\r\n[comment]: \u003c\u003e (    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e)\r\n\r\n[comment]: \u003c\u003e (    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e)\r\n\r\n[comment]: \u003c\u003e (    \u003cli\u003e\u003ca href=\"#acknowledgements\"\u003eAcknowledgements\u003c/a\u003e\u003c/li\u003e)\r\n\r\n[comment]: \u003c\u003e (  \u003c/ol\u003e)\r\n\r\n[comment]: \u003c\u003e (\u003c/details\u003e)\r\n\r\n\r\n\r\n\u003c!-- ABOUT THE PROJECT --\u003e\r\n## About\r\n\r\nHigh Five is a real-time image analysis platform for images and videos taken by drone cameras. Users can add and customize the platform with the type of analysis that must be performed. Examples include counting cars in a parking lot, property surveillance or mapping. The platform allows users to write and upload their own analysis tools. A livestream feed from a drone camera can also be analysed through either the system's default tools, or user's custom tools.\r\n\r\n### Project Links\r\n* []()[GitHub Project Board](https://github.com/COS301-SE-2021/High-Five/projects/1)\r\n* []()[High Five Web App](https://high5app.azurewebsites.net)\r\n* []()[High Five Mobile App](https://github.com/COS301-SE-2021/High-Five/releases/download/v1.0/HighFive.apk)\r\n* []()[High Five API](https://high5api.azurewebsites.net)\r\n\r\n### Diagrams\r\n* []()[Architecture Diagram](https://drive.google.com/file/d/1u2QGgjaRB3me4w9igwO6DNK-G7NKAtET/view?usp=sharing)\r\n* []()[Deployment Diagram](https://drive.google.com/file/d/1KR0C8Y1gS0xXfRICNfZJRmG7eViqwcDT/view?usp=sharing)\r\n* []()[Analysis Engine UML](https://drive.google.com/file/d/12QF1gNrhhxuhKnyefngL-WsJdLExVIEG/view?usp=sharing)\r\n\r\n### Documentation\r\n* []()[Software Requirements Specification](https://drive.google.com/file/d/12OQoSu9KelslLW-ezWm9j8r7d2rwmSqq/view?usp=sharing)\r\n* []()[Architectural Requirements Document](https://drive.google.com/file/d/1uiMvlBrDgG8j2R7GY7nlweket4Dn70Ea/view?usp=sharing)\r\n* []()[User Manual](https://drive.google.com/file/d/16x35Kz8_cxwhi3jYEo_C8KTR6zM9sk6n/view?usp=sharing)\r\n* []()[Coding Standards](https://drive.google.com/file/d/1nJEpt9iKSFayj-KGouJXDplLRqWuu3Bv/view?usp=sharing)\r\n* []()[Technical Installations Manual](https://drive.google.com/file/d/149znGeTOUpCOkRpu7CCMTbuhgO18mPJX/view?usp=sharing)\r\n\r\n#### Legacy Documentation\r\n* []()[Demo 1 (2021/06/04)](https://drive.google.com/drive/folders/1V4vp62uHegeeINPAz2WpAIin2ktGwdUF?usp=sharing)\r\n* []()[Demo 2 (2021/06/21)](https://drive.google.com/drive/folders/1Rla0xLhnU47Eo3MraKVAKi467o5LCXK9?usp=sharing)\r\n* []()[Demo 3 (2021/08/20)](https://drive.google.com/drive/folders/1_d7UQK1n-MQeq6rq6YKyY3ymsjF08tH2?usp=sharing)\r\n* []()[Demo 4 (2021/09/24)](https://drive.google.com/drive/folders/1GV09Kq9nBWRcek_OkQfpnmZQWTUaf96t?usp=sharing)\r\n\r\n\r\n\r\n### Technology Stack\r\n* []()Backend\r\n    * []()[.NET Core](https://dotnet.microsoft.com/download)\r\n    * []()[Azure AD B2C](https://azure.microsoft.com/en-us/services/active-directory/external-identities/b2c/)\r\n    * []()[Azure Blob Storage](https://azure.microsoft.com/en-us/services/storage/blobs/)\r\n    * []()[Microsoft Azure App Services](https://azure.microsoft.com/en-us/)\r\n* []()Web Application\r\n  * []()[Angular](https://angular.io/)\r\n  * []()[Ionic](https://ionicframework.com/)\r\n* []()Mobile Application\r\n  * []()[Kotlin](https://kotlinlang.org/docs/android-overview.html)\r\n  * []()[DJI-Drone Mobile SDK](https://developer.dji.com/mobile-sdk/)\r\n* []()Broker Server\r\n  * []()[Java](https://www.java.com/en/)\r\n  * []()[Apache Kafka](https://kafka.apache.org/)\r\n* []()Analysis Engine\r\n  * []()[.NET Framework](https://dotnet.microsoft.com/download/dotnet-framework)\r\n\r\n\r\n## Team Members\r\n\r\n| **Team Member** | **Profiles** | **Skills/Interest** \r\n| :-----: | :-----: | :-----: |  \r\n| ![Ruan Bieldt](https://drive.google.com/file/d/1gZl9ADKN8hrRT6VLbep5RdLbzXF-IkX_/view?usp=sharing \"Ruan Bieldt\") \u003cbr/\u003e Ruan Bieldt \u003cbr/\u003e u13145992 \u003cbr/\u003e (Team Leader) | [GitHub](https://github.com/ruan-bieldt) \u003cbr/\u003e [Profile Page](https://ruan-bieldt.github.io/) \u003cbr/\u003e [LinkedIn](https://www.linkedin.com/in/ruan-bieldt-9473ab91/) \u003cbr/\u003e | \u003cul\u003eElectronics\u003cli\u003eIoT\u003c/li\u003eDataStructures and Algorithms\u003cli\u003eCoding\u003c/li\u003e\u003cli\u003eProblem Solving\u003c/li\u003e\u003cli\u003eSwimming\u003c/li\u003e\u003c/ul\u003e |\r\n| ![Hannes Kirsten](https://media-exp1.licdn.com/dms/image/C4D03AQHm-LyvastazQ/profile-displayphoto-shrink_200_200/0/1619127993907?e=1634774400\u0026v=beta\u0026t=LjV3QRRUvSp7DCMcrLWnSoL0Yf2niKnYDlRoKZJ3_ZM \"Hannes Kirsten\") \u003cbr/\u003e Hannes Kirsten \u003cbr/\u003e u19049014 | [GitHub](https://github.com/NJHKirsten) \u003cbr/\u003e [Profile Page](https://njhkirsten.github.io/) \u003cbr/\u003e [LinkedIn](https://www.linkedin.com/in/hannes-nicolaas-kirsten-362a7020b/) \u003cbr/\u003e | -Artificial Intelligence\u003cbr/\u003e-Mathematics\u003cbr/\u003e-System Design |\r\n| ![Kyle Barry](https://media-exp1.licdn.com/dms/image/C5603AQE55Xwc59w5xg/profile-displayphoto-shrink_200_200/0/1548346645069?e=1634774400\u0026v=beta\u0026t=OAQDg5j9H1uyH5Irs7tDCd118bxyMaAQ5pJtpK1nTO0 \"Kyle Barry\") \u003cbr/\u003e Kyle Barry \u003cbr/\u003e u19232510 | [GitHub](https://github.com/darthcerellius) \u003cbr/\u003e [Profile Page](https://newideassolutions.com) \u003cbr/\u003e [LinkedIn](https://www.linkedin.com/in/kyle-barry-886237179/) \u003cbr/\u003e | Python, Java and Javascript programming \u003cbr\u003e Docker \u003cbr\u003e Linux \u003cbr\u003e Ionic frontend development|\r\n| ![Jeanré du Plessis](https://media-exp1.licdn.com/dms/image/C4D03AQEl8wcA51FtFA/profile-displayphoto-shrink_200_200/0/1624563981161?e=1637798400\u0026v=beta\u0026t=mLSVvSCsjpvxRkCssa3PMHL0pdF4sH9uTXJOXB_0g3c \"Jeanré du Plessis\") \u003cbr/\u003e Jeanré du Plessis \u003cbr/\u003e u19017970 \u003cbr/\u003e| [GitHub](https://github.com/JayXD-2K) \u003cbr/\u003e [Profile Page](https://jayxd-2k.github.io/)  \u003cbr/\u003e [LinkedIn](https://www.linkedin.com/in/jdp2k/) \u003cbr/\u003e | - MTB \u003cbr/\u003e - Road Cycling \u003cbr/\u003e - Playing Around With Django \u003cbr/\u003e - Golfing \u003cbr/\u003e |\r\n| ![Marco Oosthuizen](https://media-exp1.licdn.com/dms/image/C4D03AQGC-ldtLJjoow/profile-displayphoto-shrink_200_200/0/1618479763493?e=1637798400\u0026v=beta\u0026t=fKP3KYVTxh5i5n_b2k9eRzDSna_TR2YVZSqqLoPSkng \"Marco Oosthuizen\") \u003cbr/\u003e Marco Oosthuizen \u003cbr/\u003e u19012013 | [GitHub](https://github.com/Marco-Oosthuizen) \u003cbr/\u003e [Profile Page](https://marco-oosthuizen.github.io/) \u003cbr/\u003e [LinkedIn](https://www.linkedin.com/in/marco-oosthuizen-369b9320b/) \u003cbr/\u003e | Artificial Intelligence, Theoretical Computer Science, Complexity Theory, Discrete Mathematics |\r\n\r\n---\r\n\r\n## GitHub Structure\r\n\r\n### Branching Strategy\r\n\r\nmaster ( build )\r\n\u003c/br\u003e\r\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;− development ( build )\r\n\u003c/br\u003e\r\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;− backend−development ( build )\r\n\u003c/br\u003e\r\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;− backend-feature-feature_name\r\n\u003c/br\u003e\r\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;− mobile−development ( build )\r\n\u003c/br\u003e\r\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;− mobile-feature-feature_name\r\n\u003c/br\u003e\r\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;− web−development ( build )\r\n\u003c/br\u003e\r\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;− web-feature-feature_name\r\n\u003c/br\u003e\r\n\r\nDevelopment of the back-end and front-end has been divided into seperate branches for separation\r\nof concerns. Feature branches are used for both front-end and back-end to develop certain features before they are propagated into the appropriate development branches. Before merging, all branches must go through a mandatory Pull Request procedure in which the branch will be reviewed by another team member, who did not make the pull request, and - if approved - merged into the branch immediately above the requested branch in the hierarchy as defined above.\r\n\r\n## Code Quality Badges\r\n\r\n### Sonar Cloud\r\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=COS301-SE-2021_High-Five\u0026metric=bugs)](https://sonarcloud.io/dashboard?id=COS301-SE-2021_High-Five)\r\n\u003cbr\u003e\r\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=COS301-SE-2021_High-Five\u0026metric=code_smells)](https://sonarcloud.io/dashboard?id=COS301-SE-2021_High-Five)\r\n\u003cbr\u003e\r\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=COS301-SE-2021_High-Five\u0026metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=COS301-SE-2021_High-Five)\r\n\u003cbr\u003e\r\n[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=COS301-SE-2021_High-Five\u0026metric=ncloc)](https://sonarcloud.io/dashboard?id=COS301-SE-2021_High-Five)\r\n\u003cbr\u003e\r\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=COS301-SE-2021_High-Five\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=COS301-SE-2021_High-Five)\r\n\u003cbr\u003e\r\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=COS301-SE-2021_High-Five\u0026metric=reliability_rating)](https://sonarcloud.io/dashboard?id=COS301-SE-2021_High-Five)\r\n\u003cbr\u003e\r\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=COS301-SE-2021_High-Five\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=COS301-SE-2021_High-Five)\r\n\u003cbr\u003e\r\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=COS301-SE-2021_High-Five\u0026metric=sqale_index)](https://sonarcloud.io/dashboard?id=COS301-SE-2021_High-Five)\r\n\u003cbr\u003e\r\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=COS301-SE-2021_High-Five\u0026metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=COS301-SE-2021_High-Five)\r\n\u003cbr\u003e\r\n\r\n\r\n#### Builds\r\n[![Actions Status](https://github.com/COS301-SE-2021/High-Five/workflows/Ionic%20Build/badge.svg)](https://github.com/COS301-SE-2021/High-Five/actions/workflows/ionic.yml)\r\n\u003cbr\u003e\r\n[![Actions Status](https://github.com/COS301-SE-2021/High-Five/workflows/.NET%20Core%20Build/badge.svg)](https://github.com/COS301-SE-2021/High-Five/actions/workflows/aspnet.yml)\r\n\u003cbr\u003e\r\n[![Actions Status](https://github.com/COS301-SE-2021/High-Five/workflows/Android%20Build/badge.svg)](https://github.com/COS301-SE-2021/High-Five/actions/workflows/android_build.yml)\r\n\u003cbr\u003e\r\n#### Testing\r\n[![Actions Status](https://github.com/COS301-SE-2021/High-Five/workflows/.NET%20Core%20Unit%20Tests/badge.svg)](https://github.com/COS301-SE-2021/High-Five/actions/workflows/aspnet_unittests.yml)\r\n\u003cbr\u003e\r\n[![Actions Status](https://github.com/COS301-SE-2021/High-Five/workflows/.NET%20Core%20Integration%20Tests/badge.svg)](https://github.com/COS301-SE-2021/High-Five/actions/workflows/aspnet_integrationtests.yml)\r\n\u003cbr\u003e\r\n[![Actions Status](https://github.com/COS301-SE-2021/High-Five/workflows/Android%20Unit%20Tests/badge.svg)](https://github.com/COS301-SE-2021/High-Five/actions/workflows/android_unittests.yml)\r\n\u003cbr\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcos301-se-2021%2Fhigh-five","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcos301-se-2021%2Fhigh-five","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcos301-se-2021%2Fhigh-five/lists"}