https://github.com/centerforthebuiltenvironment/comfort-dash

Revision of the CBE Comfort Tool using Dash.

https://github.com/centerforthebuiltenvironment/comfort-dash

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Revision of the CBE Comfort Tool using Dash.

Basic Info
  • Host: GitHub
  • Owner: CenterForTheBuiltEnvironment
  • Language: Python
  • Default Branch: main
  • Size: 1.02 MB
Statistics
  • Stars: 5
  • Watchers: 5
  • Forks: 12
  • Open Issues: 2
  • Releases: 0
Created almost 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme

README.md


Logo

CBE Thermal Comfort Tool

This is the official repository for the CBE Thermal Comfort Tool

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

This is the official repository for the CBE Thermal Comfort Tool. The CBE Thermal Comfort Tool is a web application to calculate and visualize thermal comfort indices.

(back to top)

Built With

Python

(back to top)

Getting Started

To get a local copy up and running follow these simple steps. Clone the repository and run the following commands:

bash pipenv install pipenv shell python app.py

Then you can run the application using the following command:

bash python app.py

(back to top)

Usage

(back to top)

Roadmap

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature') using commit conventions.
  4. Bump the version bump-my-version bump patch
  5. Push to the Branch (git push origin feature/AmazingFeature)
  6. Open a Pull Request

Test the application

I wrote some tests with playwright to make sure the application is displaying properly. All the tests are located in the tests folder.

In order to run the tests, you need to have the application running locally.

bash python app.py

You will also need to install the playwright dependencies, more info here:

bash playwright install

Test generation

Detailed guide on how to generate tests can be found here

playwright codegen http://localhost:9090

If you want to generate tests for a specific device, you can run the following command:

playwright codegen --device="iPhone 13" http://localhost:9090

Deploy the application

The application is deployed automatically using a GitHub action. If you want to deploy the application manually, you can run the following command:

gcloud components update pipenv requirements > requirements.txt pipenv requirements --dev > dev-requirements.txt gcloud config set account federicotartarini@gmail.com python -m pytest tests/test_public_urls.py --base-url http://0.0.0.0:9090 python -m pytest --numprocesses 3 --base-url http://0.0.0.0:9090 python -m pytest --numprocesses 3 --base-url https://comfort-tool-v2-test-6ncu37myea-uc.a.run.app gcloud builds submit --project=comfort-327718 --substitutions=_REPO_NAME="comfort-tool-v2-test" gcloud builds submit --project=comfort-327718 --substitutions=_REPO_NAME="comfort-tool-v2"

Kill application running locally

lsof -i :9090 kill -9 <PID>

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Federico Tartarini - federicotartarini@gmail.com

Project Link: CenterForTheBuiltEnvironment/comfort-dash

(back to top)

Contributors

(back to top)

Teams & responsibilities

| Group | Task | Team | Main focus | |----------|-----------------------|--------------------------------------------------|------------------------------------------------------| | - | Admin | Revolving, weekly | Meetings & communication (e.g. notes, agenda) | | A | Front-End | Ruixin Wu, Jiaming Zheng, Xuhui Wang, Zhou Tong | Front-End design and Dash implementation | | A | Visuals | Jiadong Zhang, Yan Zhang | Develop plots for main UI | | B | Data Management | Shiyi Shen, Haozhen Li | Manage use of data within app | | B | Back-End | Yinyan Liu, Junan Lu, Jinjia Bai, Chao Jiang | Develop app back-end | | - | Testing | Haozhen Li | Writing tests for the app |

Owner

  • Name: CenterForTheBuiltEnvironment
  • Login: CenterForTheBuiltEnvironment
  • Kind: organization
  • Location: Berkeley, CA

GitHub Events

Total
  • Issues event: 1
  • Watch event: 3
  • Issue comment event: 11
  • Push event: 7
  • Pull request review event: 23
  • Pull request event: 33
Last Year
  • Issues event: 1
  • Watch event: 3
  • Issue comment event: 11
  • Push event: 7
  • Pull request review event: 23
  • Pull request event: 33

Dependencies

Dockerfile docker
  • python 3.11-slim build
Pipfile pypi
  • black * develop
  • bump-my-version * develop
  • pytest-playwright * develop
  • pytest-xdist * develop
  • dash *
  • dash-bootstrap-components *
  • dash-iconify *
  • dash-mantine-components *
  • icecream *
  • numpy *
  • pandas *
  • psychrolib *
  • pydantic *
  • pythermalcomfort *
Pipfile.lock pypi
  • annotated-types ==0.7.0 develop
  • black ==24.8.0 develop
  • bracex ==2.5 develop
  • bump-my-version ==0.25.4 develop
  • certifi ==2024.7.4 develop
  • charset-normalizer ==3.3.2 develop
  • click ==8.1.7 develop
  • execnet ==2.1.1 develop
  • greenlet ==3.0.3 develop
  • idna ==3.7 develop
  • iniconfig ==2.0.0 develop
  • markdown-it-py ==3.0.0 develop
  • mdurl ==0.1.2 develop
  • mypy-extensions ==1.0.0 develop
  • packaging ==24.1 develop
  • pathspec ==0.12.1 develop
  • platformdirs ==4.2.2 develop
  • playwright ==1.46.0 develop
  • pluggy ==1.5.0 develop
  • prompt-toolkit ==3.0.36 develop
  • pydantic ==2.8.2 develop
  • pydantic-core ==2.20.1 develop
  • pydantic-settings ==2.4.0 develop
  • pyee ==11.1.0 develop
  • pygments ==2.18.0 develop
  • pytest ==8.3.2 develop
  • pytest-base-url ==2.1.0 develop
  • pytest-playwright ==0.5.1 develop
  • pytest-xdist ==3.6.1 develop
  • python-dotenv ==1.0.1 develop
  • python-slugify ==8.0.4 develop
  • questionary ==2.0.1 develop
  • requests ==2.32.3 develop
  • rich ==13.7.1 develop
  • rich-click ==1.8.3 develop
  • text-unidecode ==1.3 develop
  • tomlkit ==0.13.2 develop
  • typing-extensions ==4.12.2 develop
  • urllib3 ==2.2.2 develop
  • wcmatch ==9.0 develop
  • wcwidth ==0.2.13 develop
  • annotated-types ==0.7.0
  • asttokens ==2.4.1
  • blinker ==1.8.2
  • certifi ==2024.7.4
  • charset-normalizer ==3.3.2
  • click ==8.1.7
  • colorama ==0.4.6
  • dash ==2.17.1
  • dash-bootstrap-components ==1.6.0
  • dash-core-components ==2.0.0
  • dash-html-components ==2.0.0
  • dash-iconify ==0.1.2
  • dash-mantine-components ==0.14.4
  • dash-table ==5.0.0
  • executing ==2.0.1
  • flask ==3.0.3
  • icecream ==2.1.3
  • idna ==3.7
  • importlib-metadata ==8.2.0
  • itsdangerous ==2.2.0
  • jinja2 ==3.1.4
  • llvmlite ==0.43.0
  • markupsafe ==2.1.5
  • nest-asyncio ==1.6.0
  • numba ==0.60.0
  • numpy ==2.0.1
  • packaging ==24.1
  • pandas ==2.2.2
  • plotly ==5.23.0
  • psychrolib ==2.5.0
  • pydantic ==2.8.2
  • pydantic-core ==2.20.1
  • pygments ==2.18.0
  • pythermalcomfort ==2.10.0
  • python-dateutil ==2.9.0.post0
  • pytz ==2024.1
  • requests ==2.32.3
  • retrying ==1.3.4
  • scipy ==1.14.0
  • setuptools ==72.2.0
  • six ==1.16.0
  • tenacity ==9.0.0
  • typing-extensions ==4.12.2
  • tzdata ==2024.1
  • urllib3 ==2.2.2
  • werkzeug ==3.0.3
  • zipp ==3.20.0
dev-requirements.txt pypi
  • annotated-types ==0.7.0 development
  • asttokens ==2.4.1 development
  • black ==24.8.0 development
  • blinker ==1.8.2 development
  • bracex ==2.5 development
  • bump-my-version ==0.25.4 development
  • certifi ==2024.7.4 development
  • charset-normalizer ==3.3.2 development
  • click ==8.1.7 development
  • colorama ==0.4.6 development
  • dash ==2.17.1 development
  • dash-bootstrap-components ==1.6.0 development
  • dash-core-components ==2.0.0 development
  • dash-html-components ==2.0.0 development
  • dash-iconify ==0.1.2 development
  • dash-mantine-components ==0.14.4 development
  • dash-table ==5.0.0 development
  • execnet ==2.1.1 development
  • executing ==2.0.1 development
  • flask ==3.0.3 development
  • greenlet ==3.0.3 development
  • icecream ==2.1.3 development
  • idna ==3.7 development
  • importlib-metadata ==8.2.0 development
  • iniconfig ==2.0.0 development
  • itsdangerous ==2.2.0 development
  • jinja2 ==3.1.4 development
  • llvmlite ==0.43.0 development
  • markdown-it-py ==3.0.0 development
  • markupsafe ==2.1.5 development
  • mdurl ==0.1.2 development
  • mypy-extensions ==1.0.0 development
  • nest-asyncio ==1.6.0 development
  • numba ==0.60.0 development
  • numpy ==2.0.1 development
  • packaging ==24.1 development
  • pandas ==2.2.2 development
  • pathspec ==0.12.1 development
  • platformdirs ==4.2.2 development
  • playwright ==1.46.0 development
  • plotly ==5.23.0 development
  • pluggy ==1.5.0 development
  • prompt-toolkit ==3.0.36 development
  • psychrolib ==2.5.0 development
  • pydantic ==2.8.2 development
  • pydantic-core ==2.20.1 development
  • pydantic-settings ==2.4.0 development
  • pyee ==11.1.0 development
  • pygments ==2.18.0 development
  • pytest ==8.3.2 development
  • pytest-base-url ==2.1.0 development
  • pytest-playwright ==0.5.1 development
  • pytest-xdist ==3.6.1 development
  • pythermalcomfort ==2.10.0 development
  • python-dateutil ==2.9.0.post0 development
  • python-dotenv ==1.0.1 development
  • python-slugify ==8.0.4 development
  • pytz ==2024.1 development
  • questionary ==2.0.1 development
  • requests ==2.32.3 development
  • retrying ==1.3.4 development
  • rich ==13.7.1 development
  • rich-click ==1.8.3 development
  • scipy ==1.14.0 development
  • setuptools ==72.2.0 development
  • six ==1.16.0 development
  • tenacity ==9.0.0 development
  • text-unidecode ==1.3 development
  • tomlkit ==0.13.2 development
  • typing-extensions ==4.12.2 development
  • tzdata ==2024.1 development
  • urllib3 ==2.2.2 development
  • wcmatch ==9.0 development
  • wcwidth ==0.2.13 development
  • werkzeug ==3.0.3 development
  • zipp ==3.20.0 development
requirements.txt pypi
  • asttokens ==2.4.1
  • blinker ==1.8.2
  • certifi ==2024.7.4
  • charset-normalizer ==3.3.2
  • click ==8.1.7
  • colorama ==0.4.6
  • dash ==2.17.1
  • dash-bootstrap-components ==1.6.0
  • dash-core-components ==2.0.0
  • dash-html-components ==2.0.0
  • dash-iconify ==0.1.2
  • dash-mantine-components ==0.14.4
  • dash-table ==5.0.0
  • executing ==2.0.1
  • flask ==3.0.3
  • icecream ==2.1.3
  • idna ==3.7
  • importlib-metadata ==8.2.0
  • itsdangerous ==2.2.0
  • jinja2 ==3.1.4
  • llvmlite ==0.43.0
  • markupsafe ==2.1.5
  • nest-asyncio ==1.6.0
  • numba ==0.60.0
  • numpy ==2.0.1
  • packaging ==24.1
  • pandas ==2.2.2
  • plotly ==5.23.0
  • psychrolib ==2.5.0
  • pygments ==2.18.0
  • pythermalcomfort ==2.10.0
  • python-dateutil ==2.9.0.post0
  • pytz ==2024.1
  • requests ==2.32.3
  • retrying ==1.3.4
  • scipy ==1.14.0
  • setuptools ==72.2.0
  • six ==1.16.0
  • tenacity ==9.0.0
  • typing-extensions ==4.12.2
  • tzdata ==2024.1
  • urllib3 ==2.2.2
  • werkzeug ==3.0.3
  • zipp ==3.20.0