https://github.com/qlpqlp/dogeseeds
See it. Share it. Grow kindness.
https://github.com/qlpqlp/dogeseeds
crypocurrency doge dogecoin dogecoin-foundation donation-platform donations
Last synced: 1 day ago
JSON representation
See it. Share it. Grow kindness.
- Host: GitHub
- URL: https://github.com/qlpqlp/dogeseeds
- Owner: qlpqlp
- Created: 2026-06-09T08:53:28.000Z (3 days ago)
- Default Branch: main
- Last Pushed: 2026-06-09T09:22:44.000Z (3 days ago)
- Last Synced: 2026-06-09T11:12:10.004Z (3 days ago)
- Topics: crypocurrency, doge, dogecoin, dogecoin-foundation, donation-platform, donations
- Language: PHP
- Homepage: https://DogeSeeds.org
- Size: 1.49 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
DogeSeeds.org
See it. Share it. Grow kindness.
A global map connecting people who need help with those who can share surplus food, clothing, toys, and essentials.
π Live site: dogeseeds.org
Β Β·Β
Beta
Do Only Good Everyday β built with the Dogecoin community in mind, as part of the Dogecoin Foundation mission to spread kindness worldwide.
---
## What is DogeSeeds?
**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.
The live project runs at **[https://dogeseeds.org](https://dogeseeds.org)**.
- **Find help** β browse the map or list view, filter by category (with counts), search the list, use βNear meβ
- **Share surplus** β register, add your place on the map, set pickup windows
- **Connect** β public inquiry form on listings; shareable friendly URLs for social media
- **Support the project** β optional Dogecoin donations for hosting and verified distribution (not personal profit)
---
## How it works
```
Visitor / neighbour Registered user / org Admin
β β β
βΌ βΌ βΌ
Open map at Create account β onboarding admin/ panel
dogeseeds.org wizard β add listing settings, listings,
β (org type, offers/needs, users, SMTP, wallet
βΌ location, photo)
Filter by category
or tap a marker
β
βΌ
Popup preview β
full detail panel β
inquiry / share link
```
### Main pieces
| Layer | What it does |
|-------|----------------|
| **Frontend** | `index.php` + `assets/js/app.js` β Leaflet map, list view, onboarding, auth, sharing |
| **API** | `api/` β JSON REST (`map`, `organizations`, `auth`, `my/listings`, `listing-inquiry`, β¦) |
| **Database** | MySQL β users, organizations, locations, donations, settings |
| **i18n** | `lang/*.json` β UI strings; English fallback for missing keys |
| **Pretty URLs** | `.htaccess` β e.g. `dogeseeds.org/2-paulo/giving/clothing` opens that listing on the map |
### Organization types
Individuals, farmers/fishermen, supermarkets, restaurants, cafΓ©s, NGOs, scout groups, and volunteer hubs β each with a distinct map marker colour and icon.
### Categories
`food` Β· `clothing` Β· `toys` Β· `essentials`
### Share URLs
Each listing gets a slug like `{user_id}-{name}` (e.g. `2-paulo`). Share links look like:
`https://dogeseeds.org/2-paulo/giving/clothing`
Set **Site URL** in admin so OG/Twitter previews and copied links use the correct domain.
---
## Minimum requirements
| Requirement | Minimum |
|-------------|---------|
| **PHP** | 8.0+ |
| **Database** | MySQL 5.7+ or MariaDB 10.3+ |
| **PHP extensions** | `pdo`, `pdo_mysql`, `json`, `session` |
| **Web server** | Apache with `mod_rewrite` (recommended) or Nginx with equivalent rules |
| **Disk** | ~50 MB + space for uploaded listing photos (`uploads/locations/`) |
| **HTTPS** | Strongly recommended (geolocation, secure cookies, social previews) |
Optional but useful: SMTP for registration, password reset, and listing inquiry emails.
---
## Installation
Full step-by-step guide: **[INSTALL.md](INSTALL.md)**
### Quick start (new installation)
**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.
1. **Upload** all project files to your web root (`public_html` or equivalent).
2. **Create** a MySQL database and user with full privileges.
3. **Ensure** `config/` is writable (`chmod 755`).
4. **Visit** `https://yourdomain.com/install/` and complete the wizard.
5. **Delete** or block the `install/` folder when finished.
6. In **admin** (`/admin/`), set **Site URL** to your public URL (e.g. `https://dogeseeds.org`).
### Optional sample data
After install, you can optionally populate the map with worldwide sample NGOs, scouts, and volunteer hubs:
**phpMyAdmin** β select your database β **Import** β `database/seed-global-orgs.sql`
Additional 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.
This is optional. Skip it if you prefer an empty map and will add real listings yourself.
### Upgrading an existing site only
The `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.
If 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.
---
## How to use
### As a visitor (no account)
1. Open [dogeseeds.org](https://dogeseeds.org).
2. Use category filters or **Near me** to find nearby listings.
3. Tap a map marker for a preview; open full details for address, pickup window, and contact options.
4. Send an inquiry to the listing owner when contact is public.
### As someone sharing or seeking help
1. **Register** (free account).
2. Complete the **onboarding** wizard (who you are, what you offer or need).
3. **Add a place** on the map β name, location, photo, categories, pickup times.
4. Manage listings under **My listings** (edit, deactivate, add donation items).
### As an admin
1. Log in with an admin account.
2. Open **`/admin/`** (admin panel).
3. **Settings** β site name, URL, default language, map defaults, Dogecoin wallet, SMTP, transparency note.
4. **Listings** β search, edit any listing (same fields as the main site), hide/show, remove, manage photos.
5. **Users** β view registrations, edit accounts, block or delete users (and their listings).
---
## Project structure
```
dogeseeds/
βββ index.php # Main app (map, list, auth, onboarding)
βββ .htaccess # API routing + pretty share URLs
βββ api/ # REST API
β βββ index.php # Router
β βββ map.php
β βββ organizations.php
β βββ auth.php
β βββ my-listings.php
β βββ listing-inquiry.php
β βββ admin/ # settings.php, users.php, test-email.php
βββ admin/ # Admin panel UI (settings, listings, users)
βββ assets/
β βββ css/style.css
β βββ js/app.js
β βββ js/admin.js
β βββ img/ # Logo, card, Dogecoin Foundation mark
βββ config/ # config.php (created by installer)
βββ database/
β βββ schema.sql # Fresh install (used by wizard; includes full current schema)
β βββ migrate-v*.sql # Existing sites only β e.g. migrate-v11.sql
β βββ seed-global-orgs.sql # Optional sample map data
βββ includes/ # PHP core (Auth, I18n, Mailer, helpers)
βββ install/ # Web install wizard
βββ lang/ # Translation JSON files
βββ uploads/locations/ # Listing photos (created on upload)
βββ reset.php # Password reset page
βββ verify.php # Email verification
```
---
## Tech stack
- **Backend:** PHP 8+, MySQL
- **Frontend:** Vanilla HTML/CSS/JS (no build step)
- **Map:** [Leaflet](https://leafletjs.com/) + CARTO/OSM tiles
- **Fonts:** Nunito + Material Icons
- **i18n:** JSON language files with English fallback
---
## Contributing β how to help improve it
We welcome issues and pull requests on GitHub. Ways to help:
1. **Report bugs** β include browser, steps to reproduce, and console/network errors if possible.
2. **Suggest features** β especially around accessibility, map UX, and community safety.
3. **Translate** β add or improve language files (see below).
4. **Code** β keep changes focused; match existing PHP/JS style; test on a local or staging install.
5. **Documentation** β improve INSTALL.md or this README.
6. **Test deployments** β shared hosting (cPanel), Nginx, different PHP versions.
### Development tips
- API routes are defined in `api/index.php`.
- UI strings must go in **all** `lang/*.json` files or at least `en.json` (others fall back to English).
- After changing share URL or asset path logic, test a nested URL like `/slug/giving/food`.
- Do not commit `config/config.php`, `.env`, or real credentials.
### Pull request checklist
- [ ] Works on PHP 8.0+
- [ ] No secrets in the diff
- [ ] New UI text added to `lang/en.json` (and other langs if you can)
- [ ] If schema changes: new `database/migrate-vN.sql` file
---
## Adding a new translation
DogeSeeds currently ships with **English, Portuguese, Spanish, French, German, Chinese, and Japanese**. To add or extend a language:
### 1. Create the language file
Copy the English template:
```bash
cp lang/en.json lang/xx.json
```
Replace `xx` with a two-letter (or common) code, e.g. `it` for Italian.
### 2. Translate every key
Each key in `lang/en.json` is a UI string. Translate the **values**, not the keys:
```json
{
"site_name": "DogeSeeds.org",
"nav_map": "Map",
"nav_list": "List"
}
```
Some strings use `printf`-style placeholders β keep `%s` exactly as-is:
```json
"share_desc_giving": "%s is sharing %s on DogeSeeds β find it on the map."
```
### 3. Register the language
Add an entry to `includes/languages.php`:
```php
'it' => ['label' => 'Italiano', 'short' => 'IT', 'flag' => 'it'],
```
- `label` β shown in the language menu
- `short` β compact code on mobile
- `flag` β ISO country code for [flagcdn.com](https://flagcdn.com) icons
### 4. Test
1. Visit `https://yoursite/?lang=it` (or use the language picker).
2. Walk through map, login, onboarding, listing detail, and share panel.
3. Missing keys automatically fall back to English (`includes/I18n.php`).
### 5. Open a pull request
- One file per language: `lang/xx.json`
- Update `includes/languages.php`
- Mention your language in the PR description
---
## Dogecoin & the Foundation
DogeSeeds is built in the spirit of **Do Only Good Everyday** and is associated with the **Dogecoin Foundation** mission of kindness and community impact.
- Donations are **DOGE only**, configured in admin.
- Funds are intended for **hosting and verified distribution** β not personal profit.
- The Dogecoin Foundation mark is included in `assets/img/dogecoin-foundation.svg`.
---
## License
Built for community good. Use responsibly and help others.
---
dogeseeds.org β Do Only Good Everyday