diff --git a/.github/workflows/data-processing.yml b/.github/workflows/data-processing.yml index 97eaa9041a7..3a62e04ff24 100644 --- a/.github/workflows/data-processing.yml +++ b/.github/workflows/data-processing.yml @@ -215,6 +215,15 @@ jobs: continue-on-error: true # Continue even if this step fails run: python3 scripts/build_featured_data.py + #======================================== + # Build Get Involved projects list from the published Google Sheet + # Falls back to scripts/get_involved/projects.csv if the sheet is unreachable + #======================================== + - name: Build Get Involved data + id: get-involved + continue-on-error: true + run: python3 scripts/build_get_involved.py + #======================================== # Process and organize curated resources data #======================================== @@ -483,6 +492,7 @@ jobs: cp data/ga_data.json /tmp/generated-resources/ga_data.json || true cp data/featured_resources.json /tmp/generated-resources/featured_resources.json || true cp data/pub_cards.json /tmp/generated-resources/pub_cards.json || true + cp data/get_involved_projects.json /tmp/generated-resources/get_involved_projects.json || true # Copy FReD citation if it exists if [ -f static/data/fred_citation.txt ]; then @@ -558,6 +568,9 @@ jobs: if [ -f /tmp/generated-resources/pub_cards.json ]; then cp /tmp/generated-resources/pub_cards.json data/pub_cards.json fi + if [ -f /tmp/generated-resources/get_involved_projects.json ]; then + cp /tmp/generated-resources/get_involved_projects.json data/get_involved_projects.json + fi if [ -f /tmp/generated-resources/contributors_cache.csv ]; then mkdir -p scripts/forrt_contribs cp /tmp/generated-resources/contributors_cache.csv scripts/forrt_contribs/ @@ -590,6 +603,7 @@ jobs: git add data/ga_data.json 2>/dev/null || true git add data/featured_resources.json 2>/dev/null || true git add data/pub_cards.json 2>/dev/null || true + git add data/get_involved_projects.json 2>/dev/null || true git add static/data/fred_citation.txt 2>/dev/null || true git add content/replication-hub/flora/_index.md 2>/dev/null || true git add data/summaries.json 2>/dev/null || true @@ -730,6 +744,13 @@ jobs: python3 scripts/create_workflow_failure_issue.py "FReD Citation Update" "The FReD citation update step failed during execution." "$WORKFLOW_RUN_URL" || echo "Failed to create issue for FReD Citation" fi + # Get Involved data + if [ "${{ steps.get-involved.outcome }}" == "failure" ]; then + echo "❌ Get Involved data build failed" + FAILURES_FOUND=true + python3 scripts/create_workflow_failure_issue.py "Get Involved Data Build" "The Get Involved projects list build step failed. Check that the published Google Sheet (FORRT — Get Involved Projects) is still shared with anyone-with-link." "$WORKFLOW_RUN_URL" || echo "Failed to create issue for Get Involved" + fi + # Google Scholar if [ "${{ steps.google-scholar.outcome }}" == "failure" ]; then echo "❌ Google Scholar script failed" diff --git a/content/about/get-involved/about.md b/content/about/get-involved/about.md index 93202b5e102..164cda946a6 100644 --- a/content/about/get-involved/about.md +++ b/content/about/get-involved/about.md @@ -53,8 +53,6 @@ classtitle = "" +++ -
- If you are looking to a deep dive into FORRT, there are two main ways to learn about us. If you are interested in learning about what we do, check out our [**Publications page**](/publications). If you want to learn about the intricacies of the FORRT organization, beyond what you can learn from the several pages in our *About FORRT* pages, and before [joining our Slack](https://join.slack.com/t/forrt/shared_invite/zt-alobr3z7-NOR0mTBfD1vKXn9qlOKqaQ), we prepared a document for you: [**Getting Started with FORRT**](https://docs.google.com/document/d/17ECRs6J8spO3CU6siheGL8weQ-TzdyAUpXIiIE8cUeI). It is organized in terms of involvement with the FORRT organization. * In part (1), we briefly describe general information about FORRT, its Slack channels and community, and provide links to resources; @@ -68,5 +66,3 @@ Check it out! [***"Getting Started with FORRT"***](https://docs.google.com/document/d/e/2PACX-1vR_OKOxDlrbPcXn6SZLYlq19139ofcYDInBu9E392jWG5yzbp2VjF7E1_fwtzTz4Wxo9i4ddHZTbHfT/pub) {{% /alert %}} - -
diff --git a/content/about/get-involved/get-involved.md b/content/about/get-involved/get-involved.md index 6f4cd1d65d6..7616406b517 100644 --- a/content/about/get-involved/get-involved.md +++ b/content/about/get-involved/get-involved.md @@ -1,5 +1,4 @@ +++ -# A Skills section created with the Featurette widget. widget = "blank" # See https://sourcethemes.com/academic/docs/page-builder/ headless = true # This file represents a page section. active = true # Activate this widget? true/false @@ -10,61 +9,18 @@ subtitle = """*Join the movement for better education* --- """ - -# [[feature]] -# #icon = "slack" -# #icon_pack = "fab" -# img = "megaphone.webp" -# name = "Spread the Word" -# description = "Better Education is for everyone. Help us spread the word by joining our [open Slack channel](https://join.slack.com/t/forrt/# shared_invite/enQtODMwODI0OTk4ODgzLTM0ZTQ3NDk5MzA1ZjBmNWJjYTVlN2Y2YTk0ZTJhYTY5NDliMDYzMjg2MWE0ZDRhOTY0ZDY3OTRlNDA4ODQ3NjQ) and invite your friends # and colleagues to be part of our community." -# -# [[feature]] -# # icon = "users" -# # icon_pack = "fas" -# img = "teamwork.webp" -# name = "Join Our Team" -# description = "Everything we develop and produce is in the open. You can join our team [on GitHub](https://github.com/flavioazevedo/FORRT). If you # want to become an active contributors [email us](mailto:info@forrt.org)." -# -# [[feature]] -# # icon = "handshake" -# # icon_pack = "fas" -# img = "partner.webp" -# name = "Become a Partner" -# description = "We have three different partner levels (Core, Strategic and Institutional) that help us to develop the principles enshrined in # FORRT. If you want to become a partner [email us](mailto:info@forrt.orgm)." - -# Call to action links (optional). -# Display link(s) by specifying a URL and label below. Icon is optional for `[cta]`. -# Remove a link/note by deleting a cta/note block. -# [cta] -# url = "/getinvolved" -# label = ":rocket: Get involved now!" -# # icon_pack = "fas" -# # icon = "info" -# -# [cta_alt] -# url = "/getinvolved" -# label = "or view how you can help" -# -# # Note. An optional note to show underneath the links. -# # [cta_note] -# # label = 'Latest release' - -# Add/remove as many `[[feature]]` blocks below as you like. -# -# For available icons, see: https://sourcethemes.com/academic/docs/widgets/#icons - +[design] + columns = "1" [design.spacing] # Customize the section spacing. Order is top, right, bottom, left. padding = ["60px", "0", "60px", "0"] +++ -* As part of [FORRT's ***Replications & Reversals*** initiative](/reversals), Helena Hartmann, Alaah Aldoh, Zoran Pavlovic, Aleksandrina Skvortsova, Flavio Azevedo and others, are collecting *Replications and Reversals across the Social, Cognitive, and Behavioral Sciences*. As an open, crowd-sourced project, we are actively seeking collaborators wishing to contribute effects. If you want to learn more, [join the project's Slack channel](https://join.slack.com/t/forrt/shared_invite/enQtODMwODI0OTk4ODgzLTM0ZTQ3NDk5MzA1ZjBmNWJjYTVlN2Y2YTk0ZTJhYTY5NDliMDYzMjg2MWE0ZDRhOTY0ZDY3OTRlNDA4ODQ3NjQ), or email us at [reversals@forrt.org](mailto:reversals@forrt.org). - -* As part of [FORRT's ***Summaries*** initiative](/summaries), Tamara Kalandadze, Leticia Micheli, Mahmoud Elsherif, Flavio Azevedo and others are writing a manuscript on *Integrating Open Scholarship into Teaching and Mentoring: Introducing Community-Sourced Summaries of Open Scholarship literature*. As an open, crowd-sourced project, we are open to adding collaborators wishing to help us with manuscript writing and project management. If interested, please contact the authors via [the project's Slack channel](https://join.slack.com/t/forrt/shared_invite/enQtODMwODI0OTk4ODgzLTM0ZTQ3NDk5MzA1ZjBmNWJjYTVlN2Y2YTk0ZTJhYTY5NDliMDYzMjg2MWE0ZDRhOTY0ZDY3OTRlNDA4ODQ3NjQ), or email us at [summaries@forrt.org](mailto:summaries@forrt.org). - -* As part of [FORRT's ***Glossary*** initiative](/glossary), Sam Parsons, Flavio Azevedo, and others invite you to help us continue to improve this resource. We are interested in a wide range of contributions to improve existing definitions, extend the scope of the terms, as well as translating terms to improve accessibility. If interested, we have opened four live working documents (see [the landing page](https://docs.google.com/document/d/1BKzztg7srUeC_2Yn0b7cMbxp_vYMDlOnEYpxg_S2hWs/edit?usp=sharing) for instructions and links to working documents). Please read the instructions for contributors. We have prepared these to help guide constructive feedback and facilitate a smooth editorial process. You can also contact the authors via [the project's Slack channel](https://join.slack.com/t/forrt/shared_invite/enQtODMwODI0OTk4ODgzLTM0ZTQ3NDk5MzA1ZjBmNWJjYTVlN2Y2YTk0ZTJhYTY5NDliMDYzMjg2MWE0ZDRhOTY0ZDY3OTRlNDA4ODQ3NjQ), or email us at [glossary@forrt.org](mailto:glossary@forrt.org). - -* [FORRT's Team Neurodiversity](/neurodiversity) are working on a number of manuscripts, educational resources and public outreach materials. Topics include how open scholarship and neurodiversity can benefit each other; how participatory research links to open scholarship; tools and materials to improve inclusion of neurodivergent people in academia; and critical work around academic structures. They welcome both neurodivergent individuals and neurotypical allies, but particularly welcome individuals whose identities are underrepresented in the neurodiversity movement (including but not limited to Tourette's, speech and language differences, and acquired neurodivergence). You are welcome to join Team Neurodiversity to contribute to projects, to access the supportive spaces they are creating, or both. Please share questions or comments in [Team Neurodiversity's Slack channel](https://forrt.slack.com/archives/C02KYC2ANE4). +The projects below are some of the active initiatives where we are looking +for collaborators. Most projects coordinate on FORRT's +[Slack](https://join.slack.com/t/forrt/shared_invite/zt-alobr3z7-NOR0mTBfD1vKXn9qlOKqaQ) — +join the workspace, then follow the project link or email the contact below +to get involved. -* We are always looking for structural support to help us manage our social media, develop our website, and other important work which keeps FORRT moving! If you are interested, please [join the FORRT Slack](https://join.slack.com/t/forrt/shared_invite/zt-alobr3z7-NOR0mTBfD1vKXn9qlOKqaQ) and introduce yourself. \ No newline at end of file +{{< get_involved_projects >}} diff --git a/data/get_involved_projects.json b/data/get_involved_projects.json new file mode 100644 index 00000000000..85a46d43672 --- /dev/null +++ b/data/get_involved_projects.json @@ -0,0 +1,139 @@ +{ + "projects": [ + { + "order": 10, + "name": "FLoRA - FORRT Library of Replication and Reproduction Attempts", + "link": "/replication-hub/flora/", + "description": "FLoRA tracks attempts to repeatedly test published findings across the sciences and humanities. As an open, crowd-sourced project we are always looking for collaborators to help curate replications and reproductions and to put the data to use.", + "slack": "", + "contact_name": "Lukas Röseler", + "contact_email": "lukas.roeseler@uni-muenster.de" + }, + { + "order": 20, + "name": "Lighthouse", + "link": "", + "description": "The FORRT Robustness Lighthouse is building infrastructure to showcase the robustness and reproducibility of the evidence for key effects, and thus to support teaching and research alike. We welcome collaborators interested in metascience, data curation, and tool development.", + "slack": "", + "contact_name": "Lukas Röseler", + "contact_email": "lukas.roeseler@uni-muenster.de" + }, + { + "order": 30, + "name": "Best-Practice Guidelines for Psychology", + "link": "/best-practices-psychology/", + "description": "A community-driven initiative developing consensus-based best-practice guidelines for psychology that support the most stringent levels of the TOP Guidelines, covering practices such as preregistration, open data and open materials, with all outputs released under CC-BY for adaptation by other disciplines. Researchers, journals, funders and societies are invited to take part in hackathons, consensus discussions and endorsement activities throughout 2026–2028.", + "slack": "", + "contact_name": "Lisa Spitzer", + "contact_email": "ls@leibniz-psychology.org" + }, + { + "order": 40, + "name": "Re-SearchTerms", + "link": "/apps/re-searchterms.html", + "description": "Re-SearchTerms is a Shiny app that helps researchers and educators discover open-science terms and their various definitions. We welcome contributors to help expand the database and refine the interface.", + "slack": "", + "contact_name": "Anna Leung", + "contact_email": "leung.yi.lmu@gmail.com" + }, + { + "order": 50, + "name": "Mapping Open Science Initiatives", + "link": "/mapping_os/", + "description": "A global effort to systematically identify, map, and connect Open Science organisations across disciplines and regions. Volunteers help with desk research, taxonomy work, and visualisation.", + "slack": "", + "contact_name": "Flavio Azevedo", + "contact_email": "" + }, + { + "order": 60, + "name": "Team Credit", + "link": "", + "description": "Team Credit ensures all contributions to FORRT projects are accurately and appropriately recognised, developing tools and policies that make community work visible.", + "slack": "https://forrt.slack.com/archives/C082GR7P04X", + "contact_name": "Ana Marinho", + "contact_email": "carolsmarinho.ana@gmail.com" + }, + { + "order": 70, + "name": "Team Outreach", + "link": "", + "description": "Team Outreach disseminates FORRT activities, initiatives and accomplishments through social media, newsletters, and community-facing materials.", + "slack": "https://forrt.slack.com/archives/C0184989HHC", + "contact_name": "Flavio Azevedo", + "contact_email": "" + }, + { + "order": 80, + "name": "Feedback", + "link": "", + "description": "Team Feedback is developing a community-maintained e-book mapping and critically evaluating feedback mechanisms across disciplines and regions.", + "slack": "", + "contact_name": "Thomas Rhys-Evans", + "contact_email": "" + }, + { + "order": 90, + "name": "OS Games Portal", + "link": "/open-research-games-portal/", + "description": "A crowdsourced, pedagogically informed database of games and interactive activities for teaching open and reproducible research. We welcome contributions of new games, evaluations, and playing tips.", + "slack": "", + "contact_name": "Iris Smal", + "contact_email": "games@forrt.org" + }, + { + "order": 100, + "name": "OS Storytelling", + "link": "", + "description": "OS Storytelling collects and shares lived experiences of open scholarship to make the human side of doing research visible. We welcome storytellers, editors, and collaborators interested in narrative methods.", + "slack": "", + "contact_name": "Iris Smal", + "contact_email": "" + }, + { + "order": 110, + "name": "Clusters & Curated Resources", + "link": "/clusters/", + "description": "FORRT has a vast collection of open scholarship readings (Clusters) and Curated Resources. Volunteers help review, tag, and recommend resources to make them discoverable and useful.", + "slack": "", + "contact_name": "Lukas Wallrich", + "contact_email": "l.wallrich@bbk.ac.uk" + }, + { + "order": 120, + "name": "JUST-OS Chatbot", + "link": "/just-os-chatbot/", + "description": "JUST-OS is an AI-based chatbot that helps researchers navigate Open Science resources. Collaborators are welcome for work on technical improvements and content curation.", + "slack": "", + "contact_name": "Lukas Wallrich", + "contact_email": "l.wallrich@bbk.ac.uk" + }, + { + "order": 130, + "name": "Team Website", + "link": "", + "description": "Team Website maintains and improves forrt.org, with content updates, new pages, accessibility, and ideas for showcasing FORRT's work.", + "slack": "https://forrt.slack.com/archives/C080N39QRJ9", + "contact_name": "Lukas Wallrich", + "contact_email": "l.wallrich@bbk.ac.uk" + }, + { + "order": 140, + "name": "Nowhere Lab", + "link": "/nowherelab/", + "description": "Nowhere Lab is an online community for people who would like the lab meeting experience but don't currently have one. Weekly meetings and an active Slack bring together members across all populated continents and career stages.", + "slack": "https://forrt.slack.com/archives/C0B0FKG3GH2", + "contact_name": "Priya Silverstein", + "contact_email": "priyasilverstein@gmail.com" + }, + { + "order": 150, + "name": "Team Curriculum", + "link": "", + "description": "Team Curriculum develops open and reproducible lecture materials and supports the integration of principled education into university curricula.", + "slack": "", + "contact_name": "Federica Stablum", + "contact_email": "" + } + ] +} diff --git a/layouts/shortcodes/get_involved_projects.html b/layouts/shortcodes/get_involved_projects.html new file mode 100644 index 00000000000..b9a3b301540 --- /dev/null +++ b/layouts/shortcodes/get_involved_projects.html @@ -0,0 +1,45 @@ +{{/* + Renders the Get Involved projects list from data/get_involved_projects.json. + Source CSV is in scripts/get_involved/projects.csv (mirrors a Google Sheet). + Regenerate with: python scripts/build_get_involved.py +*/}} +{{ $data := index site.Data "get_involved_projects" }} +{{ $projects := $data.projects }} + +
+ {{ range $projects }} +
+

+ {{ if .link }} + {{ .name }} + {{ else }} + {{ .name }} + {{ end }} +

+
+ {{ .description | markdownify }} +
+
+ {{ if .link }} + + Visit project + + {{ end }} + {{ if .slack }} + + Slack + + {{ end }} + {{ if .contact_email }} + + Email {{ .contact_name }} + + {{ else if .contact_name }} + + Contact: {{ .contact_name }} (reach out via Slack) + + {{ end }} +
+
+ {{ end }} +
diff --git a/scripts/build_get_involved.py b/scripts/build_get_involved.py new file mode 100644 index 00000000000..04d7cee3699 --- /dev/null +++ b/scripts/build_get_involved.py @@ -0,0 +1,137 @@ +#!/usr/bin/env python3 +"""Build data/get_involved_projects.json for the Get Involved page. + +The canonical source is a Google Sheet with the columns: + + order, display, name, link, description, slack, contact_name, contact_email + +The ``display`` column is a TRUE/FALSE toggle — only TRUE rows are rendered. +Empty / missing values default to TRUE so the column can be left blank for +all-on rows. + +Publish the sheet as CSV (File → Share → Publish to web → +Comma-separated values) and put the URL in the GET_INVOLVED_SHEET_CSV +environment variable, or paste it into PUBLISHED_SHEET_CSV_URL below. + +If the published URL is unset or unreachable, the script falls back to +``scripts/get_involved/projects.csv`` so the build still succeeds and +local edits are easy. + +Usage: + python scripts/build_get_involved.py +""" + +import csv +import io +import json +import os +import sys +import urllib.error +import urllib.request + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) +ROOT_DIR = os.path.dirname(SCRIPT_DIR) +LOCAL_CSV_PATH = os.path.join(SCRIPT_DIR, "get_involved", "projects.csv") +OUTPUT_PATH = os.path.join(ROOT_DIR, "data", "get_involved_projects.json") + +# Public CSV-export URL for the canonical sheet. The sheet is shared as +# "anyone with the link → Viewer", so the gviz/export endpoint works without +# needing the manual "Publish to web" step. Override with GET_INVOLVED_SHEET_CSV. +PUBLISHED_SHEET_CSV_URL = ( + "https://docs.google.com/spreadsheets/d/" + "1hoJYSxr_586hmBR00jqes4TeGofyl6qRgxkgL828Vx4/export?format=csv&gid=120740384" +) + +REQUIRED_COLUMNS = {"name", "description", "contact_name"} +ALL_COLUMNS = [ + "order", + "display", + "name", + "link", + "description", + "slack", + "contact_name", + "contact_email", +] +TRUTHY = {"true", "1", "yes", "y", "on", ""} +FALSY = {"false", "0", "no", "n", "off"} + + +def is_displayed(value: str) -> bool: + """Treat blank as TRUE; only an explicit FALSE-like value hides a row.""" + v = value.strip().lower() + if v in FALSY: + return False + if v in TRUTHY: + return True + print(f" WARNING: unrecognised display value {value!r}; treating as TRUE") + return True + + +def fetch_remote_csv(url: str) -> str: + req = urllib.request.Request(url, headers={"User-Agent": "FORRT-build/1.0"}) + with urllib.request.urlopen(req, timeout=30) as resp: + return resp.read().decode("utf-8") + + +def load_rows() -> list[dict]: + url = os.environ.get("GET_INVOLVED_SHEET_CSV") or PUBLISHED_SHEET_CSV_URL + text: str | None = None + if url: + try: + print(f"Fetching projects from {url}") + text = fetch_remote_csv(url) + except (urllib.error.URLError, TimeoutError) as exc: + print(f" WARNING: remote fetch failed ({exc}); falling back to local CSV") + if text is None: + print(f"Reading projects from {LOCAL_CSV_PATH}") + with open(LOCAL_CSV_PATH, encoding="utf-8") as f: + text = f.read() + reader = csv.DictReader(io.StringIO(text)) + if reader.fieldnames is None or not REQUIRED_COLUMNS.issubset(reader.fieldnames): + raise SystemExit( + f"CSV is missing required columns. Found: {reader.fieldnames}; " + f"need at least: {sorted(REQUIRED_COLUMNS)}" + ) + return [{col: (row.get(col) or "").strip() for col in ALL_COLUMNS} for row in reader] + + +def normalise(rows: list[dict]) -> list[dict]: + out: list[dict] = [] + for row in rows: + if not row["name"]: + continue + if not is_displayed(row["display"]): + continue + try: + order = int(row["order"]) if row["order"] else 9999 + except ValueError: + order = 9999 + out.append({ + "order": order, + "name": row["name"], + "link": row["link"], + "description": row["description"], + "slack": row["slack"], + "contact_name": row["contact_name"], + "contact_email": row["contact_email"], + }) + out.sort(key=lambda r: (r["order"], r["name"].lower())) + return out + + +def main() -> int: + rows = normalise(load_rows()) + if not rows: + print("ERROR: no project rows after parsing", file=sys.stderr) + return 1 + os.makedirs(os.path.dirname(OUTPUT_PATH), exist_ok=True) + with open(OUTPUT_PATH, "w", encoding="utf-8") as f: + json.dump({"projects": rows}, f, indent=2, ensure_ascii=False) + f.write("\n") + print(f"Wrote {len(rows)} projects to {OUTPUT_PATH}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/get_involved/projects.csv b/scripts/get_involved/projects.csv new file mode 100644 index 00000000000..2480b44e315 --- /dev/null +++ b/scripts/get_involved/projects.csv @@ -0,0 +1,16 @@ +order,display,name,link,description,slack,contact_name,contact_email +10,TRUE,FLoRA - FORRT Library of Replication and Reproduction Attempts,/replication-hub/flora/,"FLoRA tracks attempts to repeatedly test published findings across the sciences and humanities. As an open, crowd-sourced project we are always looking for collaborators to help curate replications and reproductions and to put the data to use.",,Lukas Röseler,lukas.roeseler@uni-muenster.de +20,TRUE,Lighthouse,,"The FORRT Robustness Lighthouse is building infrastructure to showcase the robustness and reproducibility of the evidence for key effects, and thus to support teaching and research alike. We welcome collaborators interested in metascience, data curation, and tool development.",,Lukas Röseler,lukas.roeseler@uni-muenster.de +30,TRUE,Best-Practice Guidelines for Psychology,/best-practices-psychology/,"A community-driven initiative developing consensus-based best-practice guidelines for psychology that support the most stringent levels of the TOP Guidelines, covering practices such as preregistration, open data and open materials, with all outputs released under CC-BY for adaptation by other disciplines. Researchers, journals, funders and societies are invited to take part in hackathons, consensus discussions and endorsement activities throughout 2026–2028.",,Lisa Spitzer,ls@leibniz-psychology.org +40,TRUE,Re-SearchTerms,/apps/re-searchterms.html,Re-SearchTerms is a Shiny app that helps researchers and educators discover open-science terms and their various definitions. We welcome contributors to help expand the database and refine the interface.,,Anna Leung,leung.yi.lmu@gmail.com +50,TRUE,Mapping Open Science Initiatives,/mapping_os/,"A global effort to systematically identify, map, and connect Open Science organisations across disciplines and regions. Volunteers help with desk research, taxonomy work, and visualisation.",,Flavio Azevedo, +60,TRUE,Team Credit,,"Team Credit ensures all contributions to FORRT projects are accurately and appropriately recognised, developing tools and policies that make community work visible.",https://forrt.slack.com/archives/C082GR7P04X,Ana Marinho,carolsmarinho.ana@gmail.com +70,TRUE,Team Outreach,,"Team Outreach disseminates FORRT activities, initiatives and accomplishments through social media, newsletters, and community-facing materials.",https://forrt.slack.com/archives/C0184989HHC,Flavio Azevedo, +80,TRUE,Feedback,,Team Feedback is developing a community-maintained e-book mapping and critically evaluating feedback mechanisms across disciplines and regions.,,Thomas Rhys-Evans, +90,TRUE,OS Games Portal,/open-research-games-portal/,"A crowdsourced, pedagogically informed database of games and interactive activities for teaching open and reproducible research. We welcome contributions of new games, evaluations, and playing tips.",,Iris Smal,games@forrt.org +100,TRUE,OS Storytelling,,"OS Storytelling collects and shares lived experiences of open scholarship to make the human side of doing research visible. We welcome storytellers, editors, and collaborators interested in narrative methods.",,Iris Smal, +110,TRUE,Clusters & Curated Resources,/clusters/,"FORRT has a vast collection of open scholarship readings (Clusters) and Curated Resources. Volunteers help review, tag, and recommend resources to make them discoverable and useful.",,Lukas Wallrich,l.wallrich@bbk.ac.uk +120,TRUE,JUST-OS Chatbot,/just-os-chatbot/,JUST-OS is an AI-based chatbot that helps researchers navigate Open Science resources. Collaborators are welcome for work on technical improvements and content curation.,,Lukas Wallrich,l.wallrich@bbk.ac.uk +130,TRUE,Team Website,,"Team Website maintains and improves forrt.org, with content updates, new pages, accessibility, and ideas for showcasing FORRT's work.",https://forrt.slack.com/archives/C080N39QRJ9,Lukas Wallrich,l.wallrich@bbk.ac.uk +140,TRUE,Nowhere Lab,/nowherelab/,Nowhere Lab is an online community for people who would like the lab meeting experience but don't currently have one. Weekly meetings and an active Slack bring together members across all populated continents and career stages.,https://forrt.slack.com/archives/C0B0FKG3GH2,Priya Silverstein,priyasilverstein@gmail.com +150,TRUE,Team Curriculum,,Team Curriculum develops open and reproducible lecture materials and supports the integration of principled education into university curricula.,,Federica Stablum,