markaspot / mark-a-spot
Mark-a-Spot is a Drupal distribution for crowdmapping and public civic issue tracking
Installs: 1 127
Dependents: 0
Suggesters: 0
Security: 0
Stars: 64
Watchers: 8
Forks: 32
Open Issues: 1
Language:TypeScript
Type:project
pkg:composer/markaspot/mark-a-spot
Requires
- composer/installers: ^2
- cweagans/composer-patches: ^1.7.0
- drupal/backup_migrate: ^5
- drupal/bpmn_io: ^2
- drupal/core: ^11
- drupal/core-composer-scaffold: ^11
- drupal/core-recommended: ^11.1
- drupal/devel: ^5
- drupal/eca: ^2
- drupal/gin_login: ^2
- drupal/group: ^3
- drupal/group_action: ^1.1
- drupal/iconify_field: ^1.2
- drupal/jquery_ui: ^1.6
- drupal/jquery_ui_draggable: ^1.2
- drupal/jsonapi_extras: ^3
- drupal/layout_library: ^1.0@beta
- drupal/mailsystem: ^4.4
- drupal/phpmailer_smtp: ^2.1
- drupal/s3fs: ^3.1
- drush/drush: 13
- kevinquillen/recipe-generator: ^2.0
- markaspot/markaspot: dev-11.7.x-dev
- vlucas/phpdotenv: ^5.5
- webflo/drupal-finder: ^1.0.0
- webmozart/assert: 1.11.0
- zaporylie/composer-drupal-optimizations: ^1.2.0
Conflicts
- dev-main
- 11.7.6
- 11.7.4
- 11.7.3
- 11.7.2
- 11.7.1
- 11.7.0
- 11.7.0-beta.5
- 11.7.0-beta.4
- 11.7.0-beta.3
- 11.7.0-beta.2
- 11.7.0-beta.1
- 10.6.0-beta.4
- 10.6.0-beta.3
- 10.6.0-beta.2
- 10.6.0-beta.1
- 10.6.0-alpha.9
- 10.6.0-alpha.8
- 10.6.0-alpha.7
- 10.6.0-alpha.6
- 10.6.0-alpha5
- 10.6.0-alpha.4
- 10.6.0-alpha.3
- 10.6.0-alpha.2
- 10.6.0-alpha.1
- 8.5.0-beta1
- 8.4.2
- 8.4.1
- 8.3.4
- 8.3.3
- 8.3.2
- 8.3.1
- 8.3.0
- 8.3.0-rc2
- 8.3.0-rc1
- 8.3.0-alpha1
- 8.3.0-alpha
- dev-11.7.x-dev
- dev-10.6.x-dev
- dev-dependabot/npm_and_yarn/web/themes/custom/mas_custom/postcss-8.4.31
- dev-8.5.x-dev
This package is not auto-updated.
Last update: 2025-12-08 13:13:45 UTC
README
Open-Source Civic Issue Tracking · Drupal 11 · Open311
Features
- Citizen Reporting – Photos, descriptions, geolocation
- Interactive Maps – Pinpoint locations, clustering, filtering
- Open311 API – Standard GeoReport v2 integration
- Workflow Management – Track issues from report to resolution
Built for municipalities, public service departments, and civic tech organizations.
Architecture
┌─────────────────────────────────────────────────────────────┐
│ Frontend (PWA) │
│ Vue 3 · TypeScript · Tailwind · MapLibre │
└─────────────────────────────┬───────────────────────────────┘
│
HTTPS/JSON (REST)
│
┌─────────────────────────────▼───────────────────────────────┐
│ Drupal 11 Backend │
│ │
│ ┌──────────────────────┐ ┌──────────────────────┐ │
│ │ Open311 API │ │ JSON:API │ │
│ │ (GeoReport) │ │ (CRUD) │ │
│ └──────────────────────┘ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
Quick Start
Requires DDEV.
git clone https://github.com/markaspot/mark-a-spot.git cd mark-a-spot ddev start ddev ssh ./scripts/start.sh -y exit
Access:
- Backend: https://mark-a-spot.ddev.site
- Frontend: https://mark-a-spot.ddev.site:8040
- Admin:
ddev drush uli
Installation Options
| Flag | Description |
|---|---|
-y |
Autopilot mode (defaults: New York, en_US) |
-t |
Import Drupal translation files |
-a |
AI content translation (requires OPENAI_API_KEY) |
Combine flags as needed: ./scripts/start.sh -t -a
Multilingual Setup
Use -t for Drupal translations, -a for AI-powered content translation.
Requires OPENAI_API_KEY. See ./scripts/start.sh --help for details.
API
Implements the Open311 GeoReport v2 standard.
| Endpoint | Description |
|---|---|
GET /georeport/v2/services.json |
List service categories |
GET /georeport/v2/requests.json |
List service requests |
GET /georeport/v2/requests/{id}.json |
Get single request |
POST /georeport/v2/requests.json |
Create request |
Requirements
- PHP 8.3+
- Node.js 22+ (LTS)
- MySQL 8.0+ / MariaDB 10.6+
- Composer 2.x