SEED

Standard Energy Efficiency Data Platform™ is a web-based application that helps organizations easily manage data on the energy performance of large groups of buildings.
https://github.com/seed-platform/seed

Category: Consumption
Sub Category: Buildings and Heating

Keywords

buildings commercial energy

Keywords from Contributors

energyplus django-application lbl ngt-archive tropics building-energy energy-data energy-efficiency openstudio openstudio-coalition

Last synced: about 24 hours ago
JSON representation

Repository metadata

Standard Energy Efficiency Data (SEED) Platform™ is a web-based application that helps organizations easily manage data on the energy performance of large groups of buildings.

README.md

Standard Energy Efficiency Data (SEED) Platform™

Build Status Coverage Status

The SEED Platform is a web-based application that helps organizations easily
manage data on the energy performance of large groups of buildings. Users can
combine data from multiple sources, clean and validate it, and share the
information with others. The software application provides an easy, flexible,
and cost-effective method to improve the quality and availability of data to
help demonstrate the economic and environmental benefits of energy efficiency,
to implement programs, and to target investment activity.

The SEED application is written in Python/Django. The front end includes the
legacy AngularJS application and a newer Angular application in the
ng_seed/seed-angular submodule. The back-end database is PostgreSQL with
PostGIS; Docker development currently uses the repository's configured
TimescaleDB/Postgres image.

The SEED web application provides both a browser-based interface for users to
upload and manage their building data, as well as a full set of APIs that app
developers can use to access these same data management functions. From a
running server, the Swagger API documentation can be found at /api/swagger
or from the front end by clicking the API documentation link in the sidebar.

Installation

For local development, initialize the Angular UI submodule before installing
dependencies or building Docker images:

git submodule update --init ng_seed/seed-angular

Starting SEED Platform

In production the following two commands will run the web server (Hypercorn) and
the background task manager (Celery) with:

bin/start_hypercorn.sh
bin/start_celery.sh

For basic local development only, run Celery tasks eagerly in the Django process
by setting CELERY_TASK_ALWAYS_EAGER = True and
CELERY_TASK_EAGER_PROPAGATES = True in config/settings/local_untracked.py.
Then start Django with:

uv run manage.py runserver

Run Django management commands through uv as uv run manage.py <command>.

Testing workflows that need real asynchronous behavior and production
deployments should run Celery as a separate worker/task. For that mode, set
CELERY_TASK_ALWAYS_EAGER = False and run the worker separately:

uv run celery -A seed worker -l INFO -c 4 --max-tasks-per-child 1000 -EBS django_celery_beat.schedulers:DatabaseScheduler

The legacy AngularJS app is served at /app/. The newer Angular app is served
at /ng-app/ after its static assets have been built.

Deployment appearance

Both UIs read deployment settings from Django. With no overrides, their current
appearance, navigation, and integrations remain unchanged. To customize a deployment (custom logo, remove specific functionality, etc.), set environment variables on the web container (and the Celery worker for integration policy). The SEED_HOME_CONTENT_MODE can be set to custom to replace the content on the home page or dashboard page (accessible after login). If this variable is set to custom, the SEED_HOME_HERO_IMAGE_URL can be used to replace to large image at the top of the page, and SEED_HOME_HEADING and SEED_HOME_TEXT can be used to add a custom heading and some custom text. Similarly, SEED_BRAND_LOGO_URL can be used to replace the SEED logo on the login page and in the top left of the site with a custom logo. And SEED_HIDDEN_NAVIGATION can be assigned a list of links to hide from the UI. See below for the full list of environment variables that can be used to customize your SEED instance.

Variable Default Effect
SEED_BRAND_LOGO_URL unset Public /branding/... SVG, PNG, or WebP path; replaces the Angular sign-in, splash, and left-nav logos, and appears beside the legacy header text and above its configured sign-in form. Suggested logo image ratio 2:1 to 3:1.
SEED_HOME_HERO_IMAGE_URL unset Public /branding/... image path for the home-page hero; can also replace the stock legacy login background when branding is configured. Suggested size 2000 × 800 px.
SEED_LOGIN_HEADING, SEED_LOGIN_TEXT unset Sign-in heading and supporting copy. The legacy sign-in displays these above the form instead of its split marketing panel.
SEED_HOME_HEADING, SEED_HOME_TEXT unset Home heading and copy. Text is displayed as plain text, not HTML.
SEED_HOME_CONTENT_MODE default Set custom to replace legacy Getting Started buttons and show custom content on the new home page.
SEED_HIDDEN_NAVIGATION empty Comma-separated navigation IDs: documentation,api,contact,about.
SEED_SALESFORCE_ENABLED, SEED_BETTER_ENABLED true Set either to false to hide its UI and block its backend actions. Audit Template remains separate.
SEED_BRANDING_DIR ./branding Compose host directory mounted read-only at /seed/branding for nginx. Set an absolute host path in production.
SEED_BRAND_LOGO_URL=/branding/client-logo.svg
SEED_HOME_HERO_IMAGE_URL=/branding/client-home.webp
SEED_LOGIN_HEADING=Welcome to the client portal
SEED_LOGIN_TEXT=Sign in with your account.
SEED_HOME_HEADING=Client buildings
SEED_HOME_TEXT=Your deployment-specific home page copy.
SEED_HOME_CONTENT_MODE=custom
SEED_HIDDEN_NAVIGATION=documentation,api,contact,about
SEED_SALESFORCE_ENABLED=false
SEED_BETTER_ENABLED=false

Only root-relative /branding/ image paths are allowed. Copy the corresponding image
files into a deployment-owned directory, not this repository: Compose mounts
${SEED_BRANDING_DIR:-./branding} read-only at /seed/branding in the web container.
Set SEED_BRANDING_DIR to an absolute host path in production. Non-Compose deployments
must mount that directory at /seed/branding for nginx; Django's debug server uses the
repository's ignored branding/ directory. The logo is public so it works before sign-in.
Use a suitably sized SVG or WebP and confirm both image URLs load before enabling them.
For a local preview, place us-army.svg in that ignored directory, start Django with
SEED_BRAND_LOGO_URL=/branding/us-army.svg, and restart the Angular dev server so its
/branding/ proxy is loaded. No frontend rebuild is needed when the image or Django
settings change. Leave image variables unset when no corresponding file is present.

custom replaces the legacy Getting Started buttons with SEED_HOME_TEXT and shows
custom copy on the new home page; leaving it unset retains each UI's existing home.
The custom hero appears above the heading and text at the content width, with its
full aspect ratio preserved instead of being cropped to a fixed height.
Hidden navigation only removes menu entries; direct URLs and other outbound links
remain accessible. Audit Template is independent of the Salesforce and BETTER flags.

Developer Resources

  • Source code documentation is on the SEED website and there are links to [older versions][code-documentations-links] as needed.
  • Several notes regarding Django and AngularJS integration: See Developer Resources

Testing

See the information in the LICENSE.md file.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 2 days ago

Total Commits: 8,375
Total Committers: 66
Avg Commits per committer: 126.894
Development Distribution Score (DDS): 0.8

Commits in past year: 161
Committers in past year: 10
Avg Commits per committer in past year: 16.1
Development Distribution Score (DDS) in past year: 0.671

Name Email Commits
Nicholas Long n****g@n****v 1672
Alex Swindler A****r@n****v 843
Ted Summer t****2@g****m 811
Adrian Lara a****n@d****m 752
Ross Perry p****6@g****m 504
Ryo k****z@d****m 459
Nicholas Serra n****s@y****m 420
aviveiros11 v****n@g****m 404
lin l****n@n****v 280
Hannah Eslinger h****e@n****v 271
Katherine Fleming 2****n 203
Edwin Lee l****1@g****m 198
Ryan McCuaig r****n@r****t 189
Nathan Addy n****y@g****m 182
Daniel Bressan d****2@g****m 169
Daniel McQuillen d****l@m****m 138
Paul Munday p****l@p****t 115
Piper Merriam p****m@q****m 109
dependabot[bot] 4****] 87
Alex Chapin a****n@n****v 64
Miles Clark m****c@o****m 63
Fable Turas f****e@r****m 60
Daniel McQuillen d****l@m****m 56
Stephen Czarnecki s****i@l****v 51
Dan Gunter d****r@l****v 25
ebeers-png 5****g 24
Alex Chapin a****n@g****m 22
Adrian Lara 3****a 18
Caleb Rutan c****n 18
laurenliz22 l****n@g****m 14
and 36 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 2 days ago

Total issues: 2,704
Total pull requests: 2,834
Average time to close issues: 9 months
Average time to close pull requests: 12 days
Total issue authors: 50
Total pull request authors: 49
Average comments per issue: 3.93
Average comments per pull request: 1.18
Merged pull request: 2,380
Bot issues: 14
Bot pull requests: 162

Past year issues: 9
Past year pull requests: 138
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 7 days
Past year issue authors: 4
Past year pull request authors: 8
Past year average comments per issue: 0.11
Past year average comments per pull request: 0.38
Past year merged pull request: 77
Past year bot issues: 0
Past year bot pull requests: 63

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

Top Issue Authors

  • RDmitchell (1,350)
  • nllong (225)
  • macintoshpie (197)
  • kflemin (155)
  • adrian-lara (137)
  • anchapin (124)
  • axelstudios (83)
  • isalanglois (70)
  • perryr16 (60)
  • haneslinger (50)
  • danielmcquillen (34)
  • nicholasserra (28)
  • cycustodio (18)
  • aviveiros11 (17)
  • mmclark (15)

Top Pull Request Authors

  • nllong (441)
  • haneslinger (372)
  • axelstudios (342)
  • perryr16 (304)
  • macintoshpie (168)
  • kflemin (165)
  • dependabot[bot] (162)
  • adrian-lara (145)
  • nicholasserra (110)
  • Ryoken (88)
  • aviveiros11 (66)
  • pipermerriam (54)
  • anchapin (40)
  • crutan (36)
  • Myoldmopar (34)

Top Issue Labels

  • P-1 (729)
  • Feature (360)
  • P-2 (263)
  • Bug (248)
  • Impact-2 (198)
  • stale (187)
  • P-3 (182)
  • No Longer Valid (176)
  • Mapping (169)
  • Enhancement (149)
  • Matching/Pairing (149)
  • BPS (140)
  • Data Import (126)
  • Impact-1 (118)
  • Inventory List (104)
  • Impact-3 (104)
  • Filtering (71)
  • Needs Design (70)
  • GUI (68)
  • Data Quality Checking (64)
  • Maintenance (63)
  • Label Feature (62)
  • 2024 Q2 Bug Fixes (60)
  • Include Before Closure (60)
  • Data Analysis (59)
  • Testing Question (56)
  • Inventory Detail (51)
  • Verify No Longer Relevant (46)
  • Reporting (45)
  • Project Tracking (40)

Top Pull Request Labels

  • Bug (448)
  • Enhancement (304)
  • Feature (235)
  • Maintenance (201)
  • dependencies (85)
  • Acct. Hierarchy (75)
  • Do not publish (70)
  • DO NOT MERGE (56)
  • python (39)
  • Performance (19)
  • Documentation (16)
  • javascript (13)
  • Army (8)
  • angular (5)
  • API (5)
  • Filtering (3)
  • Testing Question (3)
  • Project Tracking (3)
  • BPS (3)
  • SCEP (3)
  • P-1 (2)
  • P-3 (2)
  • ESTCP (2)
  • Backend work (2)
  • 2024 Q2 Bug Fixes (2)
  • github_actions (2)
  • Clearly Energy (2)
  • Audit Template (2)
  • BEAM (2)
  • Label Feature (2)

Package metadata

proxy.golang.org: github.com/seed-platform/seed

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/seed-platform/seed#section-documentation
  • Licenses: other
  • Latest release: v3.4.1+incompatible (published about 2 months ago)
  • Last Synced: 2026-11-08T08:40:52.325Z (3 days ago)
  • Versions: 103
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 6.999%
    • Average: 8.173%
    • Dependent repos count: 9.346%

Dependencies

.github/workflows/ci.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
  • actions/setup-python v4 composite
  • docker/setup-buildx-action v2 composite
.github/workflows/pr-labels.yml actions
  • mheap/github-action-required-labels v1 composite
.github/workflows/publish.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • docker/build-push-action v3 composite
  • docker/login-action v2 composite
  • docker/setup-buildx-action v2 composite
Dockerfile docker
  • alpine 3.14 build
docker/backup_k8s/Dockerfile docker
  • ubuntu 20.04 build
docker-compose.build.yml docker
  • redis 5.0.1
  • seedplatform/oep 2.0
  • seedplatform/seed latest
  • timescale/timescaledb-postgis latest-pg12
docker-compose.dev.yml docker
  • seedplatform/seed develop
docker-compose.local.yml docker
  • 127.0.0.1 5000/postgres-seed
  • 127.0.0.1 5000/redis
  • 127.0.0.1 5000/seed
docker-compose.yml docker
  • redis 5.0.1
  • seedplatform/seed latest
  • timescale/timescaledb-postgis latest-pg12
package.json npm
  • autoprefixer ~9.7.6 development
  • eslint ~6.8.0 development
  • eslint-plugin-angular ~4.0.1 development
  • eslint-plugin-lodash ~7.1.0 development
  • eslint-plugin-protractor ~2.1.1 development
  • lodash ~4.17.15 development
  • postcss-cli ~7.1.1 development
  • protractor ~5.4.4 development
  • webdriver-manager ~12.1.7 development
pyproject.toml pypi
  • boto3 ~=1.43.50
  • brotli ==1.2.0
  • buildingid ==2.2.1
  • buildingsync-asset-extractor ==0.3.0
  • celery ==5.6.3
  • django ~=6.0.7
  • django-celery-beat ==2.9.0
  • django-compressor ==4.6.0
  • django-extensions ==4.1
  • django-filter ==26.1
  • django-model-utils ==5.0.0
  • django-pint ==1.0.4
  • django-post-office ==3.11.2
  • django-redis ==7.0.0
  • django-ses ==4.7.2
  • django-treebeard ==5.3.0
  • django-two-factor-auth [phonenumbers]==1.18.1
  • djangorestframework ==3.17.1
  • djangorestframework-simplejwt ==5.5.1
  • drf-nested-routers ==0.95.0
  • drf-yasg ==1.21.15
  • geojson ==3.3.0
  • hiredis ==3.4.0
  • hypercorn ==0.18.0
  • jellyfish ==1.2.1
  • lark ==1.3.1
  • markdown ==3.10.2
  • nameparser ==1.4.0
  • pandas <3
  • polling ==0.3.2
  • psycopg [binary]~=3.3.4
  • pyotp ==2.10.0
  • python-dateutil ==2.9.0.post0
  • pyyaml ==6.0.3
  • qrcode [pil]==8.2
  • requests ==2.34.2
  • seed-salesforce ==0.2.0
  • semantic-version ==2.10.0
  • sentry-sdk ==2.66.0
  • shapely ==2.1.2
  • simple-salesforce ==1.12.10
  • street-address ==0.4.0
  • tblib ==3.2.2
  • tkbl ==0.7
  • usaddress ==0.5.16
  • xlrd <2.0.0
  • xlsxwriter ==3.2.9
  • xmlschema ==4.3.2
  • xmltodict ==1.0.4
docker-compose.pgupgrade.yml docker
  • timescale/timescaledb-ha pg13.14-ts2.14.2-oss
  • timescale/timescaledb-ha pg13.11-ts2.11.0-all
  • timescale/timescaledb-ha pg13.12-ts2.11.2-all-oss
  • timescale/timescaledb-ha pg14.11-ts2.14.2-all-oss
  • timescale/timescaledb-ha pg14.8-ts2.11.0-oss
  • timescale/timescaledb-ha pg16.2-ts2.14.2-os
.github/workflows/copilot-setup-steps.yml actions
  • actions/checkout v7 composite
  • actions/setup-node v7 composite
  • docker/setup-buildx-action v4 composite
  • pnpm/action-setup v6 composite
pnpm-lock.yaml npm
  • 382 dependencies
pnpm-workspace.yaml npm

Score: -Infinity