{"id":637,"name":"Treetracker","description":"Coordinates the digital capture of tree growth data in the field, allowing to establish employment for people living in extreme poverty based on tree planting.","url":"https://github.com/Greenstand/treetracker-android","last_synced_at":"2026-06-24T13:30:28.544Z","repository":{"id":37276107,"uuid":"103445150","full_name":"Greenstand/treetracker-android","owner":"Greenstand","description":"Treetracker is Greenstands open source Android app to track and verify reforestation efforts globally. NEW DEVELOPERS:  Please refer to the README for is issue milestones and topics!  https://github.com/Greenstand/treetracker-android/blob/master/README.md","archived":false,"fork":false,"pushed_at":"2026-06-14T03:16:00.000Z","size":114693,"stargazers_count":99,"open_issues_count":135,"forks_count":113,"subscribers_count":17,"default_branch":"master","last_synced_at":"2026-06-17T10:05:07.733Z","etag":null,"topics":["android"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Greenstand.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":"https://www.paypal.com/donate/?hosted_button_id=3YGXULRCRZZEQ"}},"created_at":"2017-09-13T20:05:32.000Z","updated_at":"2026-06-14T03:16:05.000Z","dependencies_parsed_at":"2026-05-30T23:02:06.535Z","dependency_job_id":null,"html_url":"https://github.com/Greenstand/treetracker-android","commit_stats":{"total_commits":1475,"total_committers":49,"mean_commits":"30.102040816326532","dds":0.6657627118644067,"last_synced_commit":"13e8a65b4edf480ea1c081ec338a6509ea93d0a9"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/Greenstand/treetracker-android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greenstand%2Ftreetracker-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greenstand%2Ftreetracker-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greenstand%2Ftreetracker-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greenstand%2Ftreetracker-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Greenstand","download_url":"https://codeload.github.com/Greenstand/treetracker-android/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greenstand%2Ftreetracker-android/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34528144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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"}},"owner":{"login":"Greenstand","name":"Greenstand","uuid":"25363578","kind":"organization","description":"Treetracker - Addressing Poverty and Climate Change through transparency in tree growing efforts","email":"info@greenstand.org","website":"https://app.gitbook.com/@greenstand/s/engineering/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/25363578?v=4","repositories_count":54,"last_synced_at":"2023-03-03T22:46:34.987Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/Greenstand","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-14T06:13:32.341Z","updated_at":"2023-03-03T22:46:35.150Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Greenstand","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Greenstand/repositories"},"packages":[],"commits":{"id":1254312,"full_name":"Greenstand/treetracker-android","default_branch":"master","total_commits":1561,"total_committers":67,"total_bot_commits":1,"total_bot_committers":1,"mean_commits":23.29850746268657,"dds":0.6841768097373478,"past_year_total_commits":63,"past_year_total_committers":18,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":3.5,"past_year_dds":0.33333333333333337,"last_synced_at":"2026-06-21T12:07:58.773Z","last_synced_commit":"52019c36387aa3fccb243107690fa729a3a2618f","created_at":"2023-03-27T11:32:01.141Z","updated_at":"2026-06-21T12:05:56.348Z","committers":[{"name":"Matthew Xi","email":"matthew.fullstackgis@gmail.com","login":"ZavenArra","count":493},{"name":"Elforama","email":"elforama@gmail.com","login":"Elforama","count":341},{"name":"Taofeek Oduola","email":"oduola.taofeekkola@gmail.com","login":"EngrTaofeek","count":107},{"name":"Arun Bakt","email":"arunbakt@gmail.com","login":"arunbakt","count":99},{"name":"Treetracker Automation","email":"automation@treetracker.org","login":null,"count":67},{"name":"Peacenux","email":"peacenguyen1@gmail.com","login":null,"count":52},{"name":"Lawrence Muller","email":"lawrencejmuller@gmail.com","login":null,"count":50},{"name":"LaviniaDragunoi","email":"lavinia.dragunoi@yahoo.ro","login":"LaviniaDragunoi","count":47},{"name":"DavidEzraJay","email":"Jay@greenstand.org","login":"Davidezrajay","count":42},{"name":"emmanue","email":"brinkcorp@gmail.com","login":"emmanue","count":35},{"name":"Jhoon Saravia","email":"jhoonsar@gmail.com","login":"jhoon","count":25},{"name":"Ahmed Salem","email":"mozarty11@gmail.com","login":"mozarty","count":21},{"name":"Sebastian Gärtner","email":"sg@esea.co.tz","login":"sebastiangaertner","count":19},{"name":"Caleb Langat","email":"95022986+Mzazi25","login":"Mzazi25","count":17},{"name":"Rick Frank","email":"rfrank@dominionsw.com","login":"DominionSoftware","count":15},{"name":"Surbhi79","email":"spate212@nyit.edu","login":"Surbhi79","count":13},{"name":"lastforeverzl","email":"lastforeverzl@gmail.com","login":"lastforeverzl","count":9},{"name":"Darren Gu","email":"darrengyl@gmail.com","login":"darrengyl","count":7},{"name":"Matthew Xi","email":"matt@winterroot.net","login":null,"count":6},{"name":"Gaurav","email":"gauravjain.dtu@gmail.com","login":"gaurav133","count":6},{"name":"Hening Zheng","email":"heningzheng@henings-mbp.home","login":null,"count":5},{"name":"joshikapujari","email":"pjoshika811@gmail.com","login":"Joshika8055","count":4},{"name":"Habib Shakibanejad","email":"35790658+habbs19","login":"habbs19","count":4},{"name":"Siddharth sharma","email":"ethicalhacker365@gmail.com","login":"sidsharma2002","count":4},{"name":"Ezra Kanake","email":"10kanake@gmail.com","login":"kanake10","count":4},{"name":"EsraaAkram","email":"totalappsingplay@gmail.com","login":"EsraaAkram","count":4},{"name":"Anup0101","email":"anup.iyer.0101@gmail.com","login":null,"count":4},{"name":"Tarek-Bohdima","email":"tarek.buhdeima@gmail.com","login":"Tarek-Bohdima","count":4},{"name":"Azri","email":"muhammad.azri.f.s@gmail.com","login":"muhAzri","count":3},{"name":"Roger Hannagan","email":"roger.hannagan113@gmail.com","login":"thenotoriousrog","count":3},{"name":"beastlyCoder","email":"imaaronacs@gmail.com","login":"aaronallenCS","count":3},{"name":"mckornfield","email":"matthew.kornfield@appian.com","login":null,"count":3},{"name":"ArtemPolovin","email":"65748653+ArtemPolovin","login":"ArtemPolovin","count":2},{"name":"Rooter","email":"rooter@Rooters-MacBook-Pro-2.local","login":null,"count":2},{"name":"Brunda","email":"139839110+brundamarpadaga","login":"brundamarpadaga","count":2},{"name":"Evan Sarkar","email":"51132505+evanofficial","login":"evanofficial","count":2},{"name":"Kyle Zhu","email":"jiacongzhu66@gmail.com","login":"jiacongkylezhu","count":2},{"name":"Marcellino Chris O'Vara","email":"marcellinocovara@gmail.com","login":"MarcellinoCO","count":2},{"name":"Pradhyumna Reddy Madhulapally","email":"76251043+pradhyumna186","login":"pradhyumna186","count":2},{"name":"Ryan Beckett","email":"beckett.ryan@gmail.com","login":"ryan-beckett","count":2},{"name":"Zhixuan Li","email":"lizhixuan16@gmail.com","login":"EmmaLi1","count":2},{"name":"brntsw","email":"bruno.pardini6@gmail.com","login":"brntsw","count":2},{"name":"marsof02","email":"66377681+marsof02","login":"marsof02","count":1},{"name":"jaycenusa","email":"24529094+jaycenusa","login":"jaycenusa","count":1},{"name":"erinfolami","email":"50245033+erinfolami","login":"erinfolami","count":1},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":1},{"name":"Krešimir Pleše","email":"kresimir.plese@appscometrue.com","login":null,"count":1},{"name":"dalyai33","email":"dalyai@oregonstate.edu","login":"dalyai33","count":1},{"name":"armorbreak001","email":"contact@agentvote.cc","login":"armorbreak001","count":1},{"name":"Tristan Elliott","email":"47083513+thePlebDev","login":"thePlebDev","count":1},{"name":"Sara Gupta","email":"100728009+SaraGupt","login":"SaraGupt","count":1},{"name":"Sakya-Kanuparthy","email":"70663149+Sakya-Kanuparthy","login":"Sakya-Kanuparthy","count":1},{"name":"Renan Barros","email":"renanbarrosrbs@gmail.com","login":"renanrbs","count":1},{"name":"Rafael de Lima Silva","email":"rafael.lsdeveloper@gmail.com","login":"rafaellsdev","count":1},{"name":"PatchDynamics","email":"xone@fromthegut.org","login":"patchdynamics","count":1},{"name":"Aneesh","email":"56767677+aneepal55","login":"aneepal55","count":1},{"name":"Brandon Lin","email":"44827002+JellyRollJunior","login":"JellyRollJunior","count":1},{"name":"Cynthia","email":"162131856+cynthiabondi","login":"cynthiabondi","count":1},{"name":"GorlovDanila","email":"90065897+GorlovDanila","login":"GorlovDanila","count":1},{"name":"Jing Peng","email":"114365503+jingpeng7527","login":"jingpeng7527","count":1},{"name":"Kaiwen Zhu","email":"96089349+zzZkevinw","login":"zzZkevinw","count":1},{"name":"Kelvin Pere","email":"36895007+KelvnPere","login":"KelvnPere","count":1},{"name":"Luiz Carlos","email":"lc.estevao23@gmail.com","login":"LuizCarlos23","count":1},{"name":"MRI1822git","email":"mriganks@outlook.com","login":"MRI1822","count":1},{"name":"Melissa Linkert","email":"melissa.linkert@gmail.com","login":"melissalinkert","count":1},{"name":"Natalie Kim","email":"93747759+nationalkim","login":"nationalkim","count":1},{"name":"qorex","email":"vaqkat321@mail.ru","login":"qorexdev","count":1}],"past_year_committers":[{"name":"Jonathan Muller","email":"elforama@gmail.com","login":"Elforama","count":42},{"name":"Brunda","email":"139839110+brundamarpadaga","login":"brundamarpadaga","count":2},{"name":"Evan Sarkar","email":"51132505+evanofficial","login":"evanofficial","count":2},{"name":"Pradhyumna Reddy Madhulapally","email":"76251043+pradhyumna186","login":"pradhyumna186","count":2},{"name":"Zhixuan Li","email":"lizhixuan16@gmail.com","login":"EmmaLi1","count":2},{"name":"Aneesh","email":"56767677+aneepal55","login":"aneepal55","count":1},{"name":"Cynthia","email":"162131856+cynthiabondi","login":"cynthiabondi","count":1},{"name":"GorlovDanila","email":"90065897+GorlovDanila","login":"GorlovDanila","count":1},{"name":"Jing Peng","email":"114365503+jingpeng7527","login":"jingpeng7527","count":1},{"name":"Kaiwen Zhu","email":"96089349+zzZkevinw","login":"zzZkevinw","count":1},{"name":"Rafael de Lima Silva","email":"rafael.lsdeveloper@gmail.com","login":"rafaellsdev","count":1},{"name":"Sakya-Kanuparthy","email":"70663149+Sakya-Kanuparthy","login":"Sakya-Kanuparthy","count":1},{"name":"Tarek Bohdima","email":"tarek.buhdeima@gmail.com","login":"Tarek-Bohdima","count":1},{"name":"armorbreak001","email":"contact@agentvote.cc","login":"armorbreak001","count":1},{"name":"dalyai33","email":"dalyai@oregonstate.edu","login":"dalyai33","count":1},{"name":"jaycenusa","email":"24529094+jaycenusa","login":"jaycenusa","count":1},{"name":"marsof02","email":"66377681+marsof02","login":"marsof02","count":1},{"name":"qorex","email":"vaqkat321@mail.ru","login":"qorexdev","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greenstand%2Ftreetracker-android/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-23T00:00:10.068Z","repositories_count":6266451,"commits_count":874849586,"contributors_count":35098478,"owners_count":1170440,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"Greenstand/treetracker-android","html_url":"https://github.com/Greenstand/treetracker-android","last_synced_at":"2026-06-21T12:01:13.260Z","status":"active","issues_count":611,"pull_requests_count":621,"avg_time_to_close_issue":10232530.988571428,"avg_time_to_close_pull_request":1554880.9733333334,"issues_closed_count":525,"pull_requests_closed_count":600,"pull_request_authors_count":58,"issue_authors_count":44,"avg_comments_per_issue":1.9296235679214404,"avg_comments_per_pull_request":0.6586151368760065,"merged_pull_requests_count":512,"bot_issues_count":0,"bot_pull_requests_count":2,"past_year_issues_count":22,"past_year_pull_requests_count":38,"past_year_avg_time_to_close_issue":5762304.6,"past_year_avg_time_to_close_pull_request":342007.36,"past_year_issues_closed_count":5,"past_year_pull_requests_closed_count":25,"past_year_pull_request_authors_count":10,"past_year_issue_authors_count":9,"past_year_avg_comments_per_issue":4.0,"past_year_avg_comments_per_pull_request":0.3684210526315789,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":23,"created_at":"2023-05-09T10:36:40.539Z","updated_at":"2026-06-21T12:01:13.260Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greenstand%2Ftreetracker-android","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/Greenstand%2Ftreetracker-android/issues","issue_labels_count":{"android":102,"bug":91,"UX/UI":40,"enhancement":33,"good first issue":32,"help wanted":24,"p1":21,"Feature":21,"p2":17,"release 2.2":15,"Ice Box":15,"Design":14,"2.3":12,"question":10,"p0":8,"triage":7,"needs analysis":6,"2.2.1":6,"chore":5,"web/admin panel":5,"crash - analyzing":5,"Epic":3,"beta":3,"library update":3,"infra":2,"5 Token Reward":2,"in testing":2,"wontfix":1,"3 Token Reward":1,"Documentation":1,"refactor":1,"On hold":1,"backend":1,"work in progress":1,"dev-environment":1,"tech-debt":1,"payments":1,"release blocker":1},"pull_request_labels_count":{"bug":6,"crash":4,"2.2.1":4,"fix":4,"work in progress":3,"android":3,"needs analysis":2,"dependencies":2,"Feature":2,"needs design":1,"chore":1,"triage":1,"2.3":1},"issue_author_associations_count":{"CONTRIBUTOR":478,"COLLABORATOR":69,"NONE":61,"MEMBER":3},"pull_request_author_associations_count":{"CONTRIBUTOR":393,"COLLABORATOR":187,"NONE":30,"MEMBER":11},"issue_authors":{"ZavenArra":159,"Elforama":123,"Davidezrajay":119,"sebastiangaertner":55,"EngrTaofeek":41,"arunbakt":20,"Surbhi79":16,"nprude":10,"ghost":9,"LaviniaDragunoi":7,"camwebb":4,"dezidaisy":3,"shubhamk008":3,"imos64":3,"martinariasf":3,"minami-yu":2,"AndroidDev77":2,"saramuseo":2,"Tarek-Bohdima":2,"cynthiabondi":2,"valerie808":2,"Amritah9":2,"AndrewKerr47":1,"amit88265":1,"sametceylan":1,"tarun1506":1,"zularizal":1,"mozarty":1,"donenoyes":1,"jhoon":1,"debpedrano":1,"jbeguna04":1,"dadiorchen":1,"habbs19":1,"Kpoke":1,"JonTrimarco":1,"peacengn":1,"natalieschulz":1,"aaronallenCS":1,"chongthatbao":1,"peakvalleytech":1,"sidsharma2002":1,"nmcharlton":1,"ryan-beckett":1},"pull_request_authors":{"Elforama":208,"EngrTaofeek":123,"arunbakt":48,"ZavenArra":44,"Mzazi25":17,"LaviniaDragunoi":16,"sebastiangaertner":14,"Surbhi79":10,"lastforeverzl":9,"aaronallenCS":8,"Davidezrajay":8,"ghost":7,"gaurav133":7,"sidsharma2002":7,"Tarek-Bohdima":5,"kanake10":5,"mozarty":5,"thenotoriousrog":4,"jhoon":4,"EmmaLi1":4,"Sakya-Kanuparthy":4,"hz97":3,"brntsw":3,"habbs19":3,"DominionSoftware":3,"ArtemPolovin":3,"pradhyumna186":3,"mckornfield":3,"precious3173":2,"dependabot[bot]":2,"darrengyl":2,"S1210":2,"Joshika8055":2,"ryan-beckett":2,"SaraGupt":2,"muhAzri":2,"Naphtali-cpu":2,"marsof02":2,"EsraaAkram":2,"gravetriste":2,"MarcellinoCO":2,"thetwai-dev":1,"mzl2233":1,"dezidaisy":1,"peacengn":1,"renanrbs":1,"MRI1822":1,"melissalinkert":1,"LuizCarlos23":1,"jiacongkylezhu":1,"JellyRollJunior":1,"rafaellsdev":1,"abdullah-maher-abbod":1,"erinfolami":1,"GorlovDanila":1,"zzZkevinw":1,"KelvnPere":1,"thePlebDev":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-23T00:00:11.877Z","repositories_count":14831189,"issues_count":33022222,"pull_requests_count":108947680,"authors_count":11315501,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"2.3":9,"bug":8,"triage":7,"chore":5,"help wanted":4,"2.2.1":3,"beta":3,"good first issue":3,"Design":2,"enhancement":2,"UX/UI":2,"library update":2,"needs analysis":2,"infra":1,"5 Token Reward":1,"backend":1,"On hold":1,"p2":1,"refactor":1,"dev-environment":1,"release blocker":1,"tech-debt":1,"android":1},"past_year_pull_request_labels_count":{"bug":5,"2.2.1":4,"crash":4,"fix":4,"needs design":1,"triage":1,"2.3":1,"chore":1},"past_year_issue_author_associations_count":{"CONTRIBUTOR":10,"NONE":8,"COLLABORATOR":4},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":32,"NONE":6},"past_year_issue_authors":{"Elforama":6,"Davidezrajay":4,"EngrTaofeek":3,"cynthiabondi":2,"minami-yu":2,"valerie808":2,"chongthatbao":1,"dadiorchen":1,"tarun1506":1},"past_year_pull_request_authors":{"Elforama":20,"EmmaLi1":4,"Sakya-Kanuparthy":4,"pradhyumna186":3,"marsof02":2,"GorlovDanila":1,"mzl2233":1,"rafaellsdev":1,"thetwai-dev":1,"zzZkevinw":1},"maintainers":[{"login":"EngrTaofeek","count":164,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/EngrTaofeek"},{"login":"arunbakt","count":68,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/arunbakt"},{"login":"LaviniaDragunoi","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/LaviniaDragunoi"},{"login":"Tarek-Bohdima","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Tarek-Bohdima"},{"login":"jhoon","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jhoon"},{"login":"MarcellinoCO","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MarcellinoCO"},{"login":"minami-yu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/minami-yu"}],"active_maintainers":[{"login":"EngrTaofeek","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/EngrTaofeek"},{"login":"minami-yu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/minami-yu"}]},"events":{"total":{"PullRequestEvent":65,"ForkEvent":8,"IssuesEvent":120,"WatchEvent":4,"IssueCommentEvent":57,"PushEvent":89,"PullRequestReviewEvent":1,"GollumEvent":2,"CreateEvent":32},"last_year":{"PullRequestEvent":27,"ForkEvent":4,"IssuesEvent":78,"IssueCommentEvent":38,"PushEvent":64,"PullRequestReviewEvent":1,"GollumEvent":2,"CreateEvent":20}},"keywords":["android"],"dependencies":[{"ecosystem":"maven","filepath":"app/build.gradle","sha":null,"kind":"manifest","created_at":"2022-07-12T04:31:24.783Z","updated_at":"2022-07-12T04:31:24.783Z","repository_link":"https://github.com/Greenstand/treetracker-android/blob/master/app/build.gradle","dependencies":[{"id":151882500,"package_name":"com.amazonaws:aws-android-sdk-core","ecosystem":"maven","requirements":"2.16.8","direct":true,"kind":"implementation","optional":false},{"id":151882501,"package_name":"com.amazonaws:aws-android-sdk-s3","ecosystem":"maven","requirements":"2.16.8","direct":true,"kind":"implementation","optional":false},{"id":151882502,"package_name":"io.insert-koin:koin-android","ecosystem":"maven","requirements":"$koin_version","direct":true,"kind":"implementation","optional":false},{"id":151882503,"package_name":"io.insert-koin:koin-androidx-compose","ecosystem":"maven","requirements":"$koin_version","direct":true,"kind":"implementation","optional":false},{"id":151882504,"package_name":"io.insert-koin:koin-test","ecosystem":"maven","requirements":"$koin_version","direct":true,"kind":"testImplementation","optional":false},{"id":151882505,"package_name":"androidx.appcompat:appcompat","ecosystem":"maven","requirements":"1.3.1","direct":true,"kind":"implementation","optional":false},{"id":151882506,"package_name":"androidx.multidex:multidex","ecosystem":"maven","requirements":"2.0.1","direct":true,"kind":"implementation","optional":false},{"id":151882507,"package_name":"androidx.exifinterface:exifinterface","ecosystem":"maven","requirements":"1.3.2","direct":true,"kind":"implementation","optional":false},{"id":151882508,"package_name":"androidx.lifecycle:lifecycle-viewmodel-ktx","ecosystem":"maven","requirements":"2.3.1","direct":true,"kind":"implementation","optional":false},{"id":151882509,"package_name":"androidx.lifecycle:lifecycle-runtime-ktx","ecosystem":"maven","requirements":"2.3.1","direct":true,"kind":"implementation","optional":false},{"id":151882510,"package_name":"androidx.work:work-runtime-ktx","ecosystem":"maven","requirements":"2.7.1","direct":true,"kind":"implementation","optional":false},{"id":151882511,"package_name":"androidx.compose.runtime:runtime","ecosystem":"maven","requirements":"$compose_version","direct":true,"kind":"implementation","optional":false},{"id":151882512,"package_name":"androidx.compose.runtime:runtime-livedata","ecosystem":"maven","requirements":"$compose_version","direct":true,"kind":"implementation","optional":false},{"id":151882513,"package_name":"androidx.compose.foundation:foundation","ecosystem":"maven","requirements":"$compose_version","direct":true,"kind":"implementation","optional":false},{"id":151882514,"package_name":"androidx.compose.foundation:foundation-layout","ecosystem":"maven","requirements":"$compose_version","direct":true,"kind":"implementation","optional":false},{"id":151882515,"package_name":"androidx.compose.ui:ui","ecosystem":"maven","requirements":"$compose_version","direct":true,"kind":"implementation","optional":false},{"id":151882516,"package_name":"androidx.compose.ui:ui-tooling","ecosystem":"maven","requirements":"$compose_version","direct":true,"kind":"implementation","optional":false},{"id":151882517,"package_name":"androidx.compose.material:material","ecosystem":"maven","requirements":"$compose_version","direct":true,"kind":"implementation","optional":false},{"id":151882518,"package_name":"androidx.compose.animation:animation","ecosystem":"maven","requirements":"$compose_version","direct":true,"kind":"implementation","optional":false},{"id":151882519,"package_name":"androidx.activity:activity-compose","ecosystem":"maven","requirements":"1.3.0","direct":true,"kind":"implementation","optional":false},{"id":151882520,"package_name":"androidx.navigation:navigation-compose","ecosystem":"maven","requirements":"2.4.1","direct":true,"kind":"implementation","optional":false},{"id":151882521,"package_name":"com.google.accompanist:accompanist-permissions","ecosystem":"maven","requirements":"0.21.1-beta","direct":true,"kind":"implementation","optional":false},{"id":151882522,"package_name":"org.jetbrains.kotlin:kotlin-stdlib-jdk7","ecosystem":"maven","requirements":"$kotlin_version","direct":true,"kind":"implementation","optional":false},{"id":151882523,"package_name":"org.jetbrains.kotlinx:kotlinx-coroutines-core","ecosystem":"maven","requirements":"1.5.0","direct":true,"kind":"implementation","optional":false},{"id":151882524,"package_name":"org.jetbrains.kotlinx:kotlinx-coroutines-android","ecosystem":"maven","requirements":"1.5.0","direct":true,"kind":"implementation","optional":false},{"id":151882525,"package_name":"org.jetbrains.kotlinx:kotlinx-datetime","ecosystem":"maven","requirements":"0.3.2","direct":true,"kind":"implementation","optional":false},{"id":151882526,"package_name":"androidx.room:room-runtime","ecosystem":"maven","requirements":"2.4.0-beta01","direct":true,"kind":"implementation","optional":false},{"id":151882527,"package_name":"androidx.room:room-ktx","ecosystem":"maven","requirements":"2.4.0-beta01","direct":true,"kind":"implementation","optional":false},{"id":151882528,"package_name":"com.squareup.retrofit2:converter-gson","ecosystem":"maven","requirements":"${retrofit2Version}","direct":true,"kind":"api","optional":false},{"id":151882529,"package_name":"com.squareup.retrofit2:retrofit","ecosystem":"maven","requirements":"${retrofit2Version}","direct":true,"kind":"implementation","optional":false},{"id":151882530,"package_name":"com.squareup.okhttp3:logging-interceptor","ecosystem":"maven","requirements":"4.9.3","direct":true,"kind":"implementation","optional":false},{"id":151882531,"package_name":"androidx.camera:camera-core","ecosystem":"maven","requirements":"$camerax_version","direct":true,"kind":"implementation","optional":false},{"id":151882532,"package_name":"androidx.camera:camera-camera2","ecosystem":"maven","requirements":"$camerax_version","direct":true,"kind":"implementation","optional":false},{"id":151882533,"package_name":"androidx.camera:camera-lifecycle","ecosystem":"maven","requirements":"$camerax_version","direct":true,"kind":"implementation","optional":false},{"id":151882534,"package_name":"androidx.camera:camera-view","ecosystem":"maven","requirements":"$camerax_view_version","direct":true,"kind":"implementation","optional":false},{"id":151882535,"package_name":"androidx.camera:camera-extensions","ecosystem":"maven","requirements":"$camerax_ext_version","direct":true,"kind":"implementation","optional":false},{"id":151882536,"package_name":"com.jakewharton.timber:timber","ecosystem":"maven","requirements":"4.7.1","direct":true,"kind":"api","optional":false},{"id":151882537,"package_name":"androidx.legacy:legacy-support-v4","ecosystem":"maven","requirements":"${androidSupportVersion}","direct":true,"kind":"implementation","optional":false},{"id":151882538,"package_name":"com.google.firebase:firebase-analytics","ecosystem":"maven","requirements":"18.0.2","direct":true,"kind":"implementation","optional":false},{"id":151882539,"package_name":"com.google.firebase:firebase-crashlytics-ktx","ecosystem":"maven","requirements":"17.3.1","direct":true,"kind":"implementation","optional":false},{"id":151882540,"package_name":"com.google.firebase:firebase-auth-ktx","ecosystem":"maven","requirements":"20.0.2","direct":true,"kind":"implementation","optional":false},{"id":151882541,"package_name":"com.google.firebase:firebase-iid","ecosystem":"maven","requirements":"21.0.1","direct":true,"kind":"implementation","optional":false},{"id":151882542,"package_name":"io.mockk:mockk","ecosystem":"maven","requirements":"1.10.0","direct":true,"kind":"testImplementation","optional":false},{"id":151882543,"package_name":"junit:junit","ecosystem":"maven","requirements":"4.13.1","direct":true,"kind":"testImplementation","optional":false},{"id":151882544,"package_name":"androidx.room:room-testing","ecosystem":"maven","requirements":"2.2.6","direct":true,"kind":"testImplementation","optional":false},{"id":151882545,"package_name":"org.jetbrains.kotlinx:kotlinx-coroutines-test","ecosystem":"maven","requirements":"1.3.9","direct":true,"kind":"testImplementation","optional":false},{"id":151882546,"package_name":"androidx.arch.core:core-testing","ecosystem":"maven","requirements":"2.1.0","direct":true,"kind":"testImplementation","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2022-07-12T04:31:25.480Z","updated_at":"2022-07-12T04:31:25.480Z","repository_link":"https://github.com/Greenstand/treetracker-android/blob/master/Gemfile","dependencies":[{"id":151890042,"package_name":"fastlane","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile.lock","sha":null,"kind":"lockfile","created_at":"2022-07-12T04:31:25.914Z","updated_at":"2022-07-12T04:31:25.914Z","repository_link":"https://github.com/Greenstand/treetracker-android/blob/master/Gemfile.lock","dependencies":[{"id":151891341,"package_name":"CFPropertyList","ecosystem":"rubygems","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":151891342,"package_name":"addressable","ecosystem":"rubygems","requirements":"2.8.0","direct":false,"kind":"runtime","optional":false},{"id":151891343,"package_name":"atomos","ecosystem":"rubygems","requirements":"0.1.3","direct":false,"kind":"runtime","optional":false},{"id":151891344,"package_name":"aws-eventstream","ecosystem":"rubygems","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":151891345,"package_name":"aws-partitions","ecosystem":"rubygems","requirements":"1.374.0","direct":false,"kind":"runtime","optional":false},{"id":151891346,"package_name":"aws-sdk-core","ecosystem":"rubygems","requirements":"3.107.0","direct":false,"kind":"runtime","optional":false},{"id":151891347,"package_name":"aws-sdk-kms","ecosystem":"rubygems","requirements":"1.38.0","direct":false,"kind":"runtime","optional":false},{"id":151891348,"package_name":"aws-sdk-s3","ecosystem":"rubygems","requirements":"1.81.0","direct":false,"kind":"runtime","optional":false},{"id":151891349,"package_name":"aws-sigv4","ecosystem":"rubygems","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":151891350,"package_name":"babosa","ecosystem":"rubygems","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":151891351,"package_name":"claide","ecosystem":"rubygems","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":151891352,"package_name":"colored","ecosystem":"rubygems","requirements":"1.2","direct":false,"kind":"runtime","optional":false},{"id":151891353,"package_name":"colored2","ecosystem":"rubygems","requirements":"3.1.2","direct":false,"kind":"runtime","optional":false},{"id":151891354,"package_name":"commander-fastlane","ecosystem":"rubygems","requirements":"4.4.6","direct":false,"kind":"runtime","optional":false},{"id":151891355,"package_name":"declarative","ecosystem":"rubygems","requirements":"0.0.20","direct":false,"kind":"runtime","optional":false},{"id":151891356,"package_name":"declarative-option","ecosystem":"rubygems","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":151891357,"package_name":"digest-crc","ecosystem":"rubygems","requirements":"0.6.1","direct":false,"kind":"runtime","optional":false},{"id":151891358,"package_name":"domain_name","ecosystem":"rubygems","requirements":"0.5.20190701","direct":false,"kind":"runtime","optional":false},{"id":151891359,"package_name":"dotenv","ecosystem":"rubygems","requirements":"2.7.6","direct":false,"kind":"runtime","optional":false},{"id":151891360,"package_name":"emoji_regex","ecosystem":"rubygems","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":151891361,"package_name":"excon","ecosystem":"rubygems","requirements":"0.76.0","direct":false,"kind":"runtime","optional":false},{"id":151891362,"package_name":"faraday","ecosystem":"rubygems","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":151891363,"package_name":"faraday-cookie_jar","ecosystem":"rubygems","requirements":"0.0.7","direct":false,"kind":"runtime","optional":false},{"id":151891364,"package_name":"faraday_middleware","ecosystem":"rubygems","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":151891365,"package_name":"fastimage","ecosystem":"rubygems","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":151891366,"package_name":"fastlane","ecosystem":"rubygems","requirements":"2.160.0","direct":false,"kind":"runtime","optional":false},{"id":151891367,"package_name":"fastlane-plugin-firebase_app_distribution","ecosystem":"rubygems","requirements":"0.3.4","direct":false,"kind":"runtime","optional":false},{"id":151891368,"package_name":"gh_inspector","ecosystem":"rubygems","requirements":"1.1.3","direct":false,"kind":"runtime","optional":false},{"id":151891369,"package_name":"google-api-client","ecosystem":"rubygems","requirements":"0.38.0","direct":false,"kind":"runtime","optional":false},{"id":151891370,"package_name":"google-cloud-core","ecosystem":"rubygems","requirements":"1.5.0","direct":false,"kind":"runtime","optional":false},{"id":151891371,"package_name":"google-cloud-env","ecosystem":"rubygems","requirements":"1.3.3","direct":false,"kind":"runtime","optional":false},{"id":151891372,"package_name":"google-cloud-errors","ecosystem":"rubygems","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":151891373,"package_name":"google-cloud-storage","ecosystem":"rubygems","requirements":"1.29.0","direct":false,"kind":"runtime","optional":false},{"id":151891374,"package_name":"googleauth","ecosystem":"rubygems","requirements":"0.13.1","direct":false,"kind":"runtime","optional":false},{"id":151891375,"package_name":"highline","ecosystem":"rubygems","requirements":"1.7.10","direct":false,"kind":"runtime","optional":false},{"id":151891376,"package_name":"http-cookie","ecosystem":"rubygems","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":151891377,"package_name":"httpclient","ecosystem":"rubygems","requirements":"2.8.3","direct":false,"kind":"runtime","optional":false},{"id":151891378,"package_name":"jmespath","ecosystem":"rubygems","requirements":"1.6.1","direct":false,"kind":"runtime","optional":false},{"id":151891379,"package_name":"json","ecosystem":"rubygems","requirements":"2.3.1","direct":false,"kind":"runtime","optional":false},{"id":151891380,"package_name":"jwt","ecosystem":"rubygems","requirements":"2.2.2","direct":false,"kind":"runtime","optional":false},{"id":151891381,"package_name":"memoist","ecosystem":"rubygems","requirements":"0.16.2","direct":false,"kind":"runtime","optional":false},{"id":151891382,"package_name":"mini_magick","ecosystem":"rubygems","requirements":"4.10.1","direct":false,"kind":"runtime","optional":false},{"id":151891383,"package_name":"mini_mime","ecosystem":"rubygems","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":151891384,"package_name":"multi_json","ecosystem":"rubygems","requirements":"1.15.0","direct":false,"kind":"runtime","optional":false},{"id":151891385,"package_name":"multipart-post","ecosystem":"rubygems","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":151891386,"package_name":"nanaimo","ecosystem":"rubygems","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":151891387,"package_name":"naturally","ecosystem":"rubygems","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":151891388,"package_name":"os","ecosystem":"rubygems","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":151891389,"package_name":"plist","ecosystem":"rubygems","requirements":"3.5.0","direct":false,"kind":"runtime","optional":false},{"id":151891390,"package_name":"public_suffix","ecosystem":"rubygems","requirements":"4.0.6","direct":false,"kind":"runtime","optional":false},{"id":151891391,"package_name":"rake","ecosystem":"rubygems","requirements":"13.0.1","direct":false,"kind":"runtime","optional":false},{"id":151891392,"package_name":"representable","ecosystem":"rubygems","requirements":"3.0.4","direct":false,"kind":"runtime","optional":false},{"id":151891393,"package_name":"retriable","ecosystem":"rubygems","requirements":"3.1.2","direct":false,"kind":"runtime","optional":false},{"id":151891394,"package_name":"rouge","ecosystem":"rubygems","requirements":"2.0.7","direct":false,"kind":"runtime","optional":false},{"id":151891395,"package_name":"rubyzip","ecosystem":"rubygems","requirements":"2.3.2","direct":false,"kind":"runtime","optional":false},{"id":151891396,"package_name":"security","ecosystem":"rubygems","requirements":"0.1.3","direct":false,"kind":"runtime","optional":false},{"id":151891397,"package_name":"signet","ecosystem":"rubygems","requirements":"0.14.0","direct":false,"kind":"runtime","optional":false},{"id":151891398,"package_name":"simctl","ecosystem":"rubygems","requirements":"1.6.8","direct":false,"kind":"runtime","optional":false},{"id":151891399,"package_name":"slack-notifier","ecosystem":"rubygems","requirements":"2.3.2","direct":false,"kind":"runtime","optional":false},{"id":151891400,"package_name":"terminal-notifier","ecosystem":"rubygems","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":151891401,"package_name":"terminal-table","ecosystem":"rubygems","requirements":"1.8.0","direct":false,"kind":"runtime","optional":false},{"id":151891402,"package_name":"tty-cursor","ecosystem":"rubygems","requirements":"0.7.1","direct":false,"kind":"runtime","optional":false},{"id":151891403,"package_name":"tty-screen","ecosystem":"rubygems","requirements":"0.8.1","direct":false,"kind":"runtime","optional":false},{"id":151891404,"package_name":"tty-spinner","ecosystem":"rubygems","requirements":"0.9.3","direct":false,"kind":"runtime","optional":false},{"id":151891405,"package_name":"uber","ecosystem":"rubygems","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":151891406,"package_name":"unf","ecosystem":"rubygems","requirements":"0.1.4","direct":false,"kind":"runtime","optional":false},{"id":151891407,"package_name":"unf_ext","ecosystem":"rubygems","requirements":"0.0.7.7","direct":false,"kind":"runtime","optional":false},{"id":151891408,"package_name":"unicode-display_width","ecosystem":"rubygems","requirements":"1.7.0","direct":false,"kind":"runtime","optional":false},{"id":151891409,"package_name":"word_wrap","ecosystem":"rubygems","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":151891410,"package_name":"xcodeproj","ecosystem":"rubygems","requirements":"1.18.0","direct":false,"kind":"runtime","optional":false},{"id":151891411,"package_name":"xcpretty","ecosystem":"rubygems","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":151891412,"package_name":"xcpretty-travis-formatter","ecosystem":"rubygems","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pull_request.yml","sha":null,"kind":"manifest","created_at":"2023-02-16T07:15:22.139Z","updated_at":"2023-02-16T07:15:22.139Z","repository_link":"https://github.com/Greenstand/treetracker-android/blob/master/.github/workflows/pull_request.yml","dependencies":[{"id":7706108231,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7706108232,"package_name":"actions/setup-java","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release-beta.yaml","sha":null,"kind":"manifest","created_at":"2023-02-16T07:15:22.453Z","updated_at":"2023-02-16T07:15:22.453Z","repository_link":"https://github.com/Greenstand/treetracker-android/blob/master/.github/workflows/release-beta.yaml","dependencies":[{"id":7706109044,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7706109045,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"maven","filepath":"build.gradle","sha":null,"kind":"manifest","created_at":"2023-09-21T19:09:18.336Z","updated_at":"2023-09-21T19:09:18.336Z","repository_link":"https://github.com/Greenstand/treetracker-android/blob/master/build.gradle","dependencies":[]}],"score":9.660013734748667,"created_at":"2023-09-11T11:54:35.461Z","updated_at":"2026-06-24T13:30:28.546Z","avatar_url":"https://github.com/Greenstand.png","language":"Kotlin","category":"Biosphere","sub_category":"Deforestation and Reforestation","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"![Build Status](https://github.com/Greenstand/treetracker-android/workflows/Treetracker%20Android%20App%20CI/badge.svg?branch=master)\n\n# Treetracker Android\n\n## Current Milestones and Issue Topics\n\n### Next feature release\n\nFeature we are currently prioritizing\nhttps://github.com/orgs/Greenstand/projects/109/views/2\n\n\u0026nbsp;\n\u0026nbsp;\n\n## Project Details\n\nThis is the Android app for Greenstands Treetracker open source project (www.treetracker.org). \nThis project coordinates the digital capture of tree growth data in the field, allowing to establish employment for people living in extreme poverty based on tree planting.\nThe Android segment is the data collection tool that transports the information into the next service through a data pipeline towards the veryification service.\n\nFor more on design intent and the app's user story see the [wiki in this repository](https://github.com/Greenstand/treetracker-android/wiki/User-Story)\n\n\u0026nbsp;\n\u0026nbsp;\n\n## Project Setup\nDevelopers will need to ask the #android_chat channel in Slack for the treetracker.keys.properties file to build gradle for the application.\n\nFor development, select the build variant _dev_. This build variant is configured to allow trees to be added without a specific accuracy.  \n\n\u0026nbsp;\n\n## QC Deployment\n\nTo join the Greenstand Testers for this app follow this [testing invite link](https://appdistribution.firebase.dev/i/f98b34cc1ff2c0b7) and add your mail used on your android device\nNote: QC deployment pipeline are on Github Actions.\n\n### CREATING INTERNAL RELEASES MANUALLY\nTo create an internal release manually on firebase, \nIncrease the version code by 1(Optionally you can change the version name if it's a major release)\nChange the build variant to 'beta'  \nGenerate an unsigned apk or aab in the above variant,\nOn firebase console, go to firebase distribution, switch the app to 'Treetracker Test' \nUpload the apk or aab generated above, Select Greenstand Testers and complete it.\n\n### AUTOMATED INTERNAL RELEASES WITH GITHUB ACTIONS(CURRENTLY NOT AVAILABLE)\nClick on Actions in this [repo](https://github.com/Greenstand/treetracker-android.git)  \nSelect Release Beta and run workflow\nSelect Branch you want to create release for and run. This would create a new release on Firebase and also send messages on slack to members that a new release has been created.\n\n\n\n\n\n\n\n\n\n\n\n\n\n### Fastlane\n\nFastlane must be installed using\nbundle install --path vendor/bundle\nfastlane install_plugins\nfirebase login\n\notherwise the firebase plugin will not work\n\n\n\n\u0026nbsp;\n\u0026nbsp;\n\n## Deployment\n\nThere is one prerequisite to using the appropriate gradle tasks:\n\n1) Placing the relevant keys.json from the PlayStore in the ./app folder [example here](https://docs.fastlane.tools/getting-started/android/setup/#collect-your-google-credentials)\n\nOnce this is done, you can proceed by running one of the following tasks to run the release:\n\n* `bootstrapReleasePlayResources` | Downloads the play store listing for the Release build. No download of image resources. See #18.\n* `generateReleasePlayResources`  | Collects play store resources for the Release build\n* `publishListingRelease`         | Updates the play store listing for the Release build\n\n\u0026nbsp;\n\u0026nbsp;\n\n## Contributing\n\n See [Contributing in the Development-Overview README](https://github.com/Greenstand/Development-Overview/blob/master/README.md)\n\nReview the project board for current priorities [Android Project](https://github.com/orgs/Greenstand/projects/109)\n\nPlease review the [issue tracker](https://github.com/Greenstand/treetracker-android/issues) here on this github repository \n\nCheck out the cool [roadmap](https://github.com/Greenstand/Development-Overview/blob/master/Roadmap.md)\n\nAll contributions should be submitted as pull requests against the master branch in this github repository. https://github.com/Greenstand/treetracker-android/\n","funding_links":["https://www.paypal.com/donate/?hosted_button_id=3YGXULRCRZZEQ"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["climate-change","non-profit","reforestation"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/637","html_url":"https://ost.ecosyste.ms/projects/637"}