TrashMob

A website dedicated to organizing groups of people to clean up the world we live in. Users create cleanup events, publicize them, and recruit people to join up, as well as ask for assistance from communities and partners.
https://github.com/TrashMob-eco/TrashMob

Category: Industrial Ecology
Sub Category: Circular Economy and Waste

Keywords

environment litter pollution sustainability trash

Keywords from Contributors

profile energy-system index power feature-toggle contributing domain-modeling geocoder atoms stress-test

Last synced: about 15 hours ago
JSON representation

Repository metadata

Source Code for TrashMob.eco

README.md

TrashMob.eco

Meet up. Clean up. Feel good.

Build Status

What is TrashMob?

TrashMob.eco is a platform dedicated to organizing groups of people to clean up the world we live in. Users create cleanup events, publicize them, and recruit people to join up, as well as ask for assistance from communities and partners to help haul away the garbage once it is gathered.

The idea is to turn what can be an intimidating process for event organizers into a few clicks and simple forms. And once the process is simple, events will spring up all over the world, and the cleanup of the world can begin.

Live Sites

Environment URL
Production www.trashmob.eco
Development dev.trashmob.eco
Dev Swagger dev.trashmob.eco/swagger

Mobile Apps

Platform Link
Android Google Play Store
iOS Apple App Store

Quick Start

For detailed development setup instructions, see CLAUDE.md.

Prerequisites

Build & Run

See CLAUDE.md for full build commands, local URLs, and development setup.


Documentation

For Developers

Document Description
CLAUDE.md Development guide, architecture, coding standards
CONTRIBUTING.md How to contribute
CODE_OF_CONDUCT.md Community guidelines

Product & Planning

Document Description
2026 Planning Hub Roadmap, projects, and milestones
TrashMob.prd Web API product requirements
TrashMobMobile.prd Mobile app product requirements

Technical Reference

Document Description
Domain Model Core data concepts, business rules, entity relationships
Test Scenarios Manual testing checklist
Deploy Guide Infrastructure deployment
Container Deployment Docker/ACA deployment

Project-Specific

Project README
TrashMob (Web API) TrashMob/README.md
TrashMob.Shared TrashMob.Shared/README.md
TrashMob.Models TrashMob.Models/README.md
TrashMobMobile TrashMobMobile/readme.md
Mobile Analysis TrashMobMobile/docs/PROJECT_ANALYSIS.md

Project Structure

TrashMob/
├── TrashMob/              # ASP.NET Core Web API + React SPA
│   └── client-app/        # React frontend (Vite + TypeScript)
├── TrashMob.Shared/       # Business logic, managers, EF Core
├── TrashMob.Models/       # Domain entities
├── TrashMob.Shared.Tests/ # Unit tests
├── TrashMobMobile/        # .NET MAUI mobile app
├── TrashMobDailyJobs/     # Background jobs (daily)
├── TrashMobHourlyJobs/    # Background jobs (hourly)
└── Deploy/                # Bicep templates, deployment scripts

Contributing

We're actively looking for contributors! All skill levels welcome:

  • Frontend: React, TypeScript, Tailwind CSS
  • Backend: ASP.NET Core, Entity Framework Core
  • Mobile: .NET MAUI
  • DevOps: GitHub Actions, Azure, Bicep

Getting Started

  1. Check Good First Issues
  2. Read CONTRIBUTING.md
  3. Set up your dev environment using CLAUDE.md
  4. Contact info@trashmob.eco to be added as a contributor

Feature Ideas

Before starting work on a new feature, please check:


Development Environment Setup

See CLAUDE.md for full development setup, troubleshooting, and local URLs.

Quick start: Email info@trashmob.eco to request contributor access, then:

az login
.\setupdev.ps1 -environment dev -region westus2 -subscription <guid>

Mobile App Development

See TrashMobMobile/readme.md for mobile setup, test builds, and store links.


Deployment

Automatic Deployments

Branch Environment Trigger
main Development Push
release Production Manual workflow

Manual Deployment

See Deploy/CONTAINER_DEPLOYMENT_GUIDE.md for container deployment instructions.


Background & History

Years ago, Scott Hanselman (and others at Microsoft) built NerdDinner.com as a demo of ASP.NET MVC. Those nerd dinners were fantastic and had a huge role in many careers, including leading the founder to join Microsoft.

This site is based on both that code and the idea that getting people together to do small good things results in larger good things in the long term.

The inspiration came from Edgar McGregor, who spent over 1100 days cleaning up a park in his community, two pails of litter at a time. His actions inspired others to do the same, and TrashMob.eco was born—a platform to help people organize "mobs" to tackle cleanup together.


Status

TrashMob.eco is a 501(c)(3) non-profit in the United States, launched in production on May 15, 2022. We're actively developing new features to help communities clean up the world!


Contact


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 14 days ago

Total Commits: 3,414
Total Committers: 36
Avg Commits per committer: 94.833
Development Distribution Score (DDS): 0.634

Commits in past year: 989
Committers in past year: 10
Avg Commits per committer in past year: 98.9
Development Distribution Score (DDS) in past year: 0.604

Name Email Commits
Joe Beernink j****e@m****m 1250
Joe Beernink 3****k 1237
renovate[bot] 2****] 232
Dopp d****p@d****m 110
Ming Ho 2****g 77
Matt Goldman m****n@o****m 76
Pitipat Srichairat p****p@g****m 74
Liana Marulanda l****a@m****m 60
Sandra Mau s****u@t****o 60
vtserej v****j@g****m 36
kiran k****7@g****m 30
MariusR m****n@m****m 24
chunlishao c****5@g****m 23
Phil Cherner p****e@m****m 18
Dhwanil Chokshi d****i@m****m 15
Hsing Tang h****g@m****m 10
Dany Pellerin p****y@g****m 10
Ben Buttigieg b****g@g****m 9
William Voss w****s@h****m 9
Markus Luszczymak m****n@l****e 8
DESKTOP-6M2DRN8\dhwan d****9@g****m 7
omahs 7****s 6
codeHysteria28 g****7@g****m 5
arijit a****l@l****m 4
ssagheer538 a****4@g****m 4
Dishan Fernando d****1@g****m 4
Hugo Palomares h****s@h****n 4
Joe Beernink j****k@W****l 2
franciscomoloureiro f****o@g****m 2
Copilot 1****t 2
and 6 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 16 days ago

Total issues: 205
Total pull requests: 1,552
Average time to close issues: 7 months
Average time to close pull requests: 4 days
Total issue authors: 11
Total pull request authors: 15
Average comments per issue: 0.22
Average comments per pull request: 0.03
Merged pull request: 1,317
Bot issues: 2
Bot pull requests: 394

Past year issues: 32
Past year pull requests: 430
Past year average time to close issues: 21 days
Past year average time to close pull requests: 1 day
Past year issue authors: 1
Past year pull request authors: 4
Past year average comments per issue: 0.0
Past year average comments per pull request: 0.02
Past year merged pull request: 342
Past year bot issues: 0
Past year bot pull requests: 170

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/TrashMob-eco/TrashMob

Top Issue Authors

  • joebeernink (145)
  • pitipatdop (35)
  • chunlishao (6)
  • xthepoet (4)
  • Limarulanda (4)
  • XiaoStevens (3)
  • danypellerin (2)
  • vtserej (2)
  • renovate[bot] (2)
  • goodgeyes (1)
  • matt-goldman (1)

Top Pull Request Authors

  • joebeernink (737)
  • renovate[bot] (394)
  • pitipatdop (290)
  • vtserej (47)
  • chunlishao (22)
  • matt-goldman (20)
  • danypellerin (17)
  • luszczymak-markus (10)
  • Cililocwee (4)
  • super-ming (3)
  • dishanfernando91 (3)
  • Limarulanda (2)
  • xthepoet (1)
  • omahs (1)
  • papicella (1)

Top Issue Labels

  • Website (68)
  • Mobile App (66)
  • Feature (18)
  • Design (18)
  • bug (14)
  • Infrastructure (12)
  • good first issue (3)
  • blocked (1)
  • enhancement (1)
  • tech debt (1)
  • dependencies (1)

Top Pull Request Labels

  • dependencies (392)

Dependencies

TrashMob/client-app/package-lock.json npm
  • 1716 dependencies
TrashMob/client-app/package.json npm
  • @azure/msal-browser ^2.23.0
  • @azure/msal-react ^1.3.2
  • @culturehq/add-to-calendar ^1.1.2
  • @fluentui/react ^8.14.13
  • @material-ui/core ^4.11.4
  • @testing-library/jest-dom ^5.12.0
  • @testing-library/react ^11.2.7
  • @testing-library/user-event ^12.8.3
  • @types/jest ^26.0.23
  • @types/node ^12.20.13
  • @types/react ^17.0.6
  • @types/react-dom ^17.0.5
  • @types/react-router-dom ^5.1.7
  • @uifabric/icons ^7.5.23
  • azure-maps-control ^2.0.32
  • bootstrap ^4.6.0
  • classnames ^2.3.1
  • create-react-class ^15.7.0
  • guid-typescript ^1.0.9
  • jquery ^3.6.0
  • json.date-extensions ^1.2.2
  • merge ^2.1.1
  • moment ^2.29.1
  • node-sass ^6.0.0
  • oidc-client ^1.11.5
  • react ^17.0.2
  • react-azure-maps ^0.4.2
  • react-bootstrap ^1.6.0
  • react-bootstrap-icons ^1.7.2
  • react-bootstrap-typeahead ^6.0.0-alpha.9
  • react-country-region-selector ^3.1.0
  • react-datepicker ^3.8.0
  • react-datetime-picker ^3.2.1
  • react-dom ^17.0.2
  • react-moment ^1.1.1
  • react-responsive-carousel ^3.2.18
  • react-router-bootstrap ^0.25.0
  • react-router-dom ^5.2.0
  • react-scripts ^4.0.3
  • react-simple-captcha ^6.1.6
  • reactstrap ^8.9.0
  • rimraf ^3.0.2
  • typescript ^4.2.4
  • web-vitals ^1.1.2
TrashMob/TrashMob.csproj nuget
  • Azure.Extensions.AspNetCore.Configuration.Secrets 1.2.2
  • Azure.Identity 1.6.0
  • Azure.Security.KeyVault.Secrets 4.3.0
  • DocuSign.eSign.dll 5.11.0
  • EntityFramework 6.4.4
  • Microsoft.ApplicationInsights.AspNetCore 2.20.0
  • Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore 6.0.4
  • Microsoft.AspNetCore.Http.Abstractions 2.2.0
  • Microsoft.AspNetCore.Identity.EntityFrameworkCore 6.0.4
  • Microsoft.AspNetCore.SpaServices.Extensions 6.0.4
  • Microsoft.EntityFrameworkCore.Design 6.0.4
  • Microsoft.EntityFrameworkCore.SqlServer 6.0.4
  • Microsoft.EntityFrameworkCore.Sqlite 6.0.4
  • Microsoft.EntityFrameworkCore.Tools 6.0.4
  • Microsoft.Extensions.Azure 1.2.0
  • Microsoft.Identity.Web 1.24.1
  • Microsoft.VisualStudio.Web.CodeGeneration.Design 6.0.3
  • Newtonsoft.Json 13.0.1
  • SendGrid 9.27.0
  • Swashbuckle.AspNetCore 6.3.1
TrashMob.Shared/TrashMob.Shared.csproj nuget
  • Azure.Security.KeyVault.Secrets 4.3.0
  • AzureMapsRestToolkit 7.1.0
  • DocuSign.eSign.dll 5.11.0
  • EntityFramework 6.4.4
  • Microsoft.Azure.KeyVault 3.0.5
  • Microsoft.EntityFrameworkCore 6.0.4
  • Microsoft.EntityFrameworkCore.Design 6.0.4
  • Microsoft.EntityFrameworkCore.SqlServer 6.0.4
  • Microsoft.EntityFrameworkCore.Sqlite 6.0.4
  • Microsoft.EntityFrameworkCore.Tools 6.0.4
  • Microsoft.Extensions.Configuration.Abstractions 6.0.0
  • SendGrid 9.27.0
TrashMob.Shared.Tests/TrashMob.Shared.Tests.csproj nuget
  • Microsoft.NET.Test.Sdk 17.1.0
  • Moq 4.17.2
  • coverlet.collector 3.1.2
  • xunit 2.4.1
  • xunit.runner.visualstudio 2.4.3
.github/workflows/PullRequest-IEFPolicies.yml actions
  • actions/checkout v3 composite
.github/workflows/PullRequest-Mobile.yml actions
  • Apple-Actions/download-provisioning-profiles v1 composite
  • Apple-Actions/import-codesign-certs v1 composite
  • actions/checkout v3 composite
  • actions/setup-dotnet v3 composite
  • actions/upload-artifact v3.1.2 composite
.github/workflows/PullRequest.yml actions
  • actions/checkout v3 composite
  • actions/setup-dotnet v3 composite
.github/workflows/main_IEFPolicies.yml actions
  • actions/checkout v3 composite
.github/workflows/main_as-tm-dev-westus2.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-dotnet v3 composite
  • actions/upload-artifact v3.1.2 composite
  • azure/webapps-deploy v2 composite
.github/workflows/main_fa-tm-dev-westus2.yml actions
  • Azure/functions-action v1 composite
  • actions/checkout v3 composite
  • actions/setup-dotnet v3 composite
.github/workflows/main_trashmobmobileapp.yml actions
  • Apple-Actions/download-provisioning-profiles v1 composite
  • Apple-Actions/import-codesign-certs v1 composite
  • actions/checkout v3 composite
  • actions/setup-dotnet v3 composite
  • actions/upload-artifact v3.1.2 composite
.github/workflows/release_IEFPolicies.yml actions
  • actions/checkout v3 composite
.github/workflows/release_as-tm-pr-westus2.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-dotnet v3 composite
  • actions/upload-artifact v3.1.2 composite
  • azure/webapps-deploy v2 composite
.github/workflows/release_fa-tm-pr-westus2.yml actions
  • Azure/functions-action v1 composite
  • actions/checkout v3 composite
  • actions/setup-dotnet v3 composite
.github/workflows/release_trashmobmobileapp.yml actions
  • Apple-Actions/download-provisioning-profiles v1 composite
  • Apple-Actions/import-codesign-certs v1 composite
  • actions/checkout v3 composite
  • actions/setup-dotnet v3 composite
  • actions/upload-artifact v3.1.2 composite
  • managedcode/MAUIAppVersion v1 composite
TrashMob.Models/TrashMob.Models.csproj nuget
.github/workflows/build-android.yml actions
  • actions/checkout v3 composite
  • actions/setup-dotnet v3 composite
  • actions/upload-artifact v3.1.2 composite
.github/workflows/build-ios.yml actions
  • Apple-Actions/download-provisioning-profiles v1 composite
  • Apple-Actions/import-codesign-certs v1 composite
  • actions/checkout v3 composite
  • actions/setup-dotnet v3 composite
  • actions/upload-artifact v3.1.2 composite
.github/workflows/publish-android.yml actions
  • actions/download-artifact v2 composite
  • r0adkll/upload-google-play v1 composite
.github/workflows/publish-ios.yml actions
  • actions/download-artifact v2 composite
  • apple-actions/upload-testflight-build v1 composite
.github/workflows/build-web.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
TrashMob/package-lock.json npm
package-lock.json npm
TrashMobJobs/TrashMobJobs.csproj nuget
  • Microsoft.ApplicationInsights.WorkerService 2.22.0
  • Microsoft.Azure.Functions.Worker 1.23.0
  • Microsoft.Azure.Functions.Worker.Extensions.Http 3.2.0
  • Microsoft.Azure.Functions.Worker.Extensions.Timer 4.3.1
  • Microsoft.Azure.Functions.Worker.Sdk 1.18.1
  • Microsoft.Extensions.DependencyInjection 8.0.1
  • System.Data.SqlClient 4.8.6
TrashMobMobile/TrashMobMobile.csproj nuget
  • CommunityToolkit.Maui 9.0.2
  • CommunityToolkit.Mvvm 8.2.2
  • M.BindableProperty.Generator 0.11.1
  • Microsoft.Extensions.Configuration 8.0.0
  • Microsoft.Extensions.Configuration.Binder 8.0.2
  • Microsoft.Extensions.Configuration.Json 8.0.1
  • Microsoft.Extensions.Hosting 8.0.1
  • Microsoft.Extensions.Http.Polly 8.0.10
  • Microsoft.Extensions.Logging.Debug 8.0.1
  • Microsoft.Identity.Client 4.66.1
  • Microsoft.Maui.Controls 8.0.92
  • Microsoft.Maui.Controls.Compatibility 8.0.92
  • Microsoft.Maui.Controls.Maps 8.0.92
  • Newtonsoft.Json 13.0.3
  • Polly 8.4.2
  • Sentry.Maui 4.12.2

Score: 7.694392802629421