An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          


DogeSeeds




Dogecoin Foundation

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