{"id":50762637,"url":"https://github.com/qlpqlp/dogeseeds","last_synced_at":"2026-06-11T11:30:25.722Z","repository":{"id":363538662,"uuid":"1263771581","full_name":"qlpqlp/dogeseeds","owner":"qlpqlp","description":"See it. Share it. Grow kindness.","archived":false,"fork":false,"pushed_at":"2026-06-09T09:22:44.000Z","size":1563,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-09T11:12:10.004Z","etag":null,"topics":["crypocurrency","doge","dogecoin","dogecoin-foundation","donation-platform","donations"],"latest_commit_sha":null,"homepage":"https://DogeSeeds.org","language":"PHP","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/qlpqlp.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-09T08:53:28.000Z","updated_at":"2026-06-09T09:29:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/qlpqlp/dogeseeds","commit_stats":null,"previous_names":["qlpqlp/dogeseeds"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/qlpqlp/dogeseeds","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qlpqlp%2Fdogeseeds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qlpqlp%2Fdogeseeds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qlpqlp%2Fdogeseeds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qlpqlp%2Fdogeseeds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qlpqlp","download_url":"https://codeload.github.com/qlpqlp/dogeseeds/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qlpqlp%2Fdogeseeds/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34197393,"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-11T02:00:06.485Z","response_time":57,"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"}},"keywords":["crypocurrency","doge","dogecoin","dogecoin-foundation","donation-platform","donations"],"created_at":"2026-06-11T11:30:25.082Z","updated_at":"2026-06-11T11:30:25.707Z","avatar_url":"https://github.com/qlpqlp.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/img/DogeSeeds_card.png\" alt=\"DogeSeeds\" width=\"100%\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://foundation.dogecoin.com\"\u003e\n    \u003cimg src=\"assets/img/dogecoin-foundation.svg\" alt=\"Dogecoin Foundation\"  width=\"160\" style=\"background: rgba(255,255,255,0.3); padding: 8px; border-radius: 8px;\" \u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eDogeSeeds.org\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eSee it. Share it. Grow kindness.\u003c/strong\u003e\u003cbr\u003e\n  A global map connecting people who need help with those who can share surplus food, clothing, toys, and essentials.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://dogeseeds.org\"\u003e\u003cstrong\u003e🌐 Live site: dogeseeds.org\u003c/strong\u003e\u003c/a\u003e\n  \u0026nbsp;·\u0026nbsp;\n  \u003cspan title=\"Early release\"\u003eBeta\u003c/span\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eDo Only Good Everyday\u003c/em\u003e — built with the Dogecoin community in mind, as part of the \u003cstrong\u003eDogecoin Foundation\u003c/strong\u003e mission to spread kindness worldwide.\n\u003c/p\u003e\n\n---\n\n## What is DogeSeeds?\n\n**DogeSeeds.org** is a mobile-first, map-based platform where individuals, farmers, stores, scout groups, volunteer teams, and NGOs can show what they **offer** or **need** — food, clothing, toys, and essentials — so neighbours can find each other quickly.\n\nThe live project runs at **[https://dogeseeds.org](https://dogeseeds.org)**.\n\n- **Find help** — browse the map or list view, filter by category (with counts), search the list, use “Near me”\n- **Share surplus** — register, add your place on the map, set pickup windows\n- **Connect** — public inquiry form on listings; shareable friendly URLs for social media\n- **Support the project** — optional Dogecoin donations for hosting and verified distribution (not personal profit)\n\n---\n\n## How it works\n\n```\nVisitor / neighbour          Registered user / org              Admin\n        │                              │                            │\n        ▼                              ▼                            ▼\n   Open map at              Create account → onboarding          admin/ panel\n   dogeseeds.org            wizard → add listing                 settings, listings,\n        │                    (org type, offers/needs,             users, SMTP, wallet\n        ▼                     location, photo)\n   Filter by category\n   or tap a marker\n        │\n        ▼\n   Popup preview →\n   full detail panel →\n   inquiry / share link\n```\n\n### Main pieces\n\n| Layer | What it does |\n|-------|----------------|\n| **Frontend** | `index.php` + `assets/js/app.js` — Leaflet map, list view, onboarding, auth, sharing |\n| **API** | `api/` — JSON REST (`map`, `organizations`, `auth`, `my/listings`, `listing-inquiry`, …) |\n| **Database** | MySQL — users, organizations, locations, donations, settings |\n| **i18n** | `lang/*.json` — UI strings; English fallback for missing keys |\n| **Pretty URLs** | `.htaccess` — e.g. `dogeseeds.org/2-paulo/giving/clothing` opens that listing on the map |\n\n### Organization types\n\nIndividuals, farmers/fishermen, supermarkets, restaurants, cafés, NGOs, scout groups, and volunteer hubs — each with a distinct map marker colour and icon.\n\n### Categories\n\n`food` · `clothing` · `toys` · `essentials`\n\n### Share URLs\n\nEach listing gets a slug like `{user_id}-{name}` (e.g. `2-paulo`). Share links look like:\n\n`https://dogeseeds.org/2-paulo/giving/clothing`\n\nSet **Site URL** in admin so OG/Twitter previews and copied links use the correct domain.\n\n---\n\n## Minimum requirements\n\n| Requirement | Minimum |\n|-------------|---------|\n| **PHP** | 8.0+ |\n| **Database** | MySQL 5.7+ or MariaDB 10.3+ |\n| **PHP extensions** | `pdo`, `pdo_mysql`, `json`, `session` |\n| **Web server** | Apache with `mod_rewrite` (recommended) or Nginx with equivalent rules |\n| **Disk** | ~50 MB + space for uploaded listing photos (`uploads/locations/`) |\n| **HTTPS** | Strongly recommended (geolocation, secure cookies, social previews) |\n\nOptional but useful: SMTP for registration, password reset, and listing inquiry emails.\n\n---\n\n## Installation\n\nFull step-by-step guide: **[INSTALL.md](INSTALL.md)**\n\n### Quick start (new installation)\n\n**You do not need migration SQL files for a fresh install.** The install wizard imports `database/schema.sql`, which already includes the full current database structure.\n\n1. **Upload** all project files to your web root (`public_html` or equivalent).\n2. **Create** a MySQL database and user with full privileges.\n3. **Ensure** `config/` is writable (`chmod 755`).\n4. **Visit** `https://yourdomain.com/install/` and complete the wizard.\n5. **Delete** or block the `install/` folder when finished.\n6. In **admin** (`/admin/`), set **Site URL** to your public URL (e.g. `https://dogeseeds.org`).\n\n### Optional sample data\n\nAfter install, you can optionally populate the map with worldwide sample NGOs, scouts, and volunteer hubs:\n\n**phpMyAdmin** → select your database → **Import** → `database/seed-global-orgs.sql`\n\nAdditional aid organisations (food banks, clothing, toys): import `database/seed-aid-orgs.sql` and upload the `uploads/seed/` folder to your server so listing photos appear on the map.\n\nThis is optional. Skip it if you prefer an empty map and will add real listings yourself.\n\n### Upgrading an existing site only\n\nThe `database/migrate-v*.sql` files are **only for sites that were installed before a schema change**. If you are setting up DogeSeeds for the first time, ignore them.\n\nIf you upgraded from an older deployment, run any missing migration files in order in phpMyAdmin (e.g. `migrate-v11.sql` for the `users.blocked` column). Older deployments may also need `migrate-v2.sql` through `migrate-v10.sql` if those were never applied.\n\n---\n\n## How to use\n\n### As a visitor (no account)\n\n1. Open [dogeseeds.org](https://dogeseeds.org).\n2. Use category filters or **Near me** to find nearby listings.\n3. Tap a map marker for a preview; open full details for address, pickup window, and contact options.\n4. Send an inquiry to the listing owner when contact is public.\n\n### As someone sharing or seeking help\n\n1. **Register** (free account).\n2. Complete the **onboarding** wizard (who you are, what you offer or need).\n3. **Add a place** on the map — name, location, photo, categories, pickup times.\n4. Manage listings under **My listings** (edit, deactivate, add donation items).\n\n### As an admin\n\n1. Log in with an admin account.\n2. Open **`/admin/`** (admin panel).\n3. **Settings** — site name, URL, default language, map defaults, Dogecoin wallet, SMTP, transparency note.\n4. **Listings** — search, edit any listing (same fields as the main site), hide/show, remove, manage photos.\n5. **Users** — view registrations, edit accounts, block or delete users (and their listings).\n\n---\n\n## Project structure\n\n```\ndogeseeds/\n├── index.php              # Main app (map, list, auth, onboarding)\n├── .htaccess              # API routing + pretty share URLs\n├── api/                   # REST API\n│   ├── index.php          # Router\n│   ├── map.php\n│   ├── organizations.php\n│   ├── auth.php\n│   ├── my-listings.php\n│   ├── listing-inquiry.php\n│   └── admin/             # settings.php, users.php, test-email.php\n├── admin/                 # Admin panel UI (settings, listings, users)\n├── assets/\n│   ├── css/style.css\n│   ├── js/app.js\n│   ├── js/admin.js\n│   └── img/               # Logo, card, Dogecoin Foundation mark\n├── config/                # config.php (created by installer)\n├── database/\n│   ├── schema.sql         # Fresh install (used by wizard; includes full current schema)\n│   ├── migrate-v*.sql     # Existing sites only — e.g. migrate-v11.sql\n│   └── seed-global-orgs.sql  # Optional sample map data\n├── includes/              # PHP core (Auth, I18n, Mailer, helpers)\n├── install/               # Web install wizard\n├── lang/                  # Translation JSON files\n├── uploads/locations/     # Listing photos (created on upload)\n├── reset.php              # Password reset page\n└── verify.php             # Email verification\n```\n\n---\n\n## Tech stack\n\n- **Backend:** PHP 8+, MySQL\n- **Frontend:** Vanilla HTML/CSS/JS (no build step)\n- **Map:** [Leaflet](https://leafletjs.com/) + CARTO/OSM tiles\n- **Fonts:** Nunito + Material Icons\n- **i18n:** JSON language files with English fallback\n\n---\n\n## Contributing — how to help improve it\n\nWe welcome issues and pull requests on GitHub. Ways to help:\n\n1. **Report bugs** — include browser, steps to reproduce, and console/network errors if possible.\n2. **Suggest features** — especially around accessibility, map UX, and community safety.\n3. **Translate** — add or improve language files (see below).\n4. **Code** — keep changes focused; match existing PHP/JS style; test on a local or staging install.\n5. **Documentation** — improve INSTALL.md or this README.\n6. **Test deployments** — shared hosting (cPanel), Nginx, different PHP versions.\n\n### Development tips\n\n- API routes are defined in `api/index.php`.\n- UI strings must go in **all** `lang/*.json` files or at least `en.json` (others fall back to English).\n- After changing share URL or asset path logic, test a nested URL like `/slug/giving/food`.\n- Do not commit `config/config.php`, `.env`, or real credentials.\n\n### Pull request checklist\n\n- [ ] Works on PHP 8.0+\n- [ ] No secrets in the diff\n- [ ] New UI text added to `lang/en.json` (and other langs if you can)\n- [ ] If schema changes: new `database/migrate-vN.sql` file\n\n---\n\n## Adding a new translation\n\nDogeSeeds currently ships with **English, Portuguese, Spanish, French, German, Chinese, and Japanese**. To add or extend a language:\n\n### 1. Create the language file\n\nCopy the English template:\n\n```bash\ncp lang/en.json lang/xx.json\n```\n\nReplace `xx` with a two-letter (or common) code, e.g. `it` for Italian.\n\n### 2. Translate every key\n\nEach key in `lang/en.json` is a UI string. Translate the **values**, not the keys:\n\n```json\n{\n  \"site_name\": \"DogeSeeds.org\",\n  \"nav_map\": \"Map\",\n  \"nav_list\": \"List\"\n}\n```\n\nSome strings use `printf`-style placeholders — keep `%s` exactly as-is:\n\n```json\n\"share_desc_giving\": \"%s is sharing %s on DogeSeeds — find it on the map.\"\n```\n\n### 3. Register the language\n\nAdd an entry to `includes/languages.php`:\n\n```php\n'it' =\u003e ['label' =\u003e 'Italiano', 'short' =\u003e 'IT', 'flag' =\u003e 'it'],\n```\n\n- `label` — shown in the language menu  \n- `short` — compact code on mobile  \n- `flag` — ISO country code for [flagcdn.com](https://flagcdn.com) icons  \n\n### 4. Test\n\n1. Visit `https://yoursite/?lang=it` (or use the language picker).\n2. Walk through map, login, onboarding, listing detail, and share panel.\n3. Missing keys automatically fall back to English (`includes/I18n.php`).\n\n### 5. Open a pull request\n\n- One file per language: `lang/xx.json`\n- Update `includes/languages.php`\n- Mention your language in the PR description\n\n---\n\n## Dogecoin \u0026 the Foundation\n\nDogeSeeds is built in the spirit of **Do Only Good Everyday** and is associated with the **Dogecoin Foundation** mission of kindness and community impact.\n\n- Donations are **DOGE only**, configured in admin.\n- Funds are intended for **hosting and verified distribution** — not personal profit.\n- The Dogecoin Foundation mark is included in `assets/img/dogecoin-foundation.svg`.\n\n---\n\n## License\n\nBuilt for community good. Use responsibly and help others.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e\u003ca href=\"https://dogeseeds.org\"\u003edogeseeds.org\u003c/a\u003e\u003c/strong\u003e — Do Only Good Everyday\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqlpqlp%2Fdogeseeds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqlpqlp%2Fdogeseeds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqlpqlp%2Fdogeseeds/lists"}