Science Score: 44.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.2%) to scientific vocabulary
Last synced: 8 months ago · JSON representation ·

Repository

Basic Info
Statistics
  • Stars: 0
  • Watchers: 9
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

Project Template

CalVer GitHub Release pre-commit.ci status

The template is a standardized, but flexible project and documentation structure of folders and files for sharing your data science work.

Inspired by literate programming, maintained by the Development Data Group and built as GitHub template repository, the template contains:

  • README, CODEOFCONDUCT, CONTRIBUTING templates

    README files are important and often neglected. The files should inform anyone about the first steps to use, learn and contribute to your project.

  • CITATION.cff

    Embracing CFF aligns with best practices for reproducible research and software development. By adhering to established standards for documenting project dependencies and citations, we demonstrate our commitment to quality, transparency, and integrity in our work.

  • LICENSE

    The LICENSE is a document that determines what others can and cannot do with contents of the repository. If no license is present, no one has permission to use and/or modify your code. The template is licensed under the Mozilla Public License. And so will projects generated from it.

  • docs/

    Documentation is often never prioritized until last minute. The template aims to revert the malpractice by setting up the documentation as an integral part, inspired by literate programming. With the power of Jupyter Book, data practitioners have a way to share Jupyter notebooks on GitHub Pages in a standardized and effortless way.

  • docs/bibliography.bib

    A bibliography using the BibTeX format. Use this file to include and cite your project's bibliography. See also Citations and bibliographies.

  • data/

    Placeholder folder for data. Data is immutable. By default, the data folder is present but ignored from version control, in order to prevent files of being mistakenly versioned in the code repository.

  • src/

    Placeholder folder for source code. If Python, it is recommended the package is made pip-installable.

  • notebooks/

    Placeholder folder for Jupyter notebooks. Markdown files and Jupyter notebooks can be added to docs/_toc.yml (Table of Contents) to compose the documentation.

  • .pre-commit-config.yml

    Using pre-commit offers a significant advantage in streamlining the development process by enforcing code standards and reducing errors before code reaches the review stage or is committed to the repository. It automates the execution of various checks, such as syntax errors, code formatting, and ensuring compliance with coding standards, which saves time and improves code quality.

  • GitHub Actions and Dependabot

    GitHub Actions and Dependabot are two powerful features provided by GitHub to automate and secure software development workflows, making it easier for developers to maintain high-quality and safe codebases.

  • GitHub Issues and Pull Requests GitHub

    GitHub allows to customize how issues and pull requests are presented to the public. Custom templates encourage collaboration and maintainability.

```{important} With flexibility comes great responsibility. The template makes a few opiniated choices for the structure and code/documentation management of a project for what we envision to be most cases. However, even the best of the templates would never be perfect for the universe of cases out there. All in all, the template aims to encourage teams to start thinking and assimilate collaborative coding, documentation​, enginerring, reproducibility​ and best practices as an integral part of the project. In a standardized way.

In this spirit, if the template is not for you or in case you have feedback, please consider opening an issue or submitting a pull request to share your ideas and suggestions. Your contributions would be appreciated immensely. ```

Benefits

Project templates on GitHub are essential for streamlining the data science and collaboration processes, and they offer several key benefits:

  • 🛠️ Consistency and Best Practices: Project templates encourage consistency in project structure, coding standards, and best practices. They provide a standardized starting point, ensuring that all team members follow the same guidelines and reduce the risk of introducing errors.

  • Time and Effort Savings: Templates save time by eliminating the need to set up a project from scratch. Developers can quickly start working on their projects without the overhead of configuring the initial project structure, dependencies, or workflows.

  • 🚀 Faster Onboarding: New team members or contributors can easily get up to speed by using project templates. It simplifies the onboarding process, allowing them to understand the project structure and development practices more quickly.

  • 🎨 Customization and Adaptability: GitHub project templates can be customized to suit the specific needs of different types of projects or organizations. They serve as a foundation that can be adapted to meet unique requirements.

  • 🤝 Community Engagement: Open-source projects can attract more contributors when they provide accessible project templates. These templates facilitate contributions by reducing the barriers to entry for potential collaborators.

  • 🔄 Version Control Integration: GitHub project templates are tightly integrated with Git version control. This makes it easier to manage changes, collaborate, and track the history of project configurations.

  • 📖 Documentation and Guidance: Templates often include documentation and guidance to help developers understand the project's structure and how to get started. This can include README files, code comments, and links to relevant resources.

  • 🔍 Discoverability: Templates are discoverable on GitHub, making it easy for developers to find and use project templates for their preferred programming languages, frameworks, and tools. This helps build a supportive ecosystem.

  • ✍️ Continual Improvement: Project templates can evolve and improve over time as best practices, technology, and requirements change. This ensures that projects remain up to date and maintainable.

In summary, GitHub project templates are valuable resources that enhance project management, development practices, and collaboration. They promote consistency, efficiency, and quality in software development, whether for individual projects, open-source contributions, or within organizational contexts.

Usage

Getting Started

{margin} ✨ Can't see the <span style="color:#3EACAD">template</span> ? Please ensure you are logged in on [GitHub](https://github.com) and have permissions to create a repository.

  1. Create new repository from template

    The template is a GitHub template repository; in other words, you can generate a new GitHub repository with the same files and folders to use as the starting point for your project.

    🌟 Create new repository from template

    ```{figure} docs/images/github-template.png


    ```

    Now, give your repository a name, choose the visibility (Public or Private) and click Create repository from template.

    ```{figure} docs/images/github-template-create.png


    ```

    Voilà! The repository has been created with the same files and folders of the template.

    {seealso} For additional information, see the [GitHub documentation](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template)

  2. Enable GitHub Actions and GitHub Pages

    After creating the repository from the template, you will have to enable GitHub Actions and GitHub Pages to allow the Jupyter Book to be built and published.

    To activate the workflow, please enable GitHub Actions by going to the repository's settings (Settings > Actions > General), and selecting read and write permissions as shown below.

    ```{figure} docs/images/github-template-action-enable.png



    ```

    To publish, please enable GitHub Pages by going to the repository's settings (Settings > Pages), and selecting to deploy from the gh-pages branch.

    ```{figure} docs/images/github-template-pages.png


    ```

    On the next push to main, the Jupyter Book will be automatically built and published. You can check the progress on the Actions tab.

    ```{figure} docs/images/github-template-action.png


    ```

    {caution} The *documentation* can be published from either *public* and *private* repositories. If publishing private content, please remember to carefully select the content to be made public and to abide by your organization's Data Privacy Policy.

  3. Update configurations

    The template comes with a default docs/_config.yml Jupyter Book configuration file. Remember to update it to reflect your project's name and details.

    yaml repository: url: https://github.com/worldbank/template branch: main

{seealso} [Jupyter Book Configuration Reference](https://jupyterbook.org/en/stable/customize/config.html)

  1. Review and update README files

    The template comes with README files - including this README - that should provide anyone with the information about the first steps to use, learn and contribute to your project. Please replace and/or repurpose the files with instructions and detailed information about your project.

    • CODEOFCONDUCT
    • CONTRIBUTING
    • README
    • Issues and Pull Requests GitHub templates

    {seealso} [Awesome README](https://github.com/matiassingers/awesome-readme)

  2. Choose a license

    The template is licensed under the Mozilla Public License. A LICENSE is the document that guarantees the repository can be shared, modified and receive contributions. Otherwise, if no license is present, all rights are reserved.


Congratulations! You just created a beautiful home for your project. To access your project page, use (and share) the link as shown below.

🌟 https://<your-github-username>.github.io/<your-project-name>

For example, see this template as a live demo.

🌟 worldbank.github.io/template (Live Demo)

Adding Content

The template is created as a Jupyter Book - an open-source project to build beautiful, publication-quality books and documents from computational content. Let's see below how to add, execute and publish new content for your project.

Table of Contents

When ready to publish the documentation on GitHub Pages, all you need to do is edit the table of contents and add and/or update content you would like to display. Jupyter Book supports content written as Markdown, Jupyter notebooks and reStructuredText files and the docs/_toc.yml file controls the table of contents of your book.

The template comes with the table of contents below as an example.

```yaml

format: jb-book root: README

parts:

```

{seealso} [Jupyter Book Structure and organize content](https://jupyterbook.org/en/stable/basics/organize.html)

Dependencies

The next step is ensure your code is maintainable, reliable and reproducible by including any dependencies and requirements, such as packages, configurations, secrets (template) and additional instructions.

The template suggests to use conda (or mamba) as environment manager and, as conventional, the environment is controlled by the environment.yml file.

The environment.yml file is where you specify any packages available on the Anaconda repository as well as from the Anaconda Cloud (including conda-forge) to install for your project. Ensure to include the pinned version of packages required by your project (including by Jupyter notebooks).

yaml channels: - conda-forge - defaults dependencies: - python=3.9 - bokeh=2.4.3 - pandas=1.4.3 - pip: - requests==2.28.1

To (re)create the environment on your installation of conda via anaconda, miniconda or preferably miniforge, you only need to pass the environment.yml file, which will install requirements and guarantee that whoever uses your code has the necessary packages (and correct versions). By default, the template uses Python 3.9.

shell conda env create -n <your-environment-name> -f environment.yml

In case your project uses Python, it is strongly recommended to distribute it as a package.

{important} The <span style="color:#3EACAD">template</span> contains an example - the [datalab](https://github.com/worldbank/template/tree/main/src/datalab) Python package - and will automatically find and install any `src` packages as long as `pyproject.yml` is kept up-to-date.

{seealso} [Conda Managing Environments](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)

Jupyter Notebooks

Jupyter Notebooks can be beautifully rendered and downloaded from your book. By default, the template will render any files listed on the table of contents that have a notebook structure. The template comes with a Jupyter notebook example, notebooks/world-bank-api.ipynb, to illustrate.

{important} Optionally, [Jupyter Book](https://jupyterbook.org) can execute notebooks during the build (on GitHub) and display **code outputs** and **interactive visualizations** as part of the *documentation* on the fly. In this case, Jupyter notebooks will be executed by [GitHub Actions](https://github.com/features/actions) during build on each commit to the `main` branch. Thus, it is important to include all [requirements and dependencies](#dependencies) in the repository. In case you would like to ignore a notebook, you can [exclude files from execution](https://jupyterbook.org/en/stable/content/execute.html#exclude-files-from-execution).

{seealso} [Jupyter Book Write executable content](https://jupyterbook.org/en/stable/content/executable/index.html)

Code of Conduct

The template maintains a Code of Conduct to ensure an inclusive and respectful environment for everyone. Please adhere to it in all interactions within our community.

License

The template is licensed under the Mozilla Public License. Remember to replace the license if necessary. If open source, choose an open source license.

Owner

  • Name: World Bank Group
  • Login: worldbank
  • Kind: organization
  • Email: github@worldbank.org

World Bank Repository for Data Products and tools. Content does not necessarily represent official World Bank Group positions, policies, recommendations, etc.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "Country borders or names do not necessarily reflect the World Bank Group’s official position. All maps are for illustrative purposes and do not imply the expression of any opinion on the part of the World Bank, concerning the legal status of any country or territory or concerning the delimitation of frontiers or boundaries."
title: "World Bank Data Lab Project Template"
authors:
  - affiliation: World Bank
    family-names: Stefanini Vicente
    given-names: Gabriel
    orcid: https://orcid.org/0000-0001-6530-3780
keywords:
  - Open Science
repository-code: https://github.com/worldbank/template/tree/main

GitHub Events

Total
Last Year

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 2
  • Total Committers: 2
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.5
Past Year
  • Commits: 2
  • Committers: 2
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.5
Top Committers
Name Email Commits
msoltadeo m****o@g****m 1
SahitiSarva 5****a 1

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 0
  • Total pull requests: 3
  • Average time to close issues: N/A
  • Average time to close pull requests: about 11 hours
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.33
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 0
  • Pull requests: 3
  • Average time to close issues: N/A
  • Average time to close pull requests: about 11 hours
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.33
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
Pull Request Authors
  • dependabot[bot] (4)
  • msoltadeo (2)
Top Labels
Issue Labels
Pull Request Labels
dependencies (4) github_actions (2)

Dependencies

.github/workflows/gh-pages.yml actions
  • actions/checkout v4 composite
  • actions/deploy-pages v4 composite
  • actions/setup-python v5 composite
  • actions/upload-pages-artifact v3 composite
.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • pypa/gh-action-pypi-publish release/v1 composite
  • sigstore/gh-action-sigstore-python v1.2.3 composite
notebooks/environment.yml pypi
  • requests ==2.28.1
pyproject.toml pypi
  • pandas >=2
  • pycountry >=22.3.5
  • requests >=2.28.1