From aa747f1659253d49016512cb537761b8944c85e8 Mon Sep 17 00:00:00 2001 From: gh-actions Date: Sun, 22 Dec 2024 17:22:58 +0000 Subject: [PATCH] Deploy website - based on c16b6d425dca6fd29bd584536885d81c80d65993 --- 404.html | 4 +- assets/js/0058b4c6.28861e2a.js | 1 - assets/js/0058b4c6.db3d3ee6.js | 1 + assets/js/11bd69e7.0bbfe475.js | 1 + assets/js/11bd69e7.c2419829.js | 1 - assets/js/227cc2f6.8e23aeb3.js | 1 - assets/js/227cc2f6.a3fef5ea.js | 1 + assets/js/2d763777.4c8e8d1a.js | 1 + assets/js/62725e77.45018bde.js | 1 - assets/js/62725e77.e83db385.js | 1 + assets/js/66884f93.6bd37a5c.js | 1 + assets/js/90ef4109.e7fa9530.js | 1 + assets/js/c5292cb6.660525ec.js | 1 - assets/js/c5292cb6.c650dd24.js | 1 + ...485b9.54207755.js => c62485b9.19e9a493.js} | 2 +- ...b4146.f778243d.js => d40b4146.8803e5c7.js} | 2 +- assets/js/dd32d4ec.b8bd9f30.js | 1 + assets/js/f1696f71.aca19e44.js | 1 + assets/js/f1696f71.e860f572.js | 1 - assets/js/main.3a1d67b4.js | 2 - assets/js/main.755eea48.js | 2 + ...CENSE.txt => main.755eea48.js.LICENSE.txt} | 0 assets/js/runtime~main.67f4ac4b.js | 1 - assets/js/runtime~main.80da4556.js | 1 + docs/category/calico/index.html | 6 +- docs/category/git-guide/index.html | 6 +- docs/category/gsoc/index.html | 6 +- docs/category/gsod/index.html | 6 +- docs/category/internships/index.html | 6 +- docs/category/palisadoes/index.html | 6 +- docs/category/projects/index.html | 13 + .../Git working/Feature-branch/index.html | 6 +- docs/git-guide/Git working/Fork/index.html | 6 +- .../Stage changes/stage-additions/index.html | 6 +- .../Stage changes/stage-changes/index.html | 6 +- .../Stage changes/stage-deletions/index.html | 6 +- .../Stage changes/status/index.html | 6 +- docs/git-guide/Git working/branch/index.html | 4 +- .../Git working/commit-changes/index.html | 6 +- .../Git working/push-commits/index.html | 6 +- docs/git-guide/Workingcopies/index.html | 6 +- .../usefulgitcommands/index.html | 6 +- .../Workingcopies/workflows/index.html | 6 +- docs/git-guide/collaborate/index.html | 6 +- docs/git-guide/get-the-code/index.html | 6 +- docs/git-guide/gitworkflow/index.html | 6 +- docs/git-guide/pullrequest/index.html | 6 +- docs/git-guide/quickstart/index.html | 6 +- docs/git-guide/setup-git/index.html | 6 +- docs/index.html | 8 +- .../calico-application-process/index.html | 6 +- .../calico/calico-ideas/index.html | 6 +- .../calico/calico-introduction/index.html | 6 +- .../conflicts-of-interest/index.html | 6 +- .../gsoc/gsoc-application-process/index.html | 6 +- .../gsoc/gsoc-ideas-20231209/index.html | 4 +- .../gsoc/gsoc-ideas-2024/index.html | 4 +- .../gsoc/gsoc-ideas-20240122/index.html | 4 +- .../gsoc/gsoc-ideas-20250101/index.html | 16 +- docs/internships/gsoc/gsoc-ideas/index.html | 496 +----------------- .../gsoc/gsoc-introduction/index.html | 6 +- .../gsod/gsod-ideas-2022/index.html | 6 +- docs/internships/gsod/gsod-ideas/index.html | 6 +- .../index.html | 6 +- docs/internships/internship-ideas/index.html | 6 +- .../internship-selection-criteria/index.html | 6 +- .../palisadoes-introduction/index.html | 6 +- docs/introduction/projects/index.html | 8 +- docs/introduction/sponsors/index.html | 8 +- docs/introduction/volunteers/index.html | 8 +- docs/projects/pattoo/index.html | 16 + docs/projects/switchmap/index.html | 18 + docs/projects/talawa/index.html | 31 ++ index.html | 4 +- markdown-page/index.html | 4 +- sitemap.xml | 2 +- 76 files changed, 246 insertions(+), 642 deletions(-) delete mode 100644 assets/js/0058b4c6.28861e2a.js create mode 100644 assets/js/0058b4c6.db3d3ee6.js create mode 100644 assets/js/11bd69e7.0bbfe475.js delete mode 100644 assets/js/11bd69e7.c2419829.js delete mode 100644 assets/js/227cc2f6.8e23aeb3.js create mode 100644 assets/js/227cc2f6.a3fef5ea.js create mode 100644 assets/js/2d763777.4c8e8d1a.js delete mode 100644 assets/js/62725e77.45018bde.js create mode 100644 assets/js/62725e77.e83db385.js create mode 100644 assets/js/66884f93.6bd37a5c.js create mode 100644 assets/js/90ef4109.e7fa9530.js delete mode 100644 assets/js/c5292cb6.660525ec.js create mode 100644 assets/js/c5292cb6.c650dd24.js rename assets/js/{c62485b9.54207755.js => c62485b9.19e9a493.js} (98%) rename assets/js/{d40b4146.f778243d.js => d40b4146.8803e5c7.js} (59%) create mode 100644 assets/js/dd32d4ec.b8bd9f30.js create mode 100644 assets/js/f1696f71.aca19e44.js delete mode 100644 assets/js/f1696f71.e860f572.js delete mode 100644 assets/js/main.3a1d67b4.js create mode 100644 assets/js/main.755eea48.js rename assets/js/{main.3a1d67b4.js.LICENSE.txt => main.755eea48.js.LICENSE.txt} (100%) delete mode 100644 assets/js/runtime~main.67f4ac4b.js create mode 100644 assets/js/runtime~main.80da4556.js create mode 100644 docs/category/projects/index.html create mode 100644 docs/projects/pattoo/index.html create mode 100644 docs/projects/switchmap/index.html create mode 100644 docs/projects/talawa/index.html diff --git a/404.html b/404.html index 0b30f1b..7c472a0 100644 --- a/404.html +++ b/404.html @@ -4,8 +4,8 @@ Page Not Found | Palisadoes DevDocs - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/assets/js/0058b4c6.28861e2a.js b/assets/js/0058b4c6.28861e2a.js deleted file mode 100644 index f5609f7..0000000 --- a/assets/js/0058b4c6.28861e2a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[849],{6164:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Introduction","href":"/docs/","docId":"introduction/introduction","unlisted":false},{"type":"link","label":"Projects","href":"/docs/introduction/projects","docId":"introduction/projects","unlisted":false},{"type":"link","label":"Sponsors","href":"/docs/introduction/sponsors","docId":"introduction/sponsors","unlisted":false},{"type":"link","label":"Volunteers","href":"/docs/introduction/volunteers","docId":"introduction/volunteers","unlisted":false},{"type":"category","label":"Git Guide","collapsed":true,"items":[{"type":"link","label":"Quick Start","href":"/docs/git-guide/quickstart","docId":"git-guide/quickstart","unlisted":false},{"type":"link","label":"Set Up Git","href":"/docs/git-guide/setup-git","docId":"git-guide/setup-git","unlisted":false},{"type":"link","label":"Get The Code","href":"/docs/git-guide/get-the-code","docId":"git-guide/get-the-code","unlisted":false},{"type":"link","label":"Create a pull request","href":"/docs/git-guide/pullrequest","docId":"git-guide/pullrequest","unlisted":false},{"type":"link","label":"Collaborate","href":"/docs/git-guide/collaborate","docId":"git-guide/collaborate","unlisted":false},{"type":"category","label":"Working copies","collapsed":true,"items":[{"type":"link","label":"Workflows","href":"/docs/git-guide/Workingcopies/workflows","docId":"git-guide/Workingcopies/workflows","unlisted":false},{"type":"link","label":"Useful Git commands","href":"/docs/git-guide/Workingcopies/usefulgitcommands","docId":"git-guide/Workingcopies/usefulgitcommands","unlisted":false}],"collapsible":true,"href":"/docs/git-guide/Workingcopies/"},{"type":"category","label":"Using Git as you work","collapsed":true,"items":[{"type":"link","label":"Keep your fork up to date","href":"/docs/git-guide/Git working/Fork","docId":"git-guide/Git working/Fork","unlisted":false},{"type":"link","label":"Work on a feature branch","href":"/docs/git-guide/Git working/Feature-branch","docId":"git-guide/Git working/Feature-branch","unlisted":false},{"type":"category","label":"Stage changes","collapsed":true,"items":[{"type":"link","label":"Get status of working directory","href":"/docs/git-guide/Git working/Stage changes/status","docId":"git-guide/Git working/Stage changes/status","unlisted":false},{"type":"link","label":"Stage additions with git add","href":"/docs/git-guide/Git working/Stage changes/stage-additions","docId":"git-guide/Git working/Stage changes/stage-additions","unlisted":false},{"type":"link","label":"Stage deletions with git rm","href":"/docs/git-guide/Git working/Stage changes/stage-deletions","docId":"git-guide/Git working/Stage changes/stage-deletions","unlisted":false}],"collapsible":true,"href":"/docs/git-guide/Git working/Stage changes/stage-changes"},{"type":"link","label":"Commit changes","href":"/docs/git-guide/Git working/commit-changes","docId":"git-guide/Git working/commit-changes","unlisted":false},{"type":"link","label":"Push your commits to Github","href":"/docs/git-guide/Git working/push-commits","docId":"git-guide/Git working/push-commits","unlisted":false}],"collapsible":true,"href":"/docs/git-guide/gitworkflow"}],"collapsible":true,"href":"/docs/category/git-guide"},{"type":"category","label":"Internships","collapsed":true,"items":[{"type":"link","label":"Ideas Lists","href":"/docs/internships/internship-ideas","docId":"internships/internship-ideas","unlisted":false},{"type":"link","label":"Application Template","href":"/docs/internships/internship-application-template","docId":"internships/internship-application-template","unlisted":false},{"type":"link","label":"Selection Criteria","href":"/docs/internships/internship-selection-criteria","docId":"internships/internship-selection-criteria","unlisted":false},{"type":"link","label":"Conflicts of Interest","href":"/docs/internships/conflicts-of-interest","docId":"internships/conflicts-of-interest","unlisted":false},{"type":"category","label":"GSoC","collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/internships/gsoc/gsoc-introduction","docId":"internships/gsoc/gsoc-introduction","unlisted":false},{"type":"link","label":"GSoC Ideas","href":"/docs/internships/gsoc/gsoc-ideas","docId":"internships/gsoc/gsoc-ideas","unlisted":false},{"type":"link","label":"Applying","href":"/docs/internships/gsoc/gsoc-application-process","docId":"internships/gsoc/gsoc-application-process","unlisted":false}],"collapsible":true,"href":"/docs/category/gsoc"},{"type":"category","label":"GSoD","collapsed":true,"items":[{"type":"link","label":"GSoD 2024 - Improving the accessibility of the Talawa Documentation","href":"/docs/internships/gsod/gsod-ideas","docId":"internships/gsod/gsod-ideas","unlisted":false},{"type":"link","label":"GSoD 2022 - Revamping and restructuring the Talawa Docs","href":"/docs/internships/gsod/gsod-ideas-2022","docId":"internships/gsod/gsod-ideas-2022","unlisted":false}],"collapsible":true,"href":"/docs/category/gsod"},{"type":"category","label":"Calico","collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/internships/calico/calico-introduction","docId":"internships/calico/calico-introduction","unlisted":false},{"type":"link","label":"Calico Ideas","href":"/docs/internships/calico/calico-ideas","docId":"internships/calico/calico-ideas","unlisted":false},{"type":"link","label":"Applying","href":"/docs/internships/calico/calico-application-process","docId":"internships/calico/calico-application-process","unlisted":false}],"collapsible":true,"href":"/docs/category/calico"},{"type":"category","label":"Palisadoes","collapsed":true,"items":[{"type":"link","label":"Palisadoes Unpaid Internship","href":"/docs/internships/palisadoes/palisadoes-introduction","docId":"internships/palisadoes/palisadoes-introduction","unlisted":false}],"collapsible":true,"href":"/docs/category/palisadoes"}],"collapsible":true,"href":"/docs/category/internships"}]},"docs":{"git-guide/collaborate":{"id":"git-guide/collaborate","title":"Collaborate","description":"Fetching work of other Contributors","sidebar":"docs"},"git-guide/get-the-code":{"id":"git-guide/get-the-code","title":"Get The Code","description":"Each of our projects use a forked-repo and merge-oriented workflow. This means all contributors create a fork of the repository they want to contribute to and then submit pull requests to the upstream repository to have their contributions reviewed and accepted. We also recommend you work on feature branches.","sidebar":"docs"},"git-guide/Git working/branch":{"id":"git-guide/Git working/branch","title":"Know what branch you\'re currently working on","description":"When working with Git, it\'s crucial to Know which branch you have currently checked out, Most of the Git commands implicitly operate on the current branch. you can determine the currently checked out branch in several ways"},"git-guide/Git working/commit-changes":{"id":"git-guide/Git working/commit-changes","title":"Commit changes","description":"Once you\'ve staged all your changes, you\'re ready to commit. You can do this with ` git commit -m \\"My commit message.\\" ` to include a commit message.","sidebar":"docs"},"git-guide/Git working/Feature-branch":{"id":"git-guide/Git working/Feature-branch","title":"Work on a feature branch","description":"Working with git can be organized by creating a branch for each issue or feature.Git is designed for lightweight branching and merging. You can and should create as many branches as you\u2019d like.","sidebar":"docs"},"git-guide/Git working/Fork":{"id":"git-guide/Git working/Fork","title":"Keep your fork up to date","description":"You\'ll want to keep your fork up-to-date with changes from Talawa\'s main repositories","sidebar":"docs"},"git-guide/Git working/push-commits":{"id":"git-guide/Git working/push-commits","title":"Push your commits to Github","description":"As you\u2019re working, it\u2019s a good idea to frequently push your changes to GitHub. This ensures your work is backed up should something happen to your local machine and allows others to follow your progress. It also allows you to work from multiple computers without losing work.","sidebar":"docs"},"git-guide/Git working/Stage changes/stage-additions":{"id":"git-guide/Git working/Stage changes/stage-additions","title":"Stage additions with git add","description":"To add changes to your staging area, use `git add `. Because `git add` is all about staging the changes you want to commit, you use it to add new files as well as files with changes to your staging area.","sidebar":"docs"},"git-guide/Git working/Stage changes/stage-changes":{"id":"git-guide/Git working/Stage changes/stage-changes","title":"Stage changes","description":"Files in Git can have three possible states: committed, modified, and staged.","sidebar":"docs"},"git-guide/Git working/Stage changes/stage-deletions":{"id":"git-guide/Git working/Stage changes/stage-deletions","title":"Stage deletions with git rm","description":"To remove existing files from your repository, use `git rm` documentation. This command can either stage the file for removal from your repository AND delete it from your working directory or just stage the file for deletion and leave it in your working directory.","sidebar":"docs"},"git-guide/Git working/Stage changes/status":{"id":"git-guide/Git working/Stage changes/status","title":"Get status of working directory","description":"To see what files in the working directory have changes that have not been staged, use `git status`.","sidebar":"docs"},"git-guide/gitworkflow":{"id":"git-guide/gitworkflow","title":"Using Git as you work","description":"Know what branch you\'re currently working on","sidebar":"docs"},"git-guide/pullrequest":{"id":"git-guide/pullrequest","title":"Create a pull request","description":"Once you feel you are ready to get feedback on your work, submit a pull request. Pull requests is a way to submit your work to a particular Project. The reason for calling it as a pull request is because you\'re asking the project to pull changes from your fork.","sidebar":"docs"},"git-guide/quickstart":{"id":"git-guide/quickstart","title":"Quick Start","description":"This quick start guide is designed for those experienced with Git and Github to quickly begin contributing to Talawa repositories. Please follow the details below:","sidebar":"docs"},"git-guide/setup-git":{"id":"git-guide/setup-git","title":"Set Up Git","description":"If you\u2019re already using Git, have a client you like, and a GitHub account, you can skip this section. Otherwise, read on!","sidebar":"docs"},"git-guide/Workingcopies/usefulgitcommands":{"id":"git-guide/Workingcopies/usefulgitcommands","title":"Useful Git commands","description":"The following commands are useful for moving commits between working copies:","sidebar":"docs"},"git-guide/Workingcopies/workflows":{"id":"git-guide/Workingcopies/workflows","title":"Workflows","description":"Sometimes you need to get commits. Here are some scenarios:","sidebar":"docs"},"git-guide/Workingcopies/workingcopies":{"id":"git-guide/Workingcopies/workingcopies","title":"Working copies","description":"When you work on Talawa code, there are three copies of the Talawa Git repository that you are generally concerned with:","sidebar":"docs"},"internships/calico/calico-application-process":{"id":"internships/calico/calico-application-process","title":"Applying","description":"Details are announced now, and we are in the project discussion phase. We encourage you to discuss your application with the project community.","sidebar":"docs"},"internships/calico/calico-ideas":{"id":"internships/calico/calico-ideas","title":"Calico Ideas","description":"Introduction","sidebar":"docs"},"internships/calico/calico-introduction":{"id":"internships/calico/calico-introduction","title":"Introduction","description":"The Palisadoes Foundation is sponsoring the Calico Challenge. This page is your entry point to the program.","sidebar":"docs"},"internships/conflicts-of-interest":{"id":"internships/conflicts-of-interest","title":"Conflicts of Interest","description":"We pride ourselves on being fair, both in actions and perception.","sidebar":"docs"},"internships/gsoc/gsoc-application-process":{"id":"internships/gsoc/gsoc-application-process","title":"Applying","description":"Details are announced now, and we are in the project discussion phase. We encourage you to discuss your application with the project community.","sidebar":"docs"},"internships/gsoc/gsoc-ideas":{"id":"internships/gsoc/gsoc-ideas","title":"GSoC Ideas","description":"Introduction","sidebar":"docs"},"internships/gsoc/gsoc-ideas-20231209":{"id":"internships/gsoc/gsoc-ideas-20231209","title":"GSoC Ideas","description":"Deprecated"},"internships/gsoc/gsoc-ideas-2024":{"id":"internships/gsoc/gsoc-ideas-2024","title":"GSoC Ideas","description":"NOTE: These ideas are subject to change at any time prior to us submitting our GSoC 2024 Organization application. Ideas may be added, removed or updated up to this time."},"internships/gsoc/gsoc-ideas-20240122":{"id":"internships/gsoc/gsoc-ideas-20240122","title":"GSoC Ideas","description":"Draft"},"internships/gsoc/gsoc-ideas-20250101":{"id":"internships/gsoc/gsoc-ideas-20250101","title":"GSoC Ideas","description":"NOTE: These ideas are subject to change at any time prior to us submitting our GSoC 2025 Organization application. Ideas may be added, removed or updated up to this time."},"internships/gsoc/gsoc-introduction":{"id":"internships/gsoc/gsoc-introduction","title":"Introduction","description":"Google is sponsoring the Google Summer of Code and The Palisadoes Foundation is registered as a mentoring organization. This page is your entry point to the Palisadoes Foundation GSoC program. Please watch this page for updates concerning our participating this year.","sidebar":"docs"},"internships/gsod/gsod-ideas":{"id":"internships/gsod/gsod-ideas","title":"GSoD 2024 - Improving the accessibility of the Talawa Documentation","description":"About Talawa","sidebar":"docs"},"internships/gsod/gsod-ideas-2022":{"id":"internships/gsod/gsod-ideas-2022","title":"GSoD 2022 - Revamping and restructuring the Talawa Docs","description":"Introduction","sidebar":"docs"},"internships/internship-application-template":{"id":"internships/internship-application-template","title":"Application Template","description":"This is just a suggested template, feel free to add and remove sections as appropriate. Be brief, don\u2019t write a large essay!","sidebar":"docs"},"internships/internship-ideas":{"id":"internships/internship-ideas","title":"Ideas Lists","description":"Welcome to our ideas landing page. We know that this is the most important page for our internships. That\'s why we put it first!","sidebar":"docs"},"internships/internship-selection-criteria":{"id":"internships/internship-selection-criteria","title":"Selection Criteria","description":"Each applicant to The Palisadoes Foundation\u2019s programs will be assessed using the following criteria","sidebar":"docs"},"internships/palisadoes/palisadoes-introduction":{"id":"internships/palisadoes/palisadoes-introduction","title":"Palisadoes Unpaid Internship","description":"Intern at The Palisadoes Foundation","sidebar":"docs"},"introduction/introduction":{"id":"introduction/introduction","title":"Introduction","description":"The Palisadoes Foundation\u2019s open-source software projects started in 2016 when a group of expatriate Jamaicans wanted to assist development of new and existing information technologies for the island\u2019s social good.","sidebar":"docs"},"introduction/projects":{"id":"introduction/projects","title":"Projects","description":"Our most active projects include:","sidebar":"docs"},"introduction/sponsors":{"id":"introduction/sponsors","title":"Sponsors","description":"We appreciate the work of our sponsors over the years. We wouldn\'t be here without them.","sidebar":"docs"},"introduction/volunteers":{"id":"introduction/volunteers","title":"Volunteers","description":"Hundreds of volunteers have contributed to our code, documentation and processes over the years. Here is a snapshot of who they are.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/0058b4c6.db3d3ee6.js b/assets/js/0058b4c6.db3d3ee6.js new file mode 100644 index 0000000..b10c302 --- /dev/null +++ b/assets/js/0058b4c6.db3d3ee6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[849],{6164:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Introduction","href":"/docs/","docId":"introduction/introduction","unlisted":false},{"type":"link","label":"Sponsors","href":"/docs/introduction/sponsors","docId":"introduction/sponsors","unlisted":false},{"type":"link","label":"Volunteers","href":"/docs/introduction/volunteers","docId":"introduction/volunteers","unlisted":false},{"type":"category","label":"Projects","collapsed":true,"items":[{"type":"link","label":"Talawa","href":"/docs/projects/talawa","docId":"projects/talawa","unlisted":false},{"type":"link","label":"Switchmap-NG","href":"/docs/projects/switchmap","docId":"projects/switchmap","unlisted":false},{"type":"link","label":"Pattoo","href":"/docs/projects/pattoo","docId":"projects/pattoo","unlisted":false}],"collapsible":true,"href":"/docs/category/projects"},{"type":"category","label":"Git Guide","collapsed":true,"items":[{"type":"link","label":"Quick Start","href":"/docs/git-guide/quickstart","docId":"git-guide/quickstart","unlisted":false},{"type":"link","label":"Set Up Git","href":"/docs/git-guide/setup-git","docId":"git-guide/setup-git","unlisted":false},{"type":"link","label":"Get The Code","href":"/docs/git-guide/get-the-code","docId":"git-guide/get-the-code","unlisted":false},{"type":"link","label":"Create a pull request","href":"/docs/git-guide/pullrequest","docId":"git-guide/pullrequest","unlisted":false},{"type":"link","label":"Collaborate","href":"/docs/git-guide/collaborate","docId":"git-guide/collaborate","unlisted":false},{"type":"category","label":"Working Copies","collapsed":true,"items":[{"type":"link","label":"Workflows","href":"/docs/git-guide/Workingcopies/workflows","docId":"git-guide/Workingcopies/workflows","unlisted":false},{"type":"link","label":"Useful Git commands","href":"/docs/git-guide/Workingcopies/usefulgitcommands","docId":"git-guide/Workingcopies/usefulgitcommands","unlisted":false}],"collapsible":true,"href":"/docs/git-guide/Workingcopies/"},{"type":"category","label":"Using Git as you work","collapsed":true,"items":[{"type":"link","label":"Keep your fork up to date","href":"/docs/git-guide/Git working/Fork","docId":"git-guide/Git working/Fork","unlisted":false},{"type":"link","label":"Work on a feature branch","href":"/docs/git-guide/Git working/Feature-branch","docId":"git-guide/Git working/Feature-branch","unlisted":false},{"type":"category","label":"Stage changes","collapsed":true,"items":[{"type":"link","label":"Get status of working directory","href":"/docs/git-guide/Git working/Stage changes/status","docId":"git-guide/Git working/Stage changes/status","unlisted":false},{"type":"link","label":"Stage additions with git add","href":"/docs/git-guide/Git working/Stage changes/stage-additions","docId":"git-guide/Git working/Stage changes/stage-additions","unlisted":false},{"type":"link","label":"Stage deletions with git rm","href":"/docs/git-guide/Git working/Stage changes/stage-deletions","docId":"git-guide/Git working/Stage changes/stage-deletions","unlisted":false}],"collapsible":true,"href":"/docs/git-guide/Git working/Stage changes/stage-changes"},{"type":"link","label":"Commit changes","href":"/docs/git-guide/Git working/commit-changes","docId":"git-guide/Git working/commit-changes","unlisted":false},{"type":"link","label":"Push your commits to Github","href":"/docs/git-guide/Git working/push-commits","docId":"git-guide/Git working/push-commits","unlisted":false}],"collapsible":true,"href":"/docs/git-guide/gitworkflow"}],"collapsible":true,"href":"/docs/category/git-guide"},{"type":"category","label":"Internships","collapsed":true,"items":[{"type":"link","label":"Ideas Lists","href":"/docs/internships/internship-ideas","docId":"internships/internship-ideas","unlisted":false},{"type":"link","label":"Application Template","href":"/docs/internships/internship-application-template","docId":"internships/internship-application-template","unlisted":false},{"type":"link","label":"Selection Criteria","href":"/docs/internships/internship-selection-criteria","docId":"internships/internship-selection-criteria","unlisted":false},{"type":"link","label":"Conflicts of Interest","href":"/docs/internships/conflicts-of-interest","docId":"internships/conflicts-of-interest","unlisted":false},{"type":"category","label":"GSoC","collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/internships/gsoc/gsoc-introduction","docId":"internships/gsoc/gsoc-introduction","unlisted":false},{"type":"link","label":"GSoC Ideas","href":"/docs/internships/gsoc/gsoc-ideas","docId":"internships/gsoc/gsoc-ideas","unlisted":false},{"type":"link","label":"Applying","href":"/docs/internships/gsoc/gsoc-application-process","docId":"internships/gsoc/gsoc-application-process","unlisted":false}],"collapsible":true,"href":"/docs/category/gsoc"},{"type":"category","label":"GSoD","collapsed":true,"items":[{"type":"link","label":"GSoD 2024 - Improving the accessibility of the Talawa Documentation","href":"/docs/internships/gsod/gsod-ideas","docId":"internships/gsod/gsod-ideas","unlisted":false},{"type":"link","label":"GSoD 2022 - Revamping and restructuring the Talawa Docs","href":"/docs/internships/gsod/gsod-ideas-2022","docId":"internships/gsod/gsod-ideas-2022","unlisted":false}],"collapsible":true,"href":"/docs/category/gsod"},{"type":"category","label":"Calico","collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/internships/calico/calico-introduction","docId":"internships/calico/calico-introduction","unlisted":false},{"type":"link","label":"Calico Ideas","href":"/docs/internships/calico/calico-ideas","docId":"internships/calico/calico-ideas","unlisted":false},{"type":"link","label":"Applying","href":"/docs/internships/calico/calico-application-process","docId":"internships/calico/calico-application-process","unlisted":false}],"collapsible":true,"href":"/docs/category/calico"},{"type":"category","label":"Palisadoes","collapsed":true,"items":[{"type":"link","label":"Palisadoes Unpaid Internship","href":"/docs/internships/palisadoes/palisadoes-introduction","docId":"internships/palisadoes/palisadoes-introduction","unlisted":false}],"collapsible":true,"href":"/docs/category/palisadoes"}],"collapsible":true,"href":"/docs/category/internships"}]},"docs":{"git-guide/collaborate":{"id":"git-guide/collaborate","title":"Collaborate","description":"Fetching work of other Contributors","sidebar":"docs"},"git-guide/get-the-code":{"id":"git-guide/get-the-code","title":"Get The Code","description":"Each of our projects use a forked-repo and merge-oriented workflow. This means all contributors create a fork of the repository they want to contribute to and then submit pull requests to the upstream repository to have their contributions reviewed and accepted. We also recommend you work on feature branches.","sidebar":"docs"},"git-guide/Git working/branch":{"id":"git-guide/Git working/branch","title":"Know what branch you\'re currently working on","description":"When working with Git, it\'s crucial to Know which branch you have currently checked out, Most of the Git commands implicitly operate on the current branch. you can determine the currently checked out branch in several ways"},"git-guide/Git working/commit-changes":{"id":"git-guide/Git working/commit-changes","title":"Commit changes","description":"Once you\'ve staged all your changes, you\'re ready to commit. You can do this with ` git commit -m \\"My commit message.\\" ` to include a commit message.","sidebar":"docs"},"git-guide/Git working/Feature-branch":{"id":"git-guide/Git working/Feature-branch","title":"Work on a feature branch","description":"Working with git can be organized by creating a branch for each issue or feature.Git is designed for lightweight branching and merging. You can and should create as many branches as you\u2019d like.","sidebar":"docs"},"git-guide/Git working/Fork":{"id":"git-guide/Git working/Fork","title":"Keep your fork up to date","description":"You\'ll want to keep your fork up-to-date with changes from Talawa\'s main repositories","sidebar":"docs"},"git-guide/Git working/push-commits":{"id":"git-guide/Git working/push-commits","title":"Push your commits to Github","description":"As you\u2019re working, it\u2019s a good idea to frequently push your changes to GitHub. This ensures your work is backed up should something happen to your local machine and allows others to follow your progress. It also allows you to work from multiple computers without losing work.","sidebar":"docs"},"git-guide/Git working/Stage changes/stage-additions":{"id":"git-guide/Git working/Stage changes/stage-additions","title":"Stage additions with git add","description":"To add changes to your staging area, use `git add `. Because `git add` is all about staging the changes you want to commit, you use it to add new files as well as files with changes to your staging area.","sidebar":"docs"},"git-guide/Git working/Stage changes/stage-changes":{"id":"git-guide/Git working/Stage changes/stage-changes","title":"Stage changes","description":"Files in Git can have three possible states: committed, modified, and staged.","sidebar":"docs"},"git-guide/Git working/Stage changes/stage-deletions":{"id":"git-guide/Git working/Stage changes/stage-deletions","title":"Stage deletions with git rm","description":"To remove existing files from your repository, use `git rm` documentation. This command can either stage the file for removal from your repository AND delete it from your working directory or just stage the file for deletion and leave it in your working directory.","sidebar":"docs"},"git-guide/Git working/Stage changes/status":{"id":"git-guide/Git working/Stage changes/status","title":"Get status of working directory","description":"To see what files in the working directory have changes that have not been staged, use `git status`.","sidebar":"docs"},"git-guide/gitworkflow":{"id":"git-guide/gitworkflow","title":"Using Git as you work","description":"Know what branch you\'re currently working on","sidebar":"docs"},"git-guide/pullrequest":{"id":"git-guide/pullrequest","title":"Create a pull request","description":"Once you feel you are ready to get feedback on your work, submit a pull request. Pull requests is a way to submit your work to a particular Project. The reason for calling it as a pull request is because you\'re asking the project to pull changes from your fork.","sidebar":"docs"},"git-guide/quickstart":{"id":"git-guide/quickstart","title":"Quick Start","description":"This quick start guide is designed for those experienced with Git and Github to quickly begin contributing to Talawa repositories. Please follow the details below:","sidebar":"docs"},"git-guide/setup-git":{"id":"git-guide/setup-git","title":"Set Up Git","description":"If you\u2019re already using Git, have a client you like, and a GitHub account, you can skip this section. Otherwise, read on!","sidebar":"docs"},"git-guide/Workingcopies/usefulgitcommands":{"id":"git-guide/Workingcopies/usefulgitcommands","title":"Useful Git commands","description":"The following commands are useful for moving commits between working copies:","sidebar":"docs"},"git-guide/Workingcopies/workflows":{"id":"git-guide/Workingcopies/workflows","title":"Workflows","description":"Sometimes you need to get commits. Here are some scenarios:","sidebar":"docs"},"git-guide/Workingcopies/workingcopies":{"id":"git-guide/Workingcopies/workingcopies","title":"Working copies","description":"When you work on Talawa code, there are three copies of the Talawa Git repository that you are generally concerned with:","sidebar":"docs"},"internships/calico/calico-application-process":{"id":"internships/calico/calico-application-process","title":"Applying","description":"Details are announced now, and we are in the project discussion phase. We encourage you to discuss your application with the project community.","sidebar":"docs"},"internships/calico/calico-ideas":{"id":"internships/calico/calico-ideas","title":"Calico Ideas","description":"Introduction","sidebar":"docs"},"internships/calico/calico-introduction":{"id":"internships/calico/calico-introduction","title":"Introduction","description":"The Palisadoes Foundation is sponsoring the Calico Challenge. This page is your entry point to the program.","sidebar":"docs"},"internships/conflicts-of-interest":{"id":"internships/conflicts-of-interest","title":"Conflicts of Interest","description":"We pride ourselves on being fair, both in actions and perception.","sidebar":"docs"},"internships/gsoc/gsoc-application-process":{"id":"internships/gsoc/gsoc-application-process","title":"Applying","description":"Details are announced now, and we are in the project discussion phase. We encourage you to discuss your application with the project community.","sidebar":"docs"},"internships/gsoc/gsoc-ideas":{"id":"internships/gsoc/gsoc-ideas","title":"GSoC Ideas","description":"NOTE: These ideas are subject to change at any time prior to us submitting our GSoC 2025 Organization application. Ideas may be added, removed or updated up to this time.","sidebar":"docs"},"internships/gsoc/gsoc-ideas-20231209":{"id":"internships/gsoc/gsoc-ideas-20231209","title":"GSoC Ideas","description":"Deprecated"},"internships/gsoc/gsoc-ideas-2024":{"id":"internships/gsoc/gsoc-ideas-2024","title":"GSoC Ideas","description":"NOTE: These ideas are subject to change at any time prior to us submitting our GSoC 2024 Organization application. Ideas may be added, removed or updated up to this time."},"internships/gsoc/gsoc-ideas-20240122":{"id":"internships/gsoc/gsoc-ideas-20240122","title":"GSoC Ideas","description":"Draft"},"internships/gsoc/gsoc-ideas-20250101":{"id":"internships/gsoc/gsoc-ideas-20250101","title":"GSoC Ideas","description":"NOTE: These ideas are subject to change at any time prior to us submitting our GSoC 2025 Organization application. Ideas may be added, removed or updated up to this time."},"internships/gsoc/gsoc-introduction":{"id":"internships/gsoc/gsoc-introduction","title":"Introduction","description":"Google is sponsoring the Google Summer of Code and The Palisadoes Foundation is registered as a mentoring organization. This page is your entry point to the Palisadoes Foundation GSoC program. Please watch this page for updates concerning our participating this year.","sidebar":"docs"},"internships/gsod/gsod-ideas":{"id":"internships/gsod/gsod-ideas","title":"GSoD 2024 - Improving the accessibility of the Talawa Documentation","description":"About Talawa","sidebar":"docs"},"internships/gsod/gsod-ideas-2022":{"id":"internships/gsod/gsod-ideas-2022","title":"GSoD 2022 - Revamping and restructuring the Talawa Docs","description":"Introduction","sidebar":"docs"},"internships/internship-application-template":{"id":"internships/internship-application-template","title":"Application Template","description":"This is just a suggested template, feel free to add and remove sections as appropriate. Be brief, don\u2019t write a large essay!","sidebar":"docs"},"internships/internship-ideas":{"id":"internships/internship-ideas","title":"Ideas Lists","description":"Welcome to our ideas landing page. We know that this is the most important page for our internships. That\'s why we put it first!","sidebar":"docs"},"internships/internship-selection-criteria":{"id":"internships/internship-selection-criteria","title":"Selection Criteria","description":"Each applicant to The Palisadoes Foundation\u2019s programs will be assessed using the following criteria","sidebar":"docs"},"internships/palisadoes/palisadoes-introduction":{"id":"internships/palisadoes/palisadoes-introduction","title":"Palisadoes Unpaid Internship","description":"Intern at The Palisadoes Foundation","sidebar":"docs"},"introduction/introduction":{"id":"introduction/introduction","title":"Introduction","description":"The Palisadoes Foundation\u2019s open-source software projects started in 2016 when a group of expatriate Jamaicans wanted to assist development of new and existing information technologies for the island\u2019s social good.","sidebar":"docs"},"introduction/projects":{"id":"introduction/projects","title":"Projects","description":"Our most active projects include:"},"introduction/sponsors":{"id":"introduction/sponsors","title":"Sponsors","description":"We appreciate the work of our sponsors over the years. We wouldn\'t be here without them.","sidebar":"docs"},"introduction/volunteers":{"id":"introduction/volunteers","title":"Volunteers","description":"Hundreds of volunteers have contributed to our code, documentation and processes over the years. Here is a snapshot of who they are.","sidebar":"docs"},"projects/pattoo":{"id":"projects/pattoo","title":"Pattoo","description":"Pattoo is a suite of ETL applications that store time series data with various visualization features.","sidebar":"docs"},"projects/switchmap":{"id":"projects/switchmap","title":"Switchmap-NG","description":"Switchmap is an information technoloy network topology suite of applications","sidebar":"docs"},"projects/talawa":{"id":"projects/talawa","title":"Talawa","description":"Talawa is a suite of applications that help community based organizations manage their memberships. There are many social media, event planning, and fundraising features.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/11bd69e7.0bbfe475.js b/assets/js/11bd69e7.0bbfe475.js new file mode 100644 index 0000000..d32396b --- /dev/null +++ b/assets/js/11bd69e7.0bbfe475.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[2004],{6003:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>u});const s=JSON.parse('{"id":"introduction/sponsors","title":"Sponsors","description":"We appreciate the work of our sponsors over the years. We wouldn\'t be here without them.","source":"@site/docs/introduction/sponsors.md","sourceDirName":"introduction","slug":"/introduction/sponsors","permalink":"/docs/introduction/sponsors","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/introduction/sponsors.md","tags":[],"version":"current","frontMatter":{"title":"Sponsors","id":"sponsors"},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/docs/"},"next":{"title":"Volunteers","permalink":"/docs/introduction/volunteers"}}');var n=o(4848),r=o(8453);const i={title:"Sponsors",id:"sponsors"},c=void 0,a={},u=[];function d(e){const t={hr:"hr",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"We appreciate the work of our sponsors over the years. We wouldn't be here without them."}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"image",src:o(240).A+"",width:"1462",height:"1064"})})]})}function p(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},240:(e,t,o)=>{o.d(t,{A:()=>s});const s=o.p+"assets/images/sponsors-list-3a300c282a4131327d41f67b58716f09.png"},8453:(e,t,o)=>{o.d(t,{R:()=>i,x:()=>c});var s=o(6540);const n={},r=s.createContext(n);function i(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/11bd69e7.c2419829.js b/assets/js/11bd69e7.c2419829.js deleted file mode 100644 index 66b1154..0000000 --- a/assets/js/11bd69e7.c2419829.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[2004],{6003:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>u});const s=JSON.parse('{"id":"introduction/sponsors","title":"Sponsors","description":"We appreciate the work of our sponsors over the years. We wouldn\'t be here without them.","source":"@site/docs/introduction/sponsors.md","sourceDirName":"introduction","slug":"/introduction/sponsors","permalink":"/docs/introduction/sponsors","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/introduction/sponsors.md","tags":[],"version":"current","frontMatter":{"title":"Sponsors","id":"sponsors"},"sidebar":"docs","previous":{"title":"Projects","permalink":"/docs/introduction/projects"},"next":{"title":"Volunteers","permalink":"/docs/introduction/volunteers"}}');var n=o(4848),r=o(8453);const i={title:"Sponsors",id:"sponsors"},c=void 0,a={},u=[];function d(e){const t={hr:"hr",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"We appreciate the work of our sponsors over the years. We wouldn't be here without them."}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"image",src:o(240).A+"",width:"1462",height:"1064"})})]})}function p(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},240:(e,t,o)=>{o.d(t,{A:()=>s});const s=o.p+"assets/images/sponsors-list-3a300c282a4131327d41f67b58716f09.png"},8453:(e,t,o)=>{o.d(t,{R:()=>i,x:()=>c});var s=o(6540);const n={},r=s.createContext(n);function i(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/227cc2f6.8e23aeb3.js b/assets/js/227cc2f6.8e23aeb3.js deleted file mode 100644 index 7c3bc15..0000000 --- a/assets/js/227cc2f6.8e23aeb3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[6218],{5067:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"internships/gsoc/gsoc-ideas","title":"GSoC Ideas","description":"Introduction","source":"@site/docs/internships/gsoc/ideas.md","sourceDirName":"internships/gsoc","slug":"/internships/gsoc/gsoc-ideas","permalink":"/docs/internships/gsoc/gsoc-ideas","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/internships/gsoc/ideas.md","tags":[],"version":"current","frontMatter":{"id":"gsoc-ideas","title":"GSoC Ideas"},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/docs/internships/gsoc/gsoc-introduction"},"next":{"title":"Applying","permalink":"/docs/internships/gsoc/gsoc-application-process"}}');var t=i(4848),r=i(8453);const l={id:"gsoc-ideas",title:"GSoC Ideas"},o=void 0,a={},d=[{value:"Introduction",id:"introduction",level:2},{value:"General Considerations",id:"general-considerations",level:3},{value:"Internship Participants",id:"internship-participants",level:3},{value:"Documentation",id:"documentation",level:3},{value:"Testing",id:"testing",level:3},{value:"Repository Languages and Skills",id:"repository-languages-and-skills",level:3},{value:"Impact Definition",id:"impact-definition",level:3},{value:"Difficulty",id:"difficulty",level:3},{value:"Research",id:"research",level:3},{value:"Other",id:"other",level:3},{value:"Idea Areas",id:"idea-areas",level:2},{value:"Improved File Uploads and Security",id:"improved-file-uploads-and-security",level:3},{value:"Self Hosted Chat and Notifications",id:"self-hosted-chat-and-notifications",level:3},{value:"AI Powered Improvements to Community Health",id:"ai-powered-improvements-to-community-health",level:3},{value:"AI Powered Automated Testing",id:"ai-powered-automated-testing",level:3},{value:"Event Attendance - Talawa Admin",id:"event-attendance---talawa-admin",level:3},{value:"User Tag Management - Talawa Admin",id:"user-tag-management---talawa-admin",level:3},{value:"Event Parity - Talawa Mobile",id:"event-parity---talawa-mobile",level:3},{value:"Offline Capability Enhancement - Talawa Mobile",id:"offline-capability-enhancement---talawa-mobile",level:3},{value:"Hybrid: Hybrid Innovation",id:"hybrid-hybrid-innovation",level:3}];function c(e){const n={a:"a",br:"br",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,t.jsx)(n.p,{children:"Welcome to our GSoC ideas page! Get familiar with our general philosophy by reading this section. The ideas follow afterwards."}),"\n",(0,t.jsx)(n.h3,{id:"general-considerations",children:"General Considerations"}),"\n",(0,t.jsx)(n.p,{children:"This is not an exhaustive list of ideas, but they broadly classify the types of features on which we'd like to focus our attentions."}),"\n",(0,t.jsx)(n.p,{children:"You are open to propose your own solutions."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"We encourage candidates to think laterally."}),"\n",(0,t.jsx)(n.li,{children:"Take the initiative and consider something hybrid taking thoughts from various ideas posted here or something totally new."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"We want ideas that will have a material impact on the project"}),"\n",(0,t.jsx)(n.p,{children:"Remember, the ideas list is just a guide for what we feel could be achieved, and not a strict list of requirements. Think of the overall goal of making a better product. Picking a subset of suggestions and expanding them beyond our expectations shows your initiative."}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"NOTE:"})," If you feel the project ideas will take too much time as stated, then:"]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Add that to your proposal"}),"\n",(0,t.jsx)(n.li,{children:"Include what you think a reasonable scope should be."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"We need your ideas to be completed on time with 100% test cases with each PR."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Brittle code that breaks easily does not help the project"}),"\n",(0,t.jsx)(n.li,{children:"Incomplete functionality is not acceptable unless specifically stated."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"If there are any dependencies on other project ideas, then state it. Also include additional or alternative things that you would do if the dependencies are not completed in your desired time frame"}),"\n",(0,t.jsx)(n.p,{children:"The project is so much in its infancy that we'll accept any good idea that users will want or will facilitate that they could want. They must significantly advance our goal of having an MVP within the year."}),"\n",(0,t.jsxs)(n.p,{children:['We also welcome any other ideas that we could use. Please review the "Desired Features" section of this website for ',(0,t.jsx)(n.strong,{children:"even more ideas"})," and further necessary information."]}),"\n",(0,t.jsx)(n.h3,{id:"internship-participants",children:"Internship Participants"}),"\n",(0,t.jsx)(n.p,{children:"Many of you reading this page are interested in participating in our various internship programs (eg. Google Summer of Code, GitHub Externship, Google Summer of Docs, Outreachy, etc.)."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Make sure to read the relevant ",(0,t.jsx)(n.code,{children:"Introduction"})," and ",(0,t.jsx)(n.code,{children:"Application Guide"}),"/ ",(0,t.jsx)(n.code,{children:"Contribution Process"})," pages first.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"./gsoc-introduction",children:"GSoC Introduction"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"./gsoc-application-process",children:"GSoC Application Guide"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Review the ",(0,t.jsx)(n.a,{href:"../internship-selection-criteria",children:"Selection Criteria"})," to ensure you meet all the requirements for a good proposal."]}),"\n",(0,t.jsxs)(n.li,{children:["Use the ",(0,t.jsx)(n.a,{href:"../internship-application-template",children:"Application Template"})," as a guide to formatting your application. The tips on this page are very important."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Good luck!"}),"\n",(0,t.jsx)(n.h3,{id:"documentation",children:"Documentation"}),"\n",(0,t.jsx)(n.p,{children:"We need to reduce the learning curve of contributors and sysadmins alike. Project work needs to be well documented in our code so that tools can eventually automatically add it to our documentation websites."}),"\n",(0,t.jsx)(n.h3,{id:"testing",children:"Testing"}),"\n",(0,t.jsx)(n.p,{children:"All code submitted must be tested. We are working towards getting to 100% test code coverage on all Talawa repositories. This will mean that you will have to write tests for new code you write or modify."}),"\n",(0,t.jsx)(n.p,{children:"The test percent code coverage requirement will incrementally rise with each pull request. In some cases you may have to write a few extra tests for code you may not have updated. We hope this will be rare."}),"\n",(0,t.jsx)(n.p,{children:"Write code that will work in the long term. Eliminate brittle code that will easily break."}),"\n",(0,t.jsx)(n.h3,{id:"repository-languages-and-skills",children:"Repository Languages and Skills"}),"\n",(0,t.jsx)(n.p,{children:"Here is a list of basic skills that will be required for each repository."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Talawa:"})," Flutter / Dart, GraphQL"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Talawa-API:"})," Typescript, GraphQL, MongoDB"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Talawa-Admin Portal:"})," TypeScript"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"There are others, but these are the primary ones that will guide your contributions."}),"\n",(0,t.jsx)(n.h3,{id:"impact-definition",children:"Impact Definition"}),"\n",(0,t.jsx)(n.p,{children:"We have categorized the various ideas according to the degree of impact they will have to the project. Use these definitions to understand how each idea will affect our overall project goals."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Low-hanging fruit:"})," These projects require minimal familiarity with the codebase and basic technical knowledge. They are relatively short, with clear goals."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Risky/Exploratory:"})," These projects push the scope boundaries of our development efforts. They might require expertise in an area not covered by our current development team. They might take advantage of a new technology. There is a reasonable chance that the project might be less successful, but the potential rewards make it worth the attempt."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Fun/Peripheral:"})," These projects might not be related to the current core development focus, but create new innovations and new perspective for our project."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Core development:"})," These projects derive from the ongoing work from the core of our development team. The list of features and bugs is never-ending, and help is always welcome."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Infrastructure/Automation:"})," These projects are the code that our organization uses to get our development work done; for example, projects that improve the automation of releases, regression tests and automated builds. This is a category in which a contributor can be really helpful, doing work that the development team has been putting off while they focus on core development."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"difficulty",children:"Difficulty"}),"\n",(0,t.jsx)(n.p,{children:"Most of our project ideas require knowledge of two or more programming languages. Meaningful PRs that prove your understanding of the repos will always be beneficial. We have created testing issues specifically for this purpose."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Hard:"})," Requires dominion of the language used by the repo most affected by the project. A good working knowledge of the languages used by other affected repositories will be needed."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Medium:"})," A good working knowledge of the languages used by affected repositories will be needed."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Easy:"})," A beginner's level knowledge of the languages is sufficient."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"research",children:"Research"}),"\n",(0,t.jsx)(n.p,{children:"Talawa is a suite of applications that are aimed at managing the memberships of community based organizations. This concept may be new to you, and we suggest you research non-profit organization and open source software project management software as a starting point. Talawa needs to have a broader reach and your additions to our ideas will make the difference. We have included links to YouTube videos on this page that will be useful in improving your understanding."}),"\n",(0,t.jsx)(n.p,{children:"Your solution should ideally consider the:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["ability of typical small community organizations with limited resources to:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"get tech support to maintain the application"}),"\n",(0,t.jsx)(n.li,{children:"have tech-savvy users"}),"\n",(0,t.jsx)(n.li,{children:"afford long term costs"}),"\n",(0,t.jsx)(n.li,{children:"need all membership information completely under their control"}),"\n",(0,t.jsx)(n.li,{children:"manage services outside the applications"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"impact of using third party services"}),"\n",(0,t.jsx)(n.li,{children:"performance / usability trade-offs"}),"\n",(0,t.jsx)(n.li,{children:"potential data residency law requirements"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"other",children:"Other"}),"\n",(0,t.jsx)(n.p,{children:"We will not support administrative functions in the mobile app."}),"\n",(0,t.jsx)(n.h2,{id:"idea-areas",children:"Idea Areas"}),"\n",(0,t.jsx)(n.p,{children:"This section outlines the primary features we'd like to implement in the coming months with impacts on all the applications."}),"\n",(0,t.jsxs)(n.p,{children:["Please read the ",(0,t.jsx)(n.code,{children:"Research"})," section of this document for background information"]}),"\n",(0,t.jsx)(n.h3,{id:"improved-file-uploads-and-security",children:"Improved File Uploads and Security"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," We need a better solution for handling files uploaded from Talawa clients. GraphQL is unsuitable for file access and, storing files in the code tree with only a ",(0,t.jsx)(n.code,{children:".gitignore"})," file as protection is risky."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Objects must be:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Stored in a location outside the code tree"}),"\n",(0,t.jsx)(n.li,{children:"Accessed using industry best practices and libraries that are unlikely to be deprecated or abandoned."}),"\n",(0,t.jsx)(n.li,{children:"Deduplicated."}),"\n",(0,t.jsx)(n.li,{children:"Encrypted whenever and wherever possible."}),"\n",(0,t.jsx)(n.li,{children:"Stored in the same way independent of their size, type or other characteristics."}),"\n",(0,t.jsx)(n.li,{children:"Screened for malicious content."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Other","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"By default, storage must be accessible via the system's locally accessible filesystem as a configurable parameter(s)."}),"\n",(0,t.jsx)(n.li,{children:"The use of cloud storage services is discouraged at this time."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"References:"})," There have been extensive discussions about this which should help in evaluating options.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/PalisadoesFoundation/talawa-api/pull/1168",children:"https://github.com/PalisadoesFoundation/talawa-api/pull/1168"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/PalisadoesFoundation/talawa-api/issues/952",children:"https://github.com/PalisadoesFoundation/talawa-api/issues/952"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Aashima Wadhwa - @aashimawadhwa (Primary)"}),"\n",(0,t.jsx)(n.li,{children:"Tasneem Koushar - @tasneemkoushar (Secondary)"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"self-hosted-chat-and-notifications",children:"Self Hosted Chat and Notifications"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," The Talawa apps are closely coupled with cloud services which creates operational concerns.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"This greatly complicates setup as each new service requires new externally controlled configuration parameters."}),"\n",(0,t.jsx)(n.li,{children:"It also adds greater troubleshooting and billing complexity for organizations that will not be tech-savvy."}),"\n",(0,t.jsxs)(n.li,{children:["Small organizations may also find it difficult to comply with new data residency laws when using international services.",(0,t.jsx)(n.br,{}),"\n","For this idea there must be no dependency on any third party cloud service providers, all the code must run on the API server."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Chat"})," : A key component of the Talawa application suite is chat. Though some endpoints have been created, the feature has not been fully activated and deployed. Chat must be:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Hosted on the API server. We expect the typical Talawa deployment to be small and hosted by communities with limited funding that may not be able to afford cloud additional services."}),"\n",(0,t.jsx)(n.li,{children:"Available as 1 to 1 and 1 to many group chat options"}),"\n",(0,t.jsx)(n.li,{children:"Automatically available to registered attendees of events as a dedicated group chat instance."}),"\n",(0,t.jsx)(n.li,{children:"Encrypted whenever and wherever possible"}),"\n",(0,t.jsx)(n.li,{children:"Capable of allowing users to reply to any historical comment."}),"\n",(0,t.jsx)(n.li,{children:"Allow administrators to respond in various ways to complaints about chats."}),"\n",(0,t.jsx)(n.li,{children:"Have the ability for older chats to be purged from the system"}),"\n",(0,t.jsx)(n.li,{children:"Assume that most communities using the chat system will be small. Research typical community sizes, seating and event attendance for various community based organizations in designing your solution. Consider easy to implement scalability if required."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Notifications"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Identify an acceptable way to have notifications handled on the local server"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Dominic Mills - @DMills27 (Primary)"}),"\n",(0,t.jsx)(n.li,{children:"Kevonia Tomlinson - @Kevoniat (Secondary)"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development, Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"ai-powered-improvements-to-community-health",children:"AI Powered Improvements to Community Health"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," We want to enhance community interaction and moderation with AI. Implement various features that leverage AI to create more nuanced community interactions that anticipate user interactions, receive collaborative recommendations, and streamline task management with data-driven insights. Selected participants will integrate these key features in the Talawa Mobile App, to improve user experience and facilitate efficient moderation."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"})," Consider ways to:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Integrate sentiment analysis to gauge the emotional tone of discussions, helping to identify and address potential issues within the community."}),"\n",(0,t.jsx)(n.li,{children:"Use AI-powered summarization techniques to generate concise summaries of lengthy discussions or documents, making it easier for users to grasp key points."}),"\n",(0,t.jsx)(n.li,{children:"Use natural language processing (NLP) algorithms to automate content moderation, identifying and flagging inappropriate or spammy content."}),"\n",(0,t.jsx)(n.li,{children:"Utilize machine learning models to predict user engagement patterns, helping community organizers understand when to schedule events or post important updates for maximum impact."}),"\n",(0,t.jsx)(n.li,{children:"Implement collaborative filtering algorithms to suggest groups, subgroups, or content based on what similar users with shared interests are engaging with."}),"\n",(0,t.jsx)(n.li,{children:"Implement predictive analytics to help users and groups estimate the time needed to complete tasks and identify potential bottlenecks in project timelines."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Reference:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"An Admin must not rely exclusively on AI for the features you suggest as they may not choose to activate AI."}),"\n",(0,t.jsx)(n.li,{children:"Non-profit organizations that we expect to use Talawa are often underfunded and will not have budgets to purchase powerful computing resources. As they often have small memberships, they will not have sufficient numbers of users to generate adequate data sets to train models. You will need to consider ways to use external sources that require minimum to no configuration requirements and cost. Open source solutions would be preferred."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Dominic Mills - @DMills27 (Primary)"}),"\n",(0,t.jsx)(n.li,{children:"Shannika Jackson - @bonnie-23 (Secondary)"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"ai-powered-automated-testing",children:"AI Powered Automated Testing"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," This project idea aims to implement AI-powered testing automation for both Talawa-Admin and Talawa-API, encompassing test case generation, dynamic test suite optimization, and production environment testing. By leveraging artificial intelligence, the goal is to enhance the efficiency, accuracy, and adaptability of the testing process, ensuring robust and reliable performance."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Test Case Generation:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Identify and integrate AI tools or frameworks capable of generating test cases based on code changes and requirements."}),"\n",(0,t.jsx)(n.li,{children:"Utilize AI algorithms to comprehend code modifications and automatically generate relevant test scenarios."}),"\n",(0,t.jsx)(n.li,{children:"Explore tools for AI-assisted test case generation."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Dynamic Test Suite Optimization:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Implement an AI-driven solution to dynamically optimize the test suite based on code changes."}),"\n",(0,t.jsx)(n.li,{children:"Utilize machine learning models to identify test cases that need prioritization or skipping based on the impact of code modifications."}),"\n",(0,t.jsx)(n.li,{children:"Ensure efficient resource utilization by dynamically adjusting the test suite."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Production Environment Testing:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Develop an automated testing pipeline tailored for the production environment."}),"\n",(0,t.jsx)(n.li,{children:"Leverage AI to simulate real-world scenarios and user interactions, ensuring a production-like testing environment."}),"\n",(0,t.jsx)(n.li,{children:"Implement AI algorithms to identify and prioritize critical test cases for the production environment."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"End to End Testing:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"We need a way to test the applications end to end for the correct functionality. Our merged PRs often cause functionality to break in ways not dectectable by our unit testsing."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Reference:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Non-profit organizations using Talawa may have budget constraints and limited computing resources. Consider open-source solutions and external sources that require minimal configuration and cost for AI-powered testing. It is essential to design the solution keeping in mind the resource limitations of the target user base."}),"\n",(0,t.jsxs)(n.li,{children:["We have been investigating products such as:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Diffblue Cover"}),"\n",(0,t.jsx)(n.li,{children:"Parasoft"}),"\n",(0,t.jsx)(n.li,{children:"TestPilot"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to Update:"})," Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Tasneem Koushar - @tasneemkoushar (Primary)"}),"\n",(0,t.jsx)(n.li,{children:"Md Noman Khan - @noman2002 (Secondary)"}),"\n",(0,t.jsx)(n.li,{children:"Kukade Siddhesh Bhupendra - @SiddheshKukade (Scondary)"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"event-attendance---talawa-admin",children:"Event Attendance - Talawa Admin"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," Administrators will need features to improve the management of, and reporting on, event attendance. For this to be most effective, event attendance will need to be accessed from either from:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["A member's profile (",(0,t.jsx)(n.em,{children:"Member Profile"}),") view."]}),"\n",(0,t.jsxs)(n.li,{children:["An event's detail page (",(0,t.jsx)(n.em,{children:"Event Detail"}),") views."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"})," This project idea is more prescriptive than others in the list because we need to get the basic structure correct as it will have a long term impact on our repositories. There will be lots of ways for you transform this foundation into an impressive result.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Member Profile:"})," We need additional functionality to the member profile screen to achieve this goal.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance"}),": A button or menu item should be presented (Admins only) on each member's profile. When selected, this should display an attendance view.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance View:"})," This should display a list of events that the member has attended and any upcoming events the member is registered to attend.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["If the member has neither attended a past event nor is registered for an upcoming event options should be presented to the admin user to;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Invite the selected member to upcoming events."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["If the member has attended past events or is registered for upcoming events, display the following attributes for each event in the list.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Event Name:"})," The name of the event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Date of Event:"})," The scheduled start date for the event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Recurring Flag:"})," A flag indicating if the event ids a recurring event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Task Flag:"})," A flag indicating that the member has been assigned one or multiple tasks for the event"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["The admin user must have the ability to toggle between a list of ",(0,t.jsx)(n.em,{children:"past events"})," attended by the selected member and ",(0,t.jsx)(n.em,{children:"upcoming events"})," they are registered for."]}),"\n",(0,t.jsxs)(n.li,{children:["The admin user must have the ability to interact with the list of events being displayed. (S)he must be able to:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Search:"})," Search the displayed event list for an event by ",(0,t.jsx)(n.em,{children:"event name"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Sort:"})," Sort the displayed event list by ",(0,t.jsx)(n.em,{children:"event name"})," or by ",(0,t.jsx)(n.em,{children:"event date"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Filter:"})," Filter the displayed event list by a date range based on ",(0,t.jsx)(n.em,{children:"event date"})," or by one or multiple ",(0,t.jsx)(n.em,{children:"event tags"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["The admin user must be able to select an event in the list and navigate to the ",(0,t.jsx)(n.em,{children:"event detail"})," view."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Event Detail"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Event Attendance Management"}),": The user (Admins only) must be presented with a button or menu item for ",(0,t.jsx)(n.em,{children:"Attendance"}),". When this item is selected the admin user must be navigated to a list of ",(0,t.jsx)(n.em,{children:"attendees"})," to the selected event.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["For each item in the list of Attendees display the following attributes;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Member Name"}),": Name of registered member that attended the event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Member Status"}),": The status of the member in the organization"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Number of Events Attended"}),": The number of events attended by the member;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"This month"}),"\n",(0,t.jsx)(n.li,{children:"This year"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["If the selected event is a ",(0,t.jsx)(n.em,{children:"past event"})," or ",(0,t.jsx)(n.em,{children:"future event"}),", display the list of attendees and/or invitees for the event where relevant."]}),"\n",(0,t.jsx)(n.li,{children:"Flag attendees that performed a role or was assigned to an Action Item for the event"}),"\n",(0,t.jsxs)(n.li,{children:["If the event is part of a ",(0,t.jsx)(n.em,{children:"recurring event"}),", the admin user must be presented with options to;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"View a list of past events in the series"}),"\n",(0,t.jsx)(n.li,{children:"Edit all events in the series"}),"\n",(0,t.jsx)(n.li,{children:"Edit the current event and future occurrences of the event"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["The Admin user must be able to ",(0,t.jsx)(n.em,{children:"Check-In"})," a member to the event.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"If people turn up at the door, and they are not in the system, it must be possible to add them as part of the check-in process (USERS and NON_USERs alike)."}),"\n",(0,t.jsx)(n.li,{children:"Events requiring registration must only be able to check-in people who have registered. It must also be possible to add, register and check-in people at the door as an exception if the venue has the space."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Event Attendance Reporting"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Reporting and data visualization is also required for events. The following charts and measures must be displayed;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Total number attendees"})," for the event"]}),"\n",(0,t.jsxs)(n.li,{children:["For recurring events, historical attendance must be reported on;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance Trend"}),"; Charting","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"6 months"}),"\n",(0,t.jsx)(n.li,{children:"12 months"}),"\n",(0,t.jsx)(n.li,{children:"24 months"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance Frequency"}),"; the number of persons attending the selected event for the;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"First time"}),"\n",(0,t.jsx)(n.li,{children:"Second time"}),"\n",(0,t.jsx)(n.li,{children:"Third time"}),"\n",(0,t.jsx)(n.li,{children:"Fourth time"}),"\n",(0,t.jsx)(n.li,{children:"Greater than 5 times"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"The admin should be able to view the list of attendees in each frequency bucket"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance Demography"}),"; the number of attendants grouped by;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Gender"}),"\n",(0,t.jsx)(n.li,{children:"Member Status"}),"\n",(0,t.jsx)(n.li,{children:"Age Group"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Think of novel ways of tabulating historical attendance for recurring events"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"NOTE:"})," These are ongoing efforts in which API and Admin CRUD work has been happening for months. You will need to integrate these efforts into your project, and make improvements. We feel the other needs of this project will require a majority of your time.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Making recurring meetings flawless"}),"\n",(0,t.jsx)(n.li,{children:"Adding improved attendance tracking"}),"\n",(0,t.jsx)(n.li,{children:"Improving user profile management"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Other:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Think of the many ways in which you could improve this outline."}),"\n",(0,t.jsx)(n.li,{children:"You will need to write valid tests for this work"}),"\n",(0,t.jsx)(n.li,{children:"You may want to add features to one or more repositories to facilitate your idea."}),"\n",(0,t.jsxs)(n.li,{children:["The challenge will be in creating an intuitive UI/UX to make these features desirable. The UI/UX must conform with our design guide and Figma files found here: ",(0,t.jsx)(n.a,{href:"https://docs.talawa.io/docs/design/ux/ux-design-system",children:"https://docs.talawa.io/docs/design/ux/ux-design-system"})]}),"\n",(0,t.jsx)(n.li,{children:"Support for this feature was added to Talawa API in the past year. We welcome GitHub issues to verify and rectify the expected functionality of this API support during the GSoC evaluation period."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Shannika Jackson - @bonnie-23 (Primary)"}),"\n",(0,t.jsx)(n.li,{children:"Dominic Mills - @DMills27 (Secondary)"}),"\n",(0,t.jsx)(n.li,{children:"Aashima Wadhwa - @aashimawadhwa (Secondary)"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"user-tag-management---talawa-admin",children:"User Tag Management - Talawa Admin"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description"}),": We need a comprehensive user tag management system for Talawa Admin to address current limitations and enhance community organisation. This system will introduce both automatic and manual tag allotment, hierarchical tag structures, and CRUD operations.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The current lack of a robust tag management system hinders effective organisation and communication within the Talawa community. The proposed system aims to streamline user categorization, facilitating targeted communication and enhancing community engagement."}),"\n",(0,t.jsx)(n.li,{children:"This should not be confused with hashtags or tagging someone in a chat. This is for applying a label/category to User and Event objects"}),"\n",(0,t.jsx)(n.li,{children:"Support for this feature was added to Talawa API in the past year. We welcome GitHub issues to verify and rectify the expected functionality of this API support during the GSoC evaluation period."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes"}),":","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Automatic tag allotment based on predefined criteria."}),"\n",(0,t.jsx)(n.li,{children:"Manual tag allotment by Admins and/or Super Admins."}),"\n",(0,t.jsx)(n.li,{children:"Hierarchical tag structures with parent and nested sub-tags."}),"\n",(0,t.jsx)(n.li,{children:"CRUD operations for tags (Create, Read, Update, Delete)."}),"\n",(0,t.jsx)(n.li,{children:"Grouping of users based on tags."}),"\n",(0,t.jsx)(n.li,{children:"Broadcasting emails/messages to a group of users with certain tags."}),"\n",(0,t.jsx)(n.li,{children:"Filtering of users based on tags for targeted communication."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to Update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to the mentioned repositories."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Rishav Jha - @rishav-jha-mech (Primary)"}),"\n",(0,t.jsx)(n.li,{children:"Nitya Pasrija - @Nitya-Pasrija (Secondary)"}),"\n",(0,t.jsx)(n.li,{children:"Noble Mittal - @beingnoble03 (Secondary)"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"event-parity---talawa-mobile",children:"Event Parity - Talawa Mobile"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," We have recently added many new features to the API to that enhance event management. These are not reflected in our mobile app. 2. ",(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Requirements:"})," Your proposal must meet the guidelines below. It must:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Provide user feature parity with the Talawa Admin User Portal for event management."}),"\n",(0,t.jsx)(n.li,{children:"Not add any Admin or Super Admin features. These must remain solely in the Talawa-Admin web app."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Other:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["The challenge will be in creating an intuitive UI/UX to make these features desirable. The UI/UX must conform with our design guide and Figma files found here: ",(0,t.jsx)(n.a,{href:"https://docs.talawa.io/docs/design/ux/ux-design-system",children:"https://docs.talawa.io/docs/design/ux/ux-design-system"})]}),"\n",(0,t.jsx)(n.li,{children:"Significant updates to this feature were added to Talawa API in the past year. We welcome GitHub issues to verify and rectify the expected functionality of this API support during the GSoC evaluation period."}),"\n",(0,t.jsx)(n.li,{children:"Implemet fundraising campaigns."}),"\n",(0,t.jsx)(n.li,{children:"Implement tags in the mobile app."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," User Tag Management"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Md Noman Khan - @noman2002 (Primary)"}),"\n",(0,t.jsx)(n.li,{children:"Mikey Lue - @JamaicanFriedChicken (Secondary)"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"offline-capability-enhancement---talawa-mobile",children:"Offline Capability Enhancement - Talawa Mobile"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," Talawa's mobile application currently lacks robust offline capabilities, unlike many other social media apps. This compromises the app's stability and reliability. Additionally, the absence of a proper app state caching mechanism leads to performance issues and unnecessary network usage overhead."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Your proposal should focus on enhancing Talawa Mobile's offline capabilities to achieve feature parity with other social media platforms."}),"\n",(0,t.jsxs)(n.li,{children:["The solution should include:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Implementing offline functionality that gracefully handles offline situations, allowing users to seamlessly interact with the app and cache their actions and app state locally."}),"\n",(0,t.jsx)(n.li,{children:"Synchronizing user actions and app state with the server once the app regains connectivity."}),"\n",(0,t.jsx)(n.li,{children:"Implementing a robust caching mechanism throughout the app to enhance user experience, reduce internet usage overhead, and improve performance."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Integrate chat in the mobile app."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Other Considerations:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Creating an intuitive UI/UX to make the offline features desirable is a significant challenge. The UI/UX must align with Talawa's design guide and Figma files, which can be found ",(0,t.jsx)(n.a,{href:"https://docs.talawa.io/docs/design/ux/ux-design-system",children:"here"}),"."]}),"\n",(0,t.jsx)(n.li,{children:"Note: Ensure that the proposed features do not include any Admin or Super Admin functionalities, which should remain exclusive to the Talawa-Admin web app."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to Update:"})," Talawa, Talawa-API"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Proficiency in the code stacks related to the Talawa and Talawa-API repositories. Refer to the introduction section for more details."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," Self Hosted Chat and Notifications"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Md Noman Khan - @noman2002 (Primary)"}),"\n",(0,t.jsx)(n.li,{children:"Ayush Chaudhary - @Ayush0Chaudhary (Secondary)"}),"\n",(0,t.jsx)(n.li,{children:"Jason Odoom - @jasonodoom (Secondary)"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"hybrid-hybrid-innovation",children:"Hybrid: Hybrid Innovation"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," Do the ideas need something more? What completely new thoughts could be applied to the existing ideas? If you have answers to these questions then this section is for you."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"})," Your proposal must meet the guidelines below. It must:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Not depend on other participants. There should be minimal impact by other participants disappearing or doing a very bad or very good job."}),"\n",(0,t.jsx)(n.li,{children:"Add completely new features not previously stated in ideas."}),"\n",(0,t.jsx)(n.li,{children:"Create features that users will want or facilitate new features that will be the groundwork for features that they would want."}),"\n",(0,t.jsxs)(n.li,{children:["Be suitable for use by most non-profit organization.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"We are not interested in membership subscriptions and any related financial management at this time."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Justify 350 hours of work."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Tyrone Taylor - @ttaylor92 (Primary)"}),"\n",(0,t.jsx)(n.li,{children:"Ayush Chaudhary - @Ayush0Chaudhary (Secondary)"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>l,x:()=>o});var s=i(6540);const t={},r=s.createContext(t);function l(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/227cc2f6.a3fef5ea.js b/assets/js/227cc2f6.a3fef5ea.js new file mode 100644 index 0000000..7d96f27 --- /dev/null +++ b/assets/js/227cc2f6.a3fef5ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[6218],{5067:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"internships/gsoc/gsoc-ideas","title":"GSoC Ideas","description":"NOTE: These ideas are subject to change at any time prior to us submitting our GSoC 2025 Organization application. Ideas may be added, removed or updated up to this time.","source":"@site/docs/internships/gsoc/ideas.md","sourceDirName":"internships/gsoc","slug":"/internships/gsoc/gsoc-ideas","permalink":"/docs/internships/gsoc/gsoc-ideas","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/internships/gsoc/ideas.md","tags":[],"version":"current","frontMatter":{"id":"gsoc-ideas","title":"GSoC Ideas"},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/docs/internships/gsoc/gsoc-introduction"},"next":{"title":"Applying","permalink":"/docs/internships/gsoc/gsoc-application-process"}}');var o=i(4848),s=i(8453);const r={id:"gsoc-ideas",title:"GSoC Ideas"},a=void 0,l={},d=[{value:"Introduction",id:"introduction",level:2},{value:"General Considerations",id:"general-considerations",level:3},{value:"Internship Participants",id:"internship-participants",level:3},{value:"Documentation",id:"documentation",level:3},{value:"Testing",id:"testing",level:3},{value:"Repository Languages and Skills",id:"repository-languages-and-skills",level:3},{value:"Impact Definition",id:"impact-definition",level:3},{value:"Difficulty",id:"difficulty",level:3},{value:"Ideas",id:"ideas",level:2}];function c(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"NOTE:"})," These ideas are subject to change at any time prior to us submitting our GSoC 2025 Organization application. Ideas may be added, removed or updated up to this time."]}),"\n",(0,o.jsx)(t.p,{children:"If we are accepted, there may be additions and minor modifications."}),"\n",(0,o.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,o.jsx)(t.p,{children:"Welcome to our GSoC ideas page! Get familiar with our general philosophy by reading this section. The ideas follow afterwards."}),"\n",(0,o.jsx)(t.h3,{id:"general-considerations",children:"General Considerations"}),"\n",(0,o.jsx)(t.p,{children:"This is not an exhaustive list of ideas, but they broadly classify the types of features on which we'd like to focus our attentions."}),"\n",(0,o.jsx)(t.p,{children:"You are open to propose your own solutions."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsx)(t.li,{children:"We encourage candidates to think laterally."}),"\n",(0,o.jsx)(t.li,{children:"Take the initiative and consider something hybrid taking thoughts from various ideas posted here or something totally new."}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"We want ideas that will have a material impact on the project"}),"\n",(0,o.jsx)(t.p,{children:"Remember, the ideas list is just a guide for what we feel could be achieved, and not a strict list of requirements. Think of the overall goal of making a better product. Picking a subset of suggestions and expanding them beyond our expectations shows your initiative."}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"NOTE:"})," If you feel the project ideas will take too much time as stated, then:"]}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsx)(t.li,{children:"Add that to your proposal"}),"\n",(0,o.jsx)(t.li,{children:"Include what you think a reasonable scope should be."}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"We need your ideas to be completed on time with 100% test cases with each PR."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsx)(t.li,{children:"Brittle code that breaks easily does not help the project"}),"\n",(0,o.jsx)(t.li,{children:"Incomplete functionality is not acceptable unless specifically stated."}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"If there are any dependencies on other project ideas, then state it. Also include additional or alternative things that you would do if the dependencies are not completed in your desired time frame"}),"\n",(0,o.jsx)(t.p,{children:"The project is so much in its infancy that we'll accept any good idea that users will want or will facilitate that they could want. They must significantly advance our goal of having an MVP within the year."}),"\n",(0,o.jsxs)(t.p,{children:['We also welcome any other ideas that we could use. Please review the "Desired Features" section of this website for ',(0,o.jsx)(t.strong,{children:"even more ideas"})," and further necessary information."]}),"\n",(0,o.jsx)(t.h3,{id:"internship-participants",children:"Internship Participants"}),"\n",(0,o.jsx)(t.p,{children:"Many of you reading this page are interested in participating in our various internship programs (eg. Google Summer of Code, GitHub Externship, Google Summer of Docs, Outreachy, etc.)."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["Make sure to read the relevant ",(0,o.jsx)(t.code,{children:"Introduction"})," and ",(0,o.jsx)(t.code,{children:"Application Guide"}),"/ ",(0,o.jsx)(t.code,{children:"Contribution Process"})," pages first.","\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.a,{href:"./gsoc-introduction",children:"GSoC Introduction"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.a,{href:"./gsoc-application-process",children:"GSoC Application Guide"}),"."]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["Review the ",(0,o.jsx)(t.a,{href:"../internship-selection-criteria",children:"Selection Criteria"})," to ensure you meet all the requirements for a good proposal."]}),"\n",(0,o.jsxs)(t.li,{children:["Use the ",(0,o.jsx)(t.a,{href:"../internship-application-template",children:"Application Template"})," as a guide to formatting your application. The tips on this page are very important."]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"Good luck!"}),"\n",(0,o.jsx)(t.h3,{id:"documentation",children:"Documentation"}),"\n",(0,o.jsx)(t.p,{children:"We need to reduce the learning curve of contributors and sysadmins alike. Project work needs to be well documented in our code so that tools can eventually automatically add it to our documentation websites."}),"\n",(0,o.jsx)(t.h3,{id:"testing",children:"Testing"}),"\n",(0,o.jsx)(t.p,{children:"All code submitted must be tested. We are working towards getting to 100% test code coverage on all repositories. This will mean that you will have to write tests for new code you write or modify."}),"\n",(0,o.jsx)(t.p,{children:"The test percent code coverage requirement will incrementally rise with each pull request. In some cases you may have to write a few extra tests for code you may not have updated. We hope this will be rare."}),"\n",(0,o.jsx)(t.p,{children:"Write code that will work in the long term. Eliminate brittle code that will easily break."}),"\n",(0,o.jsx)(t.h3,{id:"repository-languages-and-skills",children:"Repository Languages and Skills"}),"\n",(0,o.jsx)(t.p,{children:"Here is a list of basic skills that will be required for each repository."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Talawa:"})," Flutter / Dart, GraphQL"]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Talawa-API:"})," Typescript, GraphQL, MongoDB"]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Talawa-Admin Portal:"})," TypeScript"]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Switchmap-NG:"})," Python"]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Pattoo"}),": Python"]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"There are others, but these are the primary ones that will guide your contributions."}),"\n",(0,o.jsx)(t.h3,{id:"impact-definition",children:"Impact Definition"}),"\n",(0,o.jsx)(t.p,{children:"We have categorized the various ideas according to the degree of impact they will have to the project. Use these definitions to understand how each idea will affect our overall project goals."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Low-hanging fruit:"})," These projects require minimal familiarity with the codebase and basic technical knowledge. They are relatively short, with clear goals."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Risky/Exploratory:"})," These projects push the scope boundaries of our development efforts. They might require expertise in an area not covered by our current development team. They might take advantage of a new technology. There is a reasonable chance that the project might be less successful, but the potential rewards make it worth the attempt."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Fun/Peripheral:"})," These projects might not be related to the current core development focus, but create new innovations and new perspective for our project."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Core development:"})," These projects derive from the ongoing work from the core of our development team. The list of features and bugs is never-ending, and help is always welcome."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Infrastructure/Automation:"})," These projects are the code that our organization uses to get our development work done; for example, projects that improve the automation of releases, regression tests and automated builds. This is a category in which a contributor can be really helpful, doing work that the development team has been putting off while they focus on core development."]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"difficulty",children:"Difficulty"}),"\n",(0,o.jsx)(t.p,{children:"Most of our project ideas require knowledge of two or more programming languages. Meaningful PRs that prove your understanding of the repos will always be beneficial. We have created testing issues specifically for this purpose."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Hard:"})," Requires dominion of the language used by the repo most affected by the project. A good working knowledge of the languages used by other affected repositories will be needed."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Medium:"})," A good working knowledge of the languages used by affected repositories will be needed."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.strong,{children:"Easy:"})," A beginner's level knowledge of the languages is sufficient."]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"ideas",children:"Ideas"}),"\n",(0,o.jsx)(t.p,{children:"Coming Soon!"})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8453:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>a});var n=i(6540);const o={},s=n.createContext(o);function r(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2d763777.4c8e8d1a.js b/assets/js/2d763777.4c8e8d1a.js new file mode 100644 index 0000000..536fad3 --- /dev/null +++ b/assets/js/2d763777.4c8e8d1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[6562],{9728:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});const s=JSON.parse('{"id":"projects/pattoo","title":"Pattoo","description":"Pattoo is a suite of ETL applications that store time series data with various visualization features.","source":"@site/docs/projects/pattoo.md","sourceDirName":"projects","slug":"/projects/pattoo","permalink":"/docs/projects/pattoo","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/projects/pattoo.md","tags":[],"version":"current","frontMatter":{"title":"Pattoo","id":"pattoo"},"sidebar":"docs","previous":{"title":"Switchmap-NG","permalink":"/docs/projects/switchmap"},"next":{"title":"Git Guide","permalink":"/docs/category/git-guide"}}');var a=o(4848),n=o(8453);const i={title:"Pattoo",id:"pattoo"},r=void 0,c={},p=[];function u(t){const e={a:"a",li:"li",p:"p",ul:"ul",...(0,n.R)(),...t.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(e.p,{children:"Pattoo is a suite of ETL applications that store time series data with various visualization features."}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsx)(e.li,{children:(0,a.jsx)(e.a,{href:"https://pattoo.readthedocs.io/en/latest/",children:"Pattoo Documentation"})}),"\n"]})]})}function d(t={}){const{wrapper:e}={...(0,n.R)(),...t.components};return e?(0,a.jsx)(e,{...t,children:(0,a.jsx)(u,{...t})}):u(t)}},8453:(t,e,o)=>{o.d(e,{R:()=>i,x:()=>r});var s=o(6540);const a={},n=s.createContext(a);function i(t){const e=s.useContext(n);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(a):t.components||a:i(t.components),s.createElement(n.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/62725e77.45018bde.js b/assets/js/62725e77.45018bde.js deleted file mode 100644 index f8e3d76..0000000 --- a/assets/js/62725e77.45018bde.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[8044],{6366:(t,s,e)=>{e.r(s),e.d(s,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"introduction/projects","title":"Projects","description":"Our most active projects include:","source":"@site/docs/introduction/projects.md","sourceDirName":"introduction","slug":"/introduction/projects","permalink":"/docs/introduction/projects","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/introduction/projects.md","tags":[],"version":"current","frontMatter":{"title":"Projects","id":"projects"},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/docs/"},"next":{"title":"Sponsors","permalink":"/docs/introduction/sponsors"}}');var n=e(4848),a=e(8453);const o={title:"Projects",id:"projects"},r=void 0,c={},l=[{value:"Talawa",id:"talawa",level:2},{value:"Pattoo",id:"pattoo",level:2},{value:"Switchmap",id:"switchmap",level:2}];function d(t){const s={a:"a",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.p,{children:"Our most active projects include:"}),"\n",(0,n.jsx)(s.h2,{id:"talawa",children:"Talawa"}),"\n",(0,n.jsx)(s.p,{children:"A suite of applications that help community based organizations manage their memberships. There are many social media, event planning, and fundraising features."}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://docs.talawa.io/",children:"Talawa Documentation"})}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/PalisadoesFoundation/talawa",children:"Talawa"}),": The mobile app.","\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Get started with Talawa Mobile:"})," ",(0,n.jsx)(s.a,{href:"https://github.com/PalisadoesFoundation/talawa/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub Issues without assignees"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/PalisadoesFoundation/talawa-admin",children:"Talawa-Admin"}),": The web app.","\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Get started with Talawa Admin:"})," ",(0,n.jsx)(s.a,{href:"https://github.com/PalisadoesFoundation/talawa-admin/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub Issues without assignees"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/PalisadoesFoundation/talawa-api",children:"Talawa-API GitHub"}),": The API backend","\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Get started with Talawa API:"})," ",(0,n.jsx)(s.a,{href:"https://github.com/PalisadoesFoundation/talawa-api/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub GitHub Issues without assignees"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"pattoo",children:"Pattoo"}),"\n",(0,n.jsx)(s.p,{children:"A suite of ETL applications that store time series data with various visualization features."}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://pattoo.readthedocs.io/en/latest/",children:"Pattoo Documentation"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"switchmap",children:"Switchmap"}),"\n",(0,n.jsx)(s.p,{children:"An information technoloy network topology suite of applications"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://switchmap-ng.readthedocs.io/en/latest/",children:"Switchmap Documentation"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/PalisadoesFoundation/switchmap-ng",children:"Switchmap GitHub"})}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Get started with Switchmap:"})," ",(0,n.jsx)(s.a,{href:"https://github.com/PalisadoesFoundation/switchmap-ng/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub GitHub Issues without assignees"})]}),"\n"]})]})}function h(t={}){const{wrapper:s}={...(0,a.R)(),...t.components};return s?(0,n.jsx)(s,{...t,children:(0,n.jsx)(d,{...t})}):d(t)}},8453:(t,s,e)=>{e.d(s,{R:()=>o,x:()=>r});var i=e(6540);const n={},a=i.createContext(n);function o(t){const s=i.useContext(a);return i.useMemo((function(){return"function"==typeof t?t(s):{...s,...t}}),[s,t])}function r(t){let s;return s=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:o(t.components),i.createElement(a.Provider,{value:s},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/62725e77.e83db385.js b/assets/js/62725e77.e83db385.js new file mode 100644 index 0000000..fc83594 --- /dev/null +++ b/assets/js/62725e77.e83db385.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[8044],{6366:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"introduction/projects","title":"Projects","description":"Our most active projects include:","source":"@site/docs/introduction/projects.md","sourceDirName":"introduction","slug":"/introduction/projects","permalink":"/docs/introduction/projects","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/introduction/projects.md","tags":[],"version":"current","frontMatter":{"title":"Projects","id":"projects"}}');var n=s(4848),a=s(8453);const o={title:"Projects",id:"projects"},r=void 0,c={},l=[{value:"Talawa",id:"talawa",level:2},{value:"Pattoo",id:"pattoo",level:2},{value:"Switchmap",id:"switchmap",level:2}];function d(t){const e={a:"a",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.p,{children:"Our most active projects include:"}),"\n",(0,n.jsx)(e.h2,{id:"talawa",children:"Talawa"}),"\n",(0,n.jsx)(e.p,{children:"A suite of applications that help community based organizations manage their memberships. There are many social media, event planning, and fundraising features."}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:"https://docs.talawa.io/",children:"Talawa Documentation"})}),"\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.a,{href:"https://github.com/PalisadoesFoundation/talawa",children:"Talawa"}),": The mobile app.","\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:"Get started with Talawa Mobile:"})," ",(0,n.jsx)(e.a,{href:"https://github.com/PalisadoesFoundation/talawa/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub Issues without assignees"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.a,{href:"https://github.com/PalisadoesFoundation/talawa-admin",children:"Talawa-Admin"}),": The web app.","\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:"Get started with Talawa Admin:"})," ",(0,n.jsx)(e.a,{href:"https://github.com/PalisadoesFoundation/talawa-admin/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub Issues without assignees"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.a,{href:"https://github.com/PalisadoesFoundation/talawa-api",children:"Talawa-API GitHub"}),": The API backend","\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:"Get started with Talawa API:"})," ",(0,n.jsx)(e.a,{href:"https://github.com/PalisadoesFoundation/talawa-api/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub GitHub Issues without assignees"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"pattoo",children:"Pattoo"}),"\n",(0,n.jsx)(e.p,{children:"A suite of ETL applications that store time series data with various visualization features."}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:"https://pattoo.readthedocs.io/en/latest/",children:"Pattoo Documentation"})}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"switchmap",children:"Switchmap"}),"\n",(0,n.jsx)(e.p,{children:"An information technoloy network topology suite of applications"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:"https://switchmap-ng.readthedocs.io/en/latest/",children:"Switchmap Documentation"})}),"\n",(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:"https://github.com/PalisadoesFoundation/switchmap-ng",children:"Switchmap GitHub"})}),"\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:"Get started with Switchmap:"})," ",(0,n.jsx)(e.a,{href:"https://github.com/PalisadoesFoundation/switchmap-ng/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub GitHub Issues without assignees"})]}),"\n"]})]})}function h(t={}){const{wrapper:e}={...(0,a.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(d,{...t})}):d(t)}},8453:(t,e,s)=>{s.d(e,{R:()=>o,x:()=>r});var i=s(6540);const n={},a=i.createContext(n);function o(t){const e=i.useContext(a);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:o(t.components),i.createElement(a.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/66884f93.6bd37a5c.js b/assets/js/66884f93.6bd37a5c.js new file mode 100644 index 0000000..b9a16a4 --- /dev/null +++ b/assets/js/66884f93.6bd37a5c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[5993],{8967:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>r,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>o,toc:()=>p});const o=JSON.parse('{"id":"projects/switchmap","title":"Switchmap-NG","description":"Switchmap is an information technoloy network topology suite of applications","source":"@site/docs/projects/switchmap.md","sourceDirName":"projects","slug":"/projects/switchmap","permalink":"/docs/projects/switchmap","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/projects/switchmap.md","tags":[],"version":"current","frontMatter":{"title":"Switchmap-NG","id":"switchmap"},"sidebar":"docs","previous":{"title":"Talawa","permalink":"/docs/projects/talawa"},"next":{"title":"Pattoo","permalink":"/docs/projects/pattoo"}}');var n=s(4848),i=s(8453);const c={title:"Switchmap-NG",id:"switchmap"},a=void 0,r={},p=[];function l(t){const e={a:"a",li:"li",ol:"ol",p:"p",strong:"strong",...(0,i.R)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.p,{children:"Switchmap is an information technoloy network topology suite of applications"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:"https://switchmap-ng.readthedocs.io/en/latest/",children:"Switchmap Documentation"})}),"\n",(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:"https://github.com/PalisadoesFoundation/switchmap-ng",children:"Switchmap GitHub"})}),"\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:"Get started with Switchmap:"})," ",(0,n.jsx)(e.a,{href:"https://github.com/PalisadoesFoundation/switchmap-ng/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub GitHub Issues without assignees"})]}),"\n"]})]})}function d(t={}){const{wrapper:e}={...(0,i.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(l,{...t})}):l(t)}},8453:(t,e,s)=>{s.d(e,{R:()=>c,x:()=>a});var o=s(6540);const n={},i=o.createContext(n);function c(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:c(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/90ef4109.e7fa9530.js b/assets/js/90ef4109.e7fa9530.js new file mode 100644 index 0000000..2165979 --- /dev/null +++ b/assets/js/90ef4109.e7fa9530.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[8105],{3128:(e,a,s)=>{s.r(a),s.d(a,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"projects/talawa","title":"Talawa","description":"Talawa is a suite of applications that help community based organizations manage their memberships. There are many social media, event planning, and fundraising features.","source":"@site/docs/projects/talawa.md","sourceDirName":"projects","slug":"/projects/talawa","permalink":"/docs/projects/talawa","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/projects/talawa.md","tags":[],"version":"current","frontMatter":{"title":"Talawa","id":"talawa"},"sidebar":"docs","previous":{"title":"Projects","permalink":"/docs/category/projects"},"next":{"title":"Switchmap-NG","permalink":"/docs/projects/switchmap"}}');var n=s(4848),i=s(8453);const o={title:"Talawa",id:"talawa"},r=void 0,l={},c=[];function d(e){const a={a:"a",li:"li",ol:"ol",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Talawa is a suite of applications that help community based organizations manage their memberships. There are many social media, event planning, and fundraising features."}),"\n",(0,n.jsxs)(a.ol,{children:["\n",(0,n.jsx)(a.li,{children:(0,n.jsx)(a.a,{href:"https://docs.talawa.io/",children:"Talawa Documentation"})}),"\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.a,{href:"https://github.com/PalisadoesFoundation/talawa",children:"Talawa"}),": The mobile app.","\n",(0,n.jsxs)(a.ol,{children:["\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.strong,{children:"Get started with Talawa Mobile:"})," ",(0,n.jsx)(a.a,{href:"https://github.com/PalisadoesFoundation/talawa/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub Issues without assignees"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.a,{href:"https://github.com/PalisadoesFoundation/talawa-admin",children:"Talawa-Admin"}),": The web app.","\n",(0,n.jsxs)(a.ol,{children:["\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.strong,{children:"Get started with Talawa Admin:"})," ",(0,n.jsx)(a.a,{href:"https://github.com/PalisadoesFoundation/talawa-admin/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub Issues without assignees"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.a,{href:"https://github.com/PalisadoesFoundation/talawa-api",children:"Talawa-API GitHub"}),": The API backend","\n",(0,n.jsxs)(a.ol,{children:["\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.strong,{children:"Get started with Talawa API:"})," ",(0,n.jsx)(a.a,{href:"https://github.com/PalisadoesFoundation/talawa-api/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee",children:"GitHub GitHub Issues without assignees"})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:a}={...(0,i.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453:(e,a,s)=>{s.d(a,{R:()=>o,x:()=>r});var t=s(6540);const n={},i=t.createContext(n);function o(e){const a=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),t.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c5292cb6.660525ec.js b/assets/js/c5292cb6.660525ec.js deleted file mode 100644 index c668837..0000000 --- a/assets/js/c5292cb6.660525ec.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[8253],{2223:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"internships/gsoc/gsoc-ideas-20250101","title":"GSoC Ideas","description":"NOTE: These ideas are subject to change at any time prior to us submitting our GSoC 2025 Organization application. Ideas may be added, removed or updated up to this time.","source":"@site/docs/internships/gsoc/ideas-20250101.md","sourceDirName":"internships/gsoc","slug":"/internships/gsoc/gsoc-ideas-20250101","permalink":"/docs/internships/gsoc/gsoc-ideas-20250101","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/internships/gsoc/ideas-20250101.md","tags":[],"version":"current","frontMatter":{"id":"gsoc-ideas-20250101","title":"GSoC Ideas"}}');var t=i(4848),r=i(8453);const o={id:"gsoc-ideas-20250101",title:"GSoC Ideas"},l=void 0,a={},d=[{value:"Introduction",id:"introduction",level:2},{value:"General Considerations",id:"general-considerations",level:3},{value:"Internship Participants",id:"internship-participants",level:3},{value:"Documentation",id:"documentation",level:3},{value:"Testing",id:"testing",level:3},{value:"Repository Languages and Skills",id:"repository-languages-and-skills",level:3},{value:"Impact Definition",id:"impact-definition",level:3},{value:"Difficulty",id:"difficulty",level:3},{value:"Research",id:"research",level:3},{value:"Other",id:"other",level:3},{value:"Talawa Areas",id:"talawa-areas",level:2},{value:"Improved File Uploads and Security",id:"improved-file-uploads-and-security",level:3},{value:"Self Hosted Chat and Notifications",id:"self-hosted-chat-and-notifications",level:3},{value:"AI Powered Improvements to Community Health",id:"ai-powered-improvements-to-community-health",level:3},{value:"AI Powered Automated Testing",id:"ai-powered-automated-testing",level:3},{value:"Event Attendance - Talawa Admin",id:"event-attendance---talawa-admin",level:3},{value:"User Tag Management - Talawa Admin",id:"user-tag-management---talawa-admin",level:3},{value:"Event Parity - Talawa Mobile",id:"event-parity---talawa-mobile",level:3},{value:"Offline Capability Enhancement - Talawa Mobile",id:"offline-capability-enhancement---talawa-mobile",level:3},{value:"Switchmap Areas",id:"switchmap-areas",level:2},{value:"Pattoo Areas",id:"pattoo-areas",level:2},{value:"Hybrid Areas",id:"hybrid-areas",level:2},{value:"Hybrid: Hybrid Innovation",id:"hybrid-hybrid-innovation",level:3}];function c(e){const n={a:"a",br:"br",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"NOTE:"})," These ideas are subject to change at any time prior to us submitting our GSoC 2025 Organization application. Ideas may be added, removed or updated up to this time."]}),"\n",(0,t.jsx)(n.p,{children:"If we are accepted, there may be additions and minor modifications."}),"\n",(0,t.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,t.jsx)(n.p,{children:"Welcome to our GSoC ideas page! Get familiar with our general philosophy by reading this section. The ideas follow afterwards."}),"\n",(0,t.jsx)(n.h3,{id:"general-considerations",children:"General Considerations"}),"\n",(0,t.jsx)(n.p,{children:"This is not an exhaustive list of ideas, but they broadly classify the types of features on which we'd like to focus our attentions."}),"\n",(0,t.jsx)(n.p,{children:"You are open to propose your own solutions."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"We encourage candidates to think laterally."}),"\n",(0,t.jsx)(n.li,{children:"Take the initiative and consider something hybrid taking thoughts from various ideas posted here or something totally new."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"We want ideas that will have a material impact on the project"}),"\n",(0,t.jsx)(n.p,{children:"Remember, the ideas list is just a guide for what we feel could be achieved, and not a strict list of requirements. Think of the overall goal of making a better product. Picking a subset of suggestions and expanding them beyond our expectations shows your initiative."}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"NOTE:"})," If you feel the project ideas will take too much time as stated, then:"]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Add that to your proposal"}),"\n",(0,t.jsx)(n.li,{children:"Include what you think a reasonable scope should be."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"We need your ideas to be completed on time with 100% test cases with each PR."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Brittle code that breaks easily does not help the project"}),"\n",(0,t.jsx)(n.li,{children:"Incomplete functionality is not acceptable unless specifically stated."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"If there are any dependencies on other project ideas, then state it. Also include additional or alternative things that you would do if the dependencies are not completed in your desired time frame"}),"\n",(0,t.jsx)(n.p,{children:"The project is so much in its infancy that we'll accept any good idea that users will want or will facilitate that they could want. They must significantly advance our goal of having an MVP within the year."}),"\n",(0,t.jsxs)(n.p,{children:['We also welcome any other ideas that we could use. Please review the "Desired Features" section of this website for ',(0,t.jsx)(n.strong,{children:"even more ideas"})," and further necessary information."]}),"\n",(0,t.jsx)(n.h3,{id:"internship-participants",children:"Internship Participants"}),"\n",(0,t.jsx)(n.p,{children:"Many of you reading this page are interested in participating in our various internship programs (eg. Google Summer of Code, GitHub Externship, Google Summer of Docs, Outreachy, etc.)."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Make sure to read the relevant ",(0,t.jsx)(n.code,{children:"Introduction"})," and ",(0,t.jsx)(n.code,{children:"Application Guide"}),"/ ",(0,t.jsx)(n.code,{children:"Contribution Process"})," pages first.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"./gsoc-introduction",children:"GSoC Introduction"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"./gsoc-application-process",children:"GSoC Application Guide"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Review the ",(0,t.jsx)(n.a,{href:"../internship-selection-criteria",children:"Selection Criteria"})," to ensure you meet all the requirements for a good proposal."]}),"\n",(0,t.jsxs)(n.li,{children:["Use the ",(0,t.jsx)(n.a,{href:"../internship-application-template",children:"Application Template"})," as a guide to formatting your application. The tips on this page are very important."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Good luck!"}),"\n",(0,t.jsx)(n.h3,{id:"documentation",children:"Documentation"}),"\n",(0,t.jsx)(n.p,{children:"We need to reduce the learning curve of contributors and sysadmins alike. Project work needs to be well documented in our code so that tools can eventually automatically add it to our documentation websites."}),"\n",(0,t.jsx)(n.h3,{id:"testing",children:"Testing"}),"\n",(0,t.jsx)(n.p,{children:"All code submitted must be tested. We are working towards getting to 100% test code coverage on all repositories. This will mean that you will have to write tests for new code you write or modify."}),"\n",(0,t.jsx)(n.p,{children:"The test percent code coverage requirement will incrementally rise with each pull request. In some cases you may have to write a few extra tests for code you may not have updated. We hope this will be rare."}),"\n",(0,t.jsx)(n.p,{children:"Write code that will work in the long term. Eliminate brittle code that will easily break."}),"\n",(0,t.jsx)(n.h3,{id:"repository-languages-and-skills",children:"Repository Languages and Skills"}),"\n",(0,t.jsx)(n.p,{children:"Here is a list of basic skills that will be required for each repository."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Talawa:"})," Flutter / Dart, GraphQL"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Talawa-API:"})," Typescript, GraphQL, MongoDB"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Talawa-Admin Portal:"})," TypeScript"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Switchmap-NG:"})," Python"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Pattoo"}),": Python"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"There are others, but these are the primary ones that will guide your contributions."}),"\n",(0,t.jsx)(n.h3,{id:"impact-definition",children:"Impact Definition"}),"\n",(0,t.jsx)(n.p,{children:"We have categorized the various ideas according to the degree of impact they will have to the project. Use these definitions to understand how each idea will affect our overall project goals."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Low-hanging fruit:"})," These projects require minimal familiarity with the codebase and basic technical knowledge. They are relatively short, with clear goals."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Risky/Exploratory:"})," These projects push the scope boundaries of our development efforts. They might require expertise in an area not covered by our current development team. They might take advantage of a new technology. There is a reasonable chance that the project might be less successful, but the potential rewards make it worth the attempt."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Fun/Peripheral:"})," These projects might not be related to the current core development focus, but create new innovations and new perspective for our project."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Core development:"})," These projects derive from the ongoing work from the core of our development team. The list of features and bugs is never-ending, and help is always welcome."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Infrastructure/Automation:"})," These projects are the code that our organization uses to get our development work done; for example, projects that improve the automation of releases, regression tests and automated builds. This is a category in which a contributor can be really helpful, doing work that the development team has been putting off while they focus on core development."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"difficulty",children:"Difficulty"}),"\n",(0,t.jsx)(n.p,{children:"Most of our project ideas require knowledge of two or more programming languages. Meaningful PRs that prove your understanding of the repos will always be beneficial. We have created testing issues specifically for this purpose."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Hard:"})," Requires dominion of the language used by the repo most affected by the project. A good working knowledge of the languages used by other affected repositories will be needed."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Medium:"})," A good working knowledge of the languages used by affected repositories will be needed."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Easy:"})," A beginner's level knowledge of the languages is sufficient."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"research",children:"Research"}),"\n",(0,t.jsx)(n.p,{children:"Talawa is a suite of applications that is aimed at managing the memberships of community based organizations. This concept may be new to you, and we suggest you research non-profit organization and open source software project management software as a starting point. Talawa needs to have a broader reach and your additions to our ideas will make the difference. We have included links to YouTube videos on this page that will be useful in improving your understanding."}),"\n",(0,t.jsx)(n.p,{children:"Your solution should ideally consider the:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["ability of typical small community organizations with limited resources to:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"get tech support to maintain the application"}),"\n",(0,t.jsx)(n.li,{children:"have tech-savvy users"}),"\n",(0,t.jsx)(n.li,{children:"afford long term costs"}),"\n",(0,t.jsx)(n.li,{children:"need all membership information completely under their control"}),"\n",(0,t.jsx)(n.li,{children:"manage services outside the applications"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"impact of using third party services"}),"\n",(0,t.jsx)(n.li,{children:"performance / usability trade-offs"}),"\n",(0,t.jsx)(n.li,{children:"potential data residency law requirements"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"other",children:"Other"}),"\n",(0,t.jsx)(n.p,{children:"We will not support administrative functions in any of our mobile apps."}),"\n",(0,t.jsx)(n.h2,{id:"talawa-areas",children:"Talawa Areas"}),"\n",(0,t.jsx)(n.p,{children:"This section outlines the primary features we'd like to implement in the coming months with impacts on all the applications."}),"\n",(0,t.jsxs)(n.p,{children:["Please read the ",(0,t.jsx)(n.code,{children:"Research"})," section of this document for background information"]}),"\n",(0,t.jsx)(n.h3,{id:"improved-file-uploads-and-security",children:"Improved File Uploads and Security"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," We need a better solution for handling files uploaded from Talawa clients. GraphQL is unsuitable for file access and, storing files in the code tree with only a ",(0,t.jsx)(n.code,{children:".gitignore"})," file as protection is risky."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Objects must be:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Stored in a location outside the code tree"}),"\n",(0,t.jsx)(n.li,{children:"Accessed using industry best practices and libraries that are unlikely to be deprecated or abandoned."}),"\n",(0,t.jsx)(n.li,{children:"Deduplicated."}),"\n",(0,t.jsx)(n.li,{children:"Encrypted whenever and wherever possible."}),"\n",(0,t.jsx)(n.li,{children:"Stored in the same way independent of their size, type or other characteristics."}),"\n",(0,t.jsx)(n.li,{children:"Screened for malicious content."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Other","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"By default, storage must be accessible via the system's locally accessible filesystem as a configurable parameter(s)."}),"\n",(0,t.jsx)(n.li,{children:"The use of cloud storage services is discouraged at this time."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"References:"})," There have been extensive discussions about this which should help in evaluating options.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/PalisadoesFoundation/talawa-api/pull/1168",children:"https://github.com/PalisadoesFoundation/talawa-api/pull/1168"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/PalisadoesFoundation/talawa-api/issues/952",children:"https://github.com/PalisadoesFoundation/talawa-api/issues/952"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"self-hosted-chat-and-notifications",children:"Self Hosted Chat and Notifications"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," The Talawa apps are closely coupled with cloud services which creates operational concerns.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"This greatly complicates setup as each new service requires new externally controlled configuration parameters."}),"\n",(0,t.jsx)(n.li,{children:"It also adds greater troubleshooting and billing complexity for organizations that will not be tech-savvy."}),"\n",(0,t.jsxs)(n.li,{children:["Small organizations may also find it difficult to comply with new data residency laws when using international services.",(0,t.jsx)(n.br,{}),"\n","For this idea there must be no dependency on any third party cloud service providers, all the code must run on the API server."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Chat"})," : A key component of the Talawa application suite is chat. Though some endpoints have been created, the feature has not been fully activated and deployed. Chat must be:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Hosted on the API server. We expect the typical Talawa deployment to be small and hosted by communities with limited funding that may not be able to afford cloud additional services."}),"\n",(0,t.jsx)(n.li,{children:"Available as 1 to 1 and 1 to many group chat options"}),"\n",(0,t.jsx)(n.li,{children:"Automatically available to registered attendees of events as a dedicated group chat instance."}),"\n",(0,t.jsx)(n.li,{children:"Encrypted whenever and wherever possible"}),"\n",(0,t.jsx)(n.li,{children:"Capable of allowing users to reply to any historical comment."}),"\n",(0,t.jsx)(n.li,{children:"Allow administrators to respond in various ways to complaints about chats."}),"\n",(0,t.jsx)(n.li,{children:"Have the ability for older chats to be purged from the system"}),"\n",(0,t.jsx)(n.li,{children:"Assume that most communities using the chat system will be small. Research typical community sizes, seating and event attendance for various community based organizations in designing your solution. Consider easy to implement scalability if required."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Notifications"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Identify an acceptable way to have notifications handled on the local server"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development, Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"ai-powered-improvements-to-community-health",children:"AI Powered Improvements to Community Health"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," We want to enhance community interaction and moderation with AI. Implement various features that leverage AI to create more nuanced community interactions that anticipate user interactions, receive collaborative recommendations, and streamline task management with data-driven insights. Selected participants will integrate these key features in the Talawa Mobile App, to improve user experience and facilitate efficient moderation."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"})," Consider ways to:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Integrate sentiment analysis to gauge the emotional tone of discussions, helping to identify and address potential issues within the community."}),"\n",(0,t.jsx)(n.li,{children:"Use AI-powered summarization techniques to generate concise summaries of lengthy discussions or documents, making it easier for users to grasp key points."}),"\n",(0,t.jsx)(n.li,{children:"Use natural language processing (NLP) algorithms to automate content moderation, identifying and flagging inappropriate or spammy content."}),"\n",(0,t.jsx)(n.li,{children:"Utilize machine learning models to predict user engagement patterns, helping community organizers understand when to schedule events or post important updates for maximum impact."}),"\n",(0,t.jsx)(n.li,{children:"Implement collaborative filtering algorithms to suggest groups, subgroups, or content based on what similar users with shared interests are engaging with."}),"\n",(0,t.jsx)(n.li,{children:"Implement predictive analytics to help users and groups estimate the time needed to complete tasks and identify potential bottlenecks in project timelines."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Reference:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"An Admin must not rely exclusively on AI for the features you suggest as they may not choose to activate AI."}),"\n",(0,t.jsx)(n.li,{children:"Non-profit organizations that we expect to use Talawa are often underfunded and will not have budgets to purchase powerful computing resources. As they often have small memberships, they will not have sufficient numbers of users to generate adequate data sets to train models. You will need to consider ways to use external sources that require minimum to no configuration requirements and cost. Open source solutions would be preferred."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"ai-powered-automated-testing",children:"AI Powered Automated Testing"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," This project idea aims to implement AI-powered testing automation for both Talawa-Admin and Talawa-API, encompassing test case generation, dynamic test suite optimization, and production environment testing. By leveraging artificial intelligence, the goal is to enhance the efficiency, accuracy, and adaptability of the testing process, ensuring robust and reliable performance."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Test Case Generation:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Identify and integrate AI tools or frameworks capable of generating test cases based on code changes and requirements."}),"\n",(0,t.jsx)(n.li,{children:"Utilize AI algorithms to comprehend code modifications and automatically generate relevant test scenarios."}),"\n",(0,t.jsx)(n.li,{children:"Explore tools for AI-assisted test case generation."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Dynamic Test Suite Optimization:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Implement an AI-driven solution to dynamically optimize the test suite based on code changes."}),"\n",(0,t.jsx)(n.li,{children:"Utilize machine learning models to identify test cases that need prioritization or skipping based on the impact of code modifications."}),"\n",(0,t.jsx)(n.li,{children:"Ensure efficient resource utilization by dynamically adjusting the test suite."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Production Environment Testing:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Develop an automated testing pipeline tailored for the production environment."}),"\n",(0,t.jsx)(n.li,{children:"Leverage AI to simulate real-world scenarios and user interactions, ensuring a production-like testing environment."}),"\n",(0,t.jsx)(n.li,{children:"Implement AI algorithms to identify and prioritize critical test cases for the production environment."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"End to End Testing:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"We need a way to test the applications end to end for the correct functionality. Our merged PRs often cause functionality to break in ways not dectectable by our unit testsing."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Reference:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Non-profit organizations using Talawa may have budget constraints and limited computing resources. Consider open-source solutions and external sources that require minimal configuration and cost for AI-powered testing. It is essential to design the solution keeping in mind the resource limitations of the target user base."}),"\n",(0,t.jsxs)(n.li,{children:["We have been investigating products such as:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Diffblue Cover"}),"\n",(0,t.jsx)(n.li,{children:"Parasoft"}),"\n",(0,t.jsx)(n.li,{children:"TestPilot"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to Update:"})," Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"event-attendance---talawa-admin",children:"Event Attendance - Talawa Admin"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," Administrators will need features to improve the management of, and reporting on, event attendance. For this to be most effective, event attendance will need to be accessed from either from:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["A member's profile (",(0,t.jsx)(n.em,{children:"Member Profile"}),") view."]}),"\n",(0,t.jsxs)(n.li,{children:["An event's detail page (",(0,t.jsx)(n.em,{children:"Event Detail"}),") views."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"})," This project idea is more prescriptive than others in the list because we need to get the basic structure correct as it will have a long term impact on our repositories. There will be lots of ways for you transform this foundation into an impressive result.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Member Profile:"})," We need additional functionality to the member profile screen to achieve this goal.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance"}),": A button or menu item should be presented (Admins only) on each member's profile. When selected, this should display an attendance view.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance View:"})," This should display a list of events that the member has attended and any upcoming events the member is registered to attend.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["If the member has neither attended a past event nor is registered for an upcoming event options should be presented to the admin user to;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Invite the selected member to upcoming events."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["If the member has attended past events or is registered for upcoming events, display the following attributes for each event in the list.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Event Name:"})," The name of the event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Date of Event:"})," The scheduled start date for the event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Recurring Flag:"})," A flag indicating if the event ids a recurring event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Task Flag:"})," A flag indicating that the member has been assigned one or multiple tasks for the event"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["The admin user must have the ability to toggle between a list of ",(0,t.jsx)(n.em,{children:"past events"})," attended by the selected member and ",(0,t.jsx)(n.em,{children:"upcoming events"})," they are registered for."]}),"\n",(0,t.jsxs)(n.li,{children:["The admin user must have the ability to interact with the list of events being displayed. (S)he must be able to:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Search:"})," Search the displayed event list for an event by ",(0,t.jsx)(n.em,{children:"event name"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Sort:"})," Sort the displayed event list by ",(0,t.jsx)(n.em,{children:"event name"})," or by ",(0,t.jsx)(n.em,{children:"event date"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Filter:"})," Filter the displayed event list by a date range based on ",(0,t.jsx)(n.em,{children:"event date"})," or by one or multiple ",(0,t.jsx)(n.em,{children:"event tags"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["The admin user must be able to select an event in the list and navigate to the ",(0,t.jsx)(n.em,{children:"event detail"})," view."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Event Detail"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Event Attendance Management"}),": The user (Admins only) must be presented with a button or menu item for ",(0,t.jsx)(n.em,{children:"Attendance"}),". When this item is selected the admin user must be navigated to a list of ",(0,t.jsx)(n.em,{children:"attendees"})," to the selected event.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["For each item in the list of Attendees display the following attributes;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Member Name"}),": Name of registered member that attended the event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Member Status"}),": The status of the member in the organization"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Number of Events Attended"}),": The number of events attended by the member;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"This month"}),"\n",(0,t.jsx)(n.li,{children:"This year"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["If the selected event is a ",(0,t.jsx)(n.em,{children:"past event"})," or ",(0,t.jsx)(n.em,{children:"future event"}),", display the list of attendees and/or invitees for the event where relevant."]}),"\n",(0,t.jsx)(n.li,{children:"Flag attendees that performed a role or was assigned to an Action Item for the event"}),"\n",(0,t.jsxs)(n.li,{children:["If the event is part of a ",(0,t.jsx)(n.em,{children:"recurring event"}),", the admin user must be presented with options to;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"View a list of past events in the series"}),"\n",(0,t.jsx)(n.li,{children:"Edit all events in the series"}),"\n",(0,t.jsx)(n.li,{children:"Edit the current event and future occurrences of the event"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["The Admin user must be able to ",(0,t.jsx)(n.em,{children:"Check-In"})," a member to the event.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"If people turn up at the door, and they are not in the system, it must be possible to add them as part of the check-in process (USERS and NON_USERs alike)."}),"\n",(0,t.jsx)(n.li,{children:"Events requiring registration must only be able to check-in people who have registered. It must also be possible to add, register and check-in people at the door as an exception if the venue has the space."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Event Attendance Reporting"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Reporting and data visualization is also required for events. The following charts and measures must be displayed;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Total number attendees"})," for the event"]}),"\n",(0,t.jsxs)(n.li,{children:["For recurring events, historical attendance must be reported on;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance Trend"}),"; Charting","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"6 months"}),"\n",(0,t.jsx)(n.li,{children:"12 months"}),"\n",(0,t.jsx)(n.li,{children:"24 months"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance Frequency"}),"; the number of persons attending the selected event for the;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"First time"}),"\n",(0,t.jsx)(n.li,{children:"Second time"}),"\n",(0,t.jsx)(n.li,{children:"Third time"}),"\n",(0,t.jsx)(n.li,{children:"Fourth time"}),"\n",(0,t.jsx)(n.li,{children:"Greater than 5 times"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"The admin should be able to view the list of attendees in each frequency bucket"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance Demography"}),"; the number of attendants grouped by;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Gender"}),"\n",(0,t.jsx)(n.li,{children:"Member Status"}),"\n",(0,t.jsx)(n.li,{children:"Age Group"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Think of novel ways of tabulating historical attendance for recurring events"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"NOTE:"})," These are ongoing efforts in which API and Admin CRUD work has been happening for months. You will need to integrate these efforts into your project, and make improvements. We feel the other needs of this project will require a majority of your time.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Making recurring meetings flawless"}),"\n",(0,t.jsx)(n.li,{children:"Adding improved attendance tracking"}),"\n",(0,t.jsx)(n.li,{children:"Improving user profile management"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Other:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Think of the many ways in which you could improve this outline."}),"\n",(0,t.jsx)(n.li,{children:"You will need to write valid tests for this work"}),"\n",(0,t.jsx)(n.li,{children:"You may want to add features to one or more repositories to facilitate your idea."}),"\n",(0,t.jsxs)(n.li,{children:["The challenge will be in creating an intuitive UI/UX to make these features desirable. The UI/UX must conform with our design guide and Figma files found here: ",(0,t.jsx)(n.a,{href:"https://docs.talawa.io/docs/design/ux/ux-design-system",children:"https://docs.talawa.io/docs/design/ux/ux-design-system"})]}),"\n",(0,t.jsx)(n.li,{children:"Support for this feature was added to Talawa API in the past year. We welcome GitHub issues to verify and rectify the expected functionality of this API support during the GSoC evaluation period."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"user-tag-management---talawa-admin",children:"User Tag Management - Talawa Admin"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description"}),": We need a comprehensive user tag management system for Talawa Admin to address current limitations and enhance community organisation. This system will introduce both automatic and manual tag allotment, hierarchical tag structures, and CRUD operations.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The current lack of a robust tag management system hinders effective organisation and communication within the Talawa community. The proposed system aims to streamline user categorization, facilitating targeted communication and enhancing community engagement."}),"\n",(0,t.jsx)(n.li,{children:"This should not be confused with hashtags or tagging someone in a chat. This is for applying a label/category to User and Event objects"}),"\n",(0,t.jsx)(n.li,{children:"Support for this feature was added to Talawa API in the past year. We welcome GitHub issues to verify and rectify the expected functionality of this API support during the GSoC evaluation period."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes"}),":","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Automatic tag allotment based on predefined criteria."}),"\n",(0,t.jsx)(n.li,{children:"Manual tag allotment by Admins and/or Super Admins."}),"\n",(0,t.jsx)(n.li,{children:"Hierarchical tag structures with parent and nested sub-tags."}),"\n",(0,t.jsx)(n.li,{children:"CRUD operations for tags (Create, Read, Update, Delete)."}),"\n",(0,t.jsx)(n.li,{children:"Grouping of users based on tags."}),"\n",(0,t.jsx)(n.li,{children:"Broadcasting emails/messages to a group of users with certain tags."}),"\n",(0,t.jsx)(n.li,{children:"Filtering of users based on tags for targeted communication."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to Update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to the mentioned repositories."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"event-parity---talawa-mobile",children:"Event Parity - Talawa Mobile"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," We have recently added many new features to the API to that enhance event management. These are not reflected in our mobile app. 2. ",(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Requirements:"})," Your proposal must meet the guidelines below. It must:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Provide user feature parity with the Talawa Admin User Portal for event management."}),"\n",(0,t.jsx)(n.li,{children:"Not add any Admin or Super Admin features. These must remain solely in the Talawa-Admin web app."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Other:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["The challenge will be in creating an intuitive UI/UX to make these features desirable. The UI/UX must conform with our design guide and Figma files found here: ",(0,t.jsx)(n.a,{href:"https://docs.talawa.io/docs/design/ux/ux-design-system",children:"https://docs.talawa.io/docs/design/ux/ux-design-system"})]}),"\n",(0,t.jsx)(n.li,{children:"Significant updates to this feature were added to Talawa API in the past year. We welcome GitHub issues to verify and rectify the expected functionality of this API support during the GSoC evaluation period."}),"\n",(0,t.jsx)(n.li,{children:"Implemet fundraising campaigns."}),"\n",(0,t.jsx)(n.li,{children:"Implement tags in the mobile app."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," User Tag Management"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"offline-capability-enhancement---talawa-mobile",children:"Offline Capability Enhancement - Talawa Mobile"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," Talawa's mobile application currently lacks robust offline capabilities, unlike many other social media apps. This compromises the app's stability and reliability. Additionally, the absence of a proper app state caching mechanism leads to performance issues and unnecessary network usage overhead."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Your proposal should focus on enhancing Talawa Mobile's offline capabilities to achieve feature parity with other social media platforms."}),"\n",(0,t.jsxs)(n.li,{children:["The solution should include:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Implementing offline functionality that gracefully handles offline situations, allowing users to seamlessly interact with the app and cache their actions and app state locally."}),"\n",(0,t.jsx)(n.li,{children:"Synchronizing user actions and app state with the server once the app regains connectivity."}),"\n",(0,t.jsx)(n.li,{children:"Implementing a robust caching mechanism throughout the app to enhance user experience, reduce internet usage overhead, and improve performance."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Integrate chat in the mobile app."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Other Considerations:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Creating an intuitive UI/UX to make the offline features desirable is a significant challenge. The UI/UX must align with Talawa's design guide and Figma files, which can be found ",(0,t.jsx)(n.a,{href:"https://docs.talawa.io/docs/design/ux/ux-design-system",children:"here"}),"."]}),"\n",(0,t.jsx)(n.li,{children:"Note: Ensure that the proposed features do not include any Admin or Super Admin functionalities, which should remain exclusive to the Talawa-Admin web app."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to Update:"})," Talawa, Talawa-API"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Proficiency in the code stacks related to the Talawa and Talawa-API repositories. Refer to the introduction section for more details."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," Self Hosted Chat and Notifications"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"switchmap-areas",children:"Switchmap Areas"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," Talawa's mobile application currently lacks robust offline capabilities, unlike many other social media apps. This compromises the app's stability and reliability. Additionally, the absence of a proper app state caching mechanism leads to performance issues and unnecessary network usage overhead."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Web UI/UX","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The code uses deprecated python packages that prevent upgrading the rest to current versions. The flask-table package is the most notable one"}),"\n",(0,t.jsx)(n.li,{children:"The UI looks dated because it uses the flask-table package for HTML tables. A more modern alternative is needed. This may or may not be written in Python."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Installation","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The current version requires the installation of multiple system daemons. A method that uses more modern containerization for simplicity is needed."}),"\n",(0,t.jsx)(n.li,{children:"Interaction between the equivalent replacements for the daemons must only communicate via GraphQL API calls. The RESTful posting of data to the DB API server\u2019s file system should remain to reduce the potential overload unless a suitable alternative can be found"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Operation","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["The app isn\u2019t suitable for a distributed deployment with groups of pollers that may not have access to the central API server. There needs to be an intuitive way for:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"pollers to send data to an aggregator in their region"}),"\n",(0,t.jsx)(n.li,{children:"each regional aggregator to send data to the central API server"}),"\n",(0,t.jsx)(n.li,{children:"configuring this."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Monolithic Repo","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"There needs to be a way to make the mono repo intuitive to use, if necessary. It currently has separate folders for daemons responsible for polling, the API, data ingest to the API, the web GUI and shared libraries."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Asynchronous Polling","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Replace threaded polling with an asynchronous polling mechanism using Python\u2019s asyncio or aiohttp for better scalability. This would allow polling of larger networks without blocking and improve the overall speed and resource usage. This would facilitate faster data collection, more efficient resource utilization, and the ability to scale to large networks."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Historical Data Storage","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Use the current state database to store and analyze historical network data, such as port utilization, device status, and ARP data over time. This would allow users to analyze trends and detect issues that may have developed gradually."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Additional Data Collection","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Extend SNMP support by parsing additional MIBs for more detailed device information, such as CPU usage, memory stats, or interface statistics. This would make the inventory system more comprehensive."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to Update:"})," Switchmap-NG"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Proficiency in the code stacks related to the repository. Refer to the introduction section for more details."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"pattoo-areas",children:"Pattoo Areas"}),"\n",(0,t.jsx)(n.h2,{id:"hybrid-areas",children:"Hybrid Areas"}),"\n",(0,t.jsx)(n.p,{children:"Hybrid ideas add to the existing repos in ways we would not have foreseen. They must:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Use existing Palisadoes Foundation repositories"}),"\n",(0,t.jsx)(n.li,{children:"Add complementary features to one or more existing Palisadoes Foundation repositories"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Hybrid ideas are not for new Palisadoes Foundation repositories."}),"\n",(0,t.jsx)(n.h3,{id:"hybrid-hybrid-innovation",children:"Hybrid: Hybrid Innovation"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," Do the ideas need something more? What completely new thoughts could be applied to the existing ideas? If you have answers to these questions then this section is for you."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"})," Your proposal must meet the guidelines below. It must:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Not depend on other participants. There should be minimal impact by other participants disappearing or doing a very bad or very good job."}),"\n",(0,t.jsx)(n.li,{children:"Add completely new features not previously stated in ideas."}),"\n",(0,t.jsx)(n.li,{children:"Create features that users will want or facilitate new features that will be the groundwork for features that they would want."}),"\n",(0,t.jsxs)(n.li,{children:["Be suitable for use by most non-profit organization.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"We are not interested in membership subscriptions and any related financial management at this time."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Justify 350 hours of work."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>l});var s=i(6540);const t={},r=s.createContext(t);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c5292cb6.c650dd24.js b/assets/js/c5292cb6.c650dd24.js new file mode 100644 index 0000000..5d21db1 --- /dev/null +++ b/assets/js/c5292cb6.c650dd24.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[8253],{2223:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"internships/gsoc/gsoc-ideas-20250101","title":"GSoC Ideas","description":"NOTE: These ideas are subject to change at any time prior to us submitting our GSoC 2025 Organization application. Ideas may be added, removed or updated up to this time.","source":"@site/docs/internships/gsoc/ideas-20250101.md","sourceDirName":"internships/gsoc","slug":"/internships/gsoc/gsoc-ideas-20250101","permalink":"/docs/internships/gsoc/gsoc-ideas-20250101","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/internships/gsoc/ideas-20250101.md","tags":[],"version":"current","frontMatter":{"id":"gsoc-ideas-20250101","title":"GSoC Ideas"}}');var t=i(4848),r=i(8453);const o={id:"gsoc-ideas-20250101",title:"GSoC Ideas"},l=void 0,a={},d=[{value:"Introduction",id:"introduction",level:2},{value:"General Considerations",id:"general-considerations",level:3},{value:"Internship Participants",id:"internship-participants",level:3},{value:"Documentation",id:"documentation",level:3},{value:"Testing",id:"testing",level:3},{value:"Repository Languages and Skills",id:"repository-languages-and-skills",level:3},{value:"Impact Definition",id:"impact-definition",level:3},{value:"Difficulty",id:"difficulty",level:3},{value:"Talawa Areas",id:"talawa-areas",level:2},{value:"Improved File Uploads and Security",id:"improved-file-uploads-and-security",level:3},{value:"Self Hosted Chat and Notifications",id:"self-hosted-chat-and-notifications",level:3},{value:"AI Powered Improvements to Community Health",id:"ai-powered-improvements-to-community-health",level:3},{value:"AI Powered Automated Testing",id:"ai-powered-automated-testing",level:3},{value:"Event Attendance - Talawa Admin",id:"event-attendance---talawa-admin",level:3},{value:"User Tag Management - Talawa Admin",id:"user-tag-management---talawa-admin",level:3},{value:"Event Parity - Talawa Mobile",id:"event-parity---talawa-mobile",level:3},{value:"Offline Capability Enhancement - Talawa Mobile",id:"offline-capability-enhancement---talawa-mobile",level:3},{value:"Switchmap Areas",id:"switchmap-areas",level:2},{value:"Pattoo Areas",id:"pattoo-areas",level:2},{value:"Hybrid Areas",id:"hybrid-areas",level:2},{value:"Hybrid: Hybrid Innovation",id:"hybrid-hybrid-innovation",level:3}];function c(e){const n={a:"a",br:"br",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"NOTE:"})," These ideas are subject to change at any time prior to us submitting our GSoC 2025 Organization application. Ideas may be added, removed or updated up to this time."]}),"\n",(0,t.jsx)(n.p,{children:"If we are accepted, there may be additions and minor modifications."}),"\n",(0,t.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,t.jsx)(n.p,{children:"Welcome to our GSoC ideas page! Get familiar with our general philosophy by reading this section. The ideas follow afterwards."}),"\n",(0,t.jsx)(n.h3,{id:"general-considerations",children:"General Considerations"}),"\n",(0,t.jsx)(n.p,{children:"This is not an exhaustive list of ideas, but they broadly classify the types of features on which we'd like to focus our attentions."}),"\n",(0,t.jsx)(n.p,{children:"You are open to propose your own solutions."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"We encourage candidates to think laterally."}),"\n",(0,t.jsx)(n.li,{children:"Take the initiative and consider something hybrid taking thoughts from various ideas posted here or something totally new."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"We want ideas that will have a material impact on the project"}),"\n",(0,t.jsx)(n.p,{children:"Remember, the ideas list is just a guide for what we feel could be achieved, and not a strict list of requirements. Think of the overall goal of making a better product. Picking a subset of suggestions and expanding them beyond our expectations shows your initiative."}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"NOTE:"})," If you feel the project ideas will take too much time as stated, then:"]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Add that to your proposal"}),"\n",(0,t.jsx)(n.li,{children:"Include what you think a reasonable scope should be."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"We need your ideas to be completed on time with 100% test cases with each PR."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Brittle code that breaks easily does not help the project"}),"\n",(0,t.jsx)(n.li,{children:"Incomplete functionality is not acceptable unless specifically stated."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"If there are any dependencies on other project ideas, then state it. Also include additional or alternative things that you would do if the dependencies are not completed in your desired time frame"}),"\n",(0,t.jsx)(n.p,{children:"The project is so much in its infancy that we'll accept any good idea that users will want or will facilitate that they could want. They must significantly advance our goal of having an MVP within the year."}),"\n",(0,t.jsxs)(n.p,{children:['We also welcome any other ideas that we could use. Please review the "Desired Features" section of this website for ',(0,t.jsx)(n.strong,{children:"even more ideas"})," and further necessary information."]}),"\n",(0,t.jsx)(n.h3,{id:"internship-participants",children:"Internship Participants"}),"\n",(0,t.jsx)(n.p,{children:"Many of you reading this page are interested in participating in our various internship programs (eg. Google Summer of Code, GitHub Externship, Google Summer of Docs, Outreachy, etc.)."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Make sure to read the relevant ",(0,t.jsx)(n.code,{children:"Introduction"})," and ",(0,t.jsx)(n.code,{children:"Application Guide"}),"/ ",(0,t.jsx)(n.code,{children:"Contribution Process"})," pages first.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"./gsoc-introduction",children:"GSoC Introduction"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"./gsoc-application-process",children:"GSoC Application Guide"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Review the ",(0,t.jsx)(n.a,{href:"../internship-selection-criteria",children:"Selection Criteria"})," to ensure you meet all the requirements for a good proposal."]}),"\n",(0,t.jsxs)(n.li,{children:["Use the ",(0,t.jsx)(n.a,{href:"../internship-application-template",children:"Application Template"})," as a guide to formatting your application. The tips on this page are very important."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Good luck!"}),"\n",(0,t.jsx)(n.h3,{id:"documentation",children:"Documentation"}),"\n",(0,t.jsx)(n.p,{children:"We need to reduce the learning curve of contributors and sysadmins alike. Project work needs to be well documented in our code so that tools can eventually automatically add it to our documentation websites."}),"\n",(0,t.jsx)(n.h3,{id:"testing",children:"Testing"}),"\n",(0,t.jsx)(n.p,{children:"All code submitted must be tested. We are working towards getting to 100% test code coverage on all repositories. This will mean that you will have to write tests for new code you write or modify."}),"\n",(0,t.jsx)(n.p,{children:"The test percent code coverage requirement will incrementally rise with each pull request. In some cases you may have to write a few extra tests for code you may not have updated. We hope this will be rare."}),"\n",(0,t.jsx)(n.p,{children:"Write code that will work in the long term. Eliminate brittle code that will easily break."}),"\n",(0,t.jsx)(n.h3,{id:"repository-languages-and-skills",children:"Repository Languages and Skills"}),"\n",(0,t.jsx)(n.p,{children:"Here is a list of basic skills that will be required for each repository."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Talawa:"})," Flutter / Dart, GraphQL"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Talawa-API:"})," Typescript, GraphQL, MongoDB"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Talawa-Admin Portal:"})," TypeScript"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Switchmap-NG:"})," Python"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Pattoo"}),": Python"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"There are others, but these are the primary ones that will guide your contributions."}),"\n",(0,t.jsx)(n.h3,{id:"impact-definition",children:"Impact Definition"}),"\n",(0,t.jsx)(n.p,{children:"We have categorized the various ideas according to the degree of impact they will have to the project. Use these definitions to understand how each idea will affect our overall project goals."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Low-hanging fruit:"})," These projects require minimal familiarity with the codebase and basic technical knowledge. They are relatively short, with clear goals."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Risky/Exploratory:"})," These projects push the scope boundaries of our development efforts. They might require expertise in an area not covered by our current development team. They might take advantage of a new technology. There is a reasonable chance that the project might be less successful, but the potential rewards make it worth the attempt."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Fun/Peripheral:"})," These projects might not be related to the current core development focus, but create new innovations and new perspective for our project."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Core development:"})," These projects derive from the ongoing work from the core of our development team. The list of features and bugs is never-ending, and help is always welcome."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Infrastructure/Automation:"})," These projects are the code that our organization uses to get our development work done; for example, projects that improve the automation of releases, regression tests and automated builds. This is a category in which a contributor can be really helpful, doing work that the development team has been putting off while they focus on core development."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"difficulty",children:"Difficulty"}),"\n",(0,t.jsx)(n.p,{children:"Most of our project ideas require knowledge of two or more programming languages. Meaningful PRs that prove your understanding of the repos will always be beneficial. We have created testing issues specifically for this purpose."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Hard:"})," Requires dominion of the language used by the repo most affected by the project. A good working knowledge of the languages used by other affected repositories will be needed."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Medium:"})," A good working knowledge of the languages used by affected repositories will be needed."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Easy:"})," A beginner's level knowledge of the languages is sufficient."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"talawa-areas",children:"Talawa Areas"}),"\n",(0,t.jsx)(n.p,{children:"Talawa is a suite of applications that is aimed at managing the memberships of community based organizations. This concept may be new to you, and we suggest you research non-profit organization and open source software project management software as a starting point. Talawa needs to have a broader reach and your additions to our ideas will make the difference. We have included links to YouTube videos on this page that will be useful in improving your understanding."}),"\n",(0,t.jsx)(n.p,{children:"Your solution should ideally consider the:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["ability of typical small community organizations with limited resources to:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"get tech support to maintain the application"}),"\n",(0,t.jsx)(n.li,{children:"have tech-savvy users"}),"\n",(0,t.jsx)(n.li,{children:"afford long term costs"}),"\n",(0,t.jsx)(n.li,{children:"need all membership information completely under their control"}),"\n",(0,t.jsx)(n.li,{children:"manage services outside the applications"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"impact of using third party services"}),"\n",(0,t.jsx)(n.li,{children:"performance / usability trade-offs"}),"\n",(0,t.jsx)(n.li,{children:"potential data residency law requirements"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"We will not support administrative functions in any of our mobile apps."}),"\n",(0,t.jsx)(n.h3,{id:"improved-file-uploads-and-security",children:"Improved File Uploads and Security"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," We need a better solution for handling files uploaded from Talawa clients. GraphQL is unsuitable for file access and, storing files in the code tree with only a ",(0,t.jsx)(n.code,{children:".gitignore"})," file as protection is risky."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Objects must be:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Stored in a location outside the code tree"}),"\n",(0,t.jsx)(n.li,{children:"Accessed using industry best practices and libraries that are unlikely to be deprecated or abandoned."}),"\n",(0,t.jsx)(n.li,{children:"Deduplicated."}),"\n",(0,t.jsx)(n.li,{children:"Encrypted whenever and wherever possible."}),"\n",(0,t.jsx)(n.li,{children:"Stored in the same way independent of their size, type or other characteristics."}),"\n",(0,t.jsx)(n.li,{children:"Screened for malicious content."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Other","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"By default, storage must be accessible via the system's locally accessible filesystem as a configurable parameter(s)."}),"\n",(0,t.jsx)(n.li,{children:"The use of cloud storage services is discouraged at this time."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"References:"})," There have been extensive discussions about this which should help in evaluating options.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/PalisadoesFoundation/talawa-api/pull/1168",children:"https://github.com/PalisadoesFoundation/talawa-api/pull/1168"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/PalisadoesFoundation/talawa-api/issues/952",children:"https://github.com/PalisadoesFoundation/talawa-api/issues/952"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"self-hosted-chat-and-notifications",children:"Self Hosted Chat and Notifications"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," The Talawa apps are closely coupled with cloud services which creates operational concerns.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"This greatly complicates setup as each new service requires new externally controlled configuration parameters."}),"\n",(0,t.jsx)(n.li,{children:"It also adds greater troubleshooting and billing complexity for organizations that will not be tech-savvy."}),"\n",(0,t.jsxs)(n.li,{children:["Small organizations may also find it difficult to comply with new data residency laws when using international services.",(0,t.jsx)(n.br,{}),"\n","For this idea there must be no dependency on any third party cloud service providers, all the code must run on the API server."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Chat"})," : A key component of the Talawa application suite is chat. Though some endpoints have been created, the feature has not been fully activated and deployed. Chat must be:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Hosted on the API server. We expect the typical Talawa deployment to be small and hosted by communities with limited funding that may not be able to afford cloud additional services."}),"\n",(0,t.jsx)(n.li,{children:"Available as 1 to 1 and 1 to many group chat options"}),"\n",(0,t.jsx)(n.li,{children:"Automatically available to registered attendees of events as a dedicated group chat instance."}),"\n",(0,t.jsx)(n.li,{children:"Encrypted whenever and wherever possible"}),"\n",(0,t.jsx)(n.li,{children:"Capable of allowing users to reply to any historical comment."}),"\n",(0,t.jsx)(n.li,{children:"Allow administrators to respond in various ways to complaints about chats."}),"\n",(0,t.jsx)(n.li,{children:"Have the ability for older chats to be purged from the system"}),"\n",(0,t.jsx)(n.li,{children:"Assume that most communities using the chat system will be small. Research typical community sizes, seating and event attendance for various community based organizations in designing your solution. Consider easy to implement scalability if required."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Notifications"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Identify an acceptable way to have notifications handled on the local server"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development, Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"ai-powered-improvements-to-community-health",children:"AI Powered Improvements to Community Health"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," We want to enhance community interaction and moderation with AI. Implement various features that leverage AI to create more nuanced community interactions that anticipate user interactions, receive collaborative recommendations, and streamline task management with data-driven insights. Selected participants will integrate these key features in the Talawa Mobile App, to improve user experience and facilitate efficient moderation."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"})," Consider ways to:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Integrate sentiment analysis to gauge the emotional tone of discussions, helping to identify and address potential issues within the community."}),"\n",(0,t.jsx)(n.li,{children:"Use AI-powered summarization techniques to generate concise summaries of lengthy discussions or documents, making it easier for users to grasp key points."}),"\n",(0,t.jsx)(n.li,{children:"Use natural language processing (NLP) algorithms to automate content moderation, identifying and flagging inappropriate or spammy content."}),"\n",(0,t.jsx)(n.li,{children:"Utilize machine learning models to predict user engagement patterns, helping community organizers understand when to schedule events or post important updates for maximum impact."}),"\n",(0,t.jsx)(n.li,{children:"Implement collaborative filtering algorithms to suggest groups, subgroups, or content based on what similar users with shared interests are engaging with."}),"\n",(0,t.jsx)(n.li,{children:"Implement predictive analytics to help users and groups estimate the time needed to complete tasks and identify potential bottlenecks in project timelines."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Reference:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"An Admin must not rely exclusively on AI for the features you suggest as they may not choose to activate AI."}),"\n",(0,t.jsx)(n.li,{children:"Non-profit organizations that we expect to use Talawa are often underfunded and will not have budgets to purchase powerful computing resources. As they often have small memberships, they will not have sufficient numbers of users to generate adequate data sets to train models. You will need to consider ways to use external sources that require minimum to no configuration requirements and cost. Open source solutions would be preferred."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"ai-powered-automated-testing",children:"AI Powered Automated Testing"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," This project idea aims to implement AI-powered testing automation for both Talawa-Admin and Talawa-API, encompassing test case generation, dynamic test suite optimization, and production environment testing. By leveraging artificial intelligence, the goal is to enhance the efficiency, accuracy, and adaptability of the testing process, ensuring robust and reliable performance."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Test Case Generation:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Identify and integrate AI tools or frameworks capable of generating test cases based on code changes and requirements."}),"\n",(0,t.jsx)(n.li,{children:"Utilize AI algorithms to comprehend code modifications and automatically generate relevant test scenarios."}),"\n",(0,t.jsx)(n.li,{children:"Explore tools for AI-assisted test case generation."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Dynamic Test Suite Optimization:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Implement an AI-driven solution to dynamically optimize the test suite based on code changes."}),"\n",(0,t.jsx)(n.li,{children:"Utilize machine learning models to identify test cases that need prioritization or skipping based on the impact of code modifications."}),"\n",(0,t.jsx)(n.li,{children:"Ensure efficient resource utilization by dynamically adjusting the test suite."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Production Environment Testing:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Develop an automated testing pipeline tailored for the production environment."}),"\n",(0,t.jsx)(n.li,{children:"Leverage AI to simulate real-world scenarios and user interactions, ensuring a production-like testing environment."}),"\n",(0,t.jsx)(n.li,{children:"Implement AI algorithms to identify and prioritize critical test cases for the production environment."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"End to End Testing:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"We need a way to test the applications end to end for the correct functionality. Our merged PRs often cause functionality to break in ways not dectectable by our unit testsing."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Reference:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Non-profit organizations using Talawa may have budget constraints and limited computing resources. Consider open-source solutions and external sources that require minimal configuration and cost for AI-powered testing. It is essential to design the solution keeping in mind the resource limitations of the target user base."}),"\n",(0,t.jsxs)(n.li,{children:["We have been investigating products such as:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Diffblue Cover"}),"\n",(0,t.jsx)(n.li,{children:"Parasoft"}),"\n",(0,t.jsx)(n.li,{children:"TestPilot"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to Update:"})," Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"event-attendance---talawa-admin",children:"Event Attendance - Talawa Admin"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," Administrators will need features to improve the management of, and reporting on, event attendance. For this to be most effective, event attendance will need to be accessed from either from:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["A member's profile (",(0,t.jsx)(n.em,{children:"Member Profile"}),") view."]}),"\n",(0,t.jsxs)(n.li,{children:["An event's detail page (",(0,t.jsx)(n.em,{children:"Event Detail"}),") views."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"})," This project idea is more prescriptive than others in the list because we need to get the basic structure correct as it will have a long term impact on our repositories. There will be lots of ways for you transform this foundation into an impressive result.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Member Profile:"})," We need additional functionality to the member profile screen to achieve this goal.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance"}),": A button or menu item should be presented (Admins only) on each member's profile. When selected, this should display an attendance view.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance View:"})," This should display a list of events that the member has attended and any upcoming events the member is registered to attend.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["If the member has neither attended a past event nor is registered for an upcoming event options should be presented to the admin user to;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Invite the selected member to upcoming events."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["If the member has attended past events or is registered for upcoming events, display the following attributes for each event in the list.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Event Name:"})," The name of the event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Date of Event:"})," The scheduled start date for the event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Recurring Flag:"})," A flag indicating if the event ids a recurring event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Task Flag:"})," A flag indicating that the member has been assigned one or multiple tasks for the event"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["The admin user must have the ability to toggle between a list of ",(0,t.jsx)(n.em,{children:"past events"})," attended by the selected member and ",(0,t.jsx)(n.em,{children:"upcoming events"})," they are registered for."]}),"\n",(0,t.jsxs)(n.li,{children:["The admin user must have the ability to interact with the list of events being displayed. (S)he must be able to:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Search:"})," Search the displayed event list for an event by ",(0,t.jsx)(n.em,{children:"event name"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Sort:"})," Sort the displayed event list by ",(0,t.jsx)(n.em,{children:"event name"})," or by ",(0,t.jsx)(n.em,{children:"event date"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Filter:"})," Filter the displayed event list by a date range based on ",(0,t.jsx)(n.em,{children:"event date"})," or by one or multiple ",(0,t.jsx)(n.em,{children:"event tags"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["The admin user must be able to select an event in the list and navigate to the ",(0,t.jsx)(n.em,{children:"event detail"})," view."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Event Detail"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Event Attendance Management"}),": The user (Admins only) must be presented with a button or menu item for ",(0,t.jsx)(n.em,{children:"Attendance"}),". When this item is selected the admin user must be navigated to a list of ",(0,t.jsx)(n.em,{children:"attendees"})," to the selected event.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["For each item in the list of Attendees display the following attributes;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Member Name"}),": Name of registered member that attended the event"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Member Status"}),": The status of the member in the organization"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Number of Events Attended"}),": The number of events attended by the member;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"This month"}),"\n",(0,t.jsx)(n.li,{children:"This year"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["If the selected event is a ",(0,t.jsx)(n.em,{children:"past event"})," or ",(0,t.jsx)(n.em,{children:"future event"}),", display the list of attendees and/or invitees for the event where relevant."]}),"\n",(0,t.jsx)(n.li,{children:"Flag attendees that performed a role or was assigned to an Action Item for the event"}),"\n",(0,t.jsxs)(n.li,{children:["If the event is part of a ",(0,t.jsx)(n.em,{children:"recurring event"}),", the admin user must be presented with options to;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"View a list of past events in the series"}),"\n",(0,t.jsx)(n.li,{children:"Edit all events in the series"}),"\n",(0,t.jsx)(n.li,{children:"Edit the current event and future occurrences of the event"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["The Admin user must be able to ",(0,t.jsx)(n.em,{children:"Check-In"})," a member to the event.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"If people turn up at the door, and they are not in the system, it must be possible to add them as part of the check-in process (USERS and NON_USERs alike)."}),"\n",(0,t.jsx)(n.li,{children:"Events requiring registration must only be able to check-in people who have registered. It must also be possible to add, register and check-in people at the door as an exception if the venue has the space."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Event Attendance Reporting"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Reporting and data visualization is also required for events. The following charts and measures must be displayed;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Total number attendees"})," for the event"]}),"\n",(0,t.jsxs)(n.li,{children:["For recurring events, historical attendance must be reported on;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance Trend"}),"; Charting","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"6 months"}),"\n",(0,t.jsx)(n.li,{children:"12 months"}),"\n",(0,t.jsx)(n.li,{children:"24 months"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance Frequency"}),"; the number of persons attending the selected event for the;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"First time"}),"\n",(0,t.jsx)(n.li,{children:"Second time"}),"\n",(0,t.jsx)(n.li,{children:"Third time"}),"\n",(0,t.jsx)(n.li,{children:"Fourth time"}),"\n",(0,t.jsx)(n.li,{children:"Greater than 5 times"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"The admin should be able to view the list of attendees in each frequency bucket"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.em,{children:"Attendance Demography"}),"; the number of attendants grouped by;","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Gender"}),"\n",(0,t.jsx)(n.li,{children:"Member Status"}),"\n",(0,t.jsx)(n.li,{children:"Age Group"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Think of novel ways of tabulating historical attendance for recurring events"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"NOTE:"})," These are ongoing efforts in which API and Admin CRUD work has been happening for months. You will need to integrate these efforts into your project, and make improvements. We feel the other needs of this project will require a majority of your time.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Making recurring meetings flawless"}),"\n",(0,t.jsx)(n.li,{children:"Adding improved attendance tracking"}),"\n",(0,t.jsx)(n.li,{children:"Improving user profile management"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Other:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Think of the many ways in which you could improve this outline."}),"\n",(0,t.jsx)(n.li,{children:"You will need to write valid tests for this work"}),"\n",(0,t.jsx)(n.li,{children:"You may want to add features to one or more repositories to facilitate your idea."}),"\n",(0,t.jsxs)(n.li,{children:["The challenge will be in creating an intuitive UI/UX to make these features desirable. The UI/UX must conform with our design guide and Figma files found here: ",(0,t.jsx)(n.a,{href:"https://docs.talawa.io/docs/design/ux/ux-design-system",children:"https://docs.talawa.io/docs/design/ux/ux-design-system"})]}),"\n",(0,t.jsx)(n.li,{children:"Support for this feature was added to Talawa API in the past year. We welcome GitHub issues to verify and rectify the expected functionality of this API support during the GSoC evaluation period."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"user-tag-management---talawa-admin",children:"User Tag Management - Talawa Admin"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description"}),": We need a comprehensive user tag management system for Talawa Admin to address current limitations and enhance community organisation. This system will introduce both automatic and manual tag allotment, hierarchical tag structures, and CRUD operations.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The current lack of a robust tag management system hinders effective organisation and communication within the Talawa community. The proposed system aims to streamline user categorization, facilitating targeted communication and enhancing community engagement."}),"\n",(0,t.jsx)(n.li,{children:"This should not be confused with hashtags or tagging someone in a chat. This is for applying a label/category to User and Event objects"}),"\n",(0,t.jsx)(n.li,{children:"Support for this feature was added to Talawa API in the past year. We welcome GitHub issues to verify and rectify the expected functionality of this API support during the GSoC evaluation period."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes"}),":","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Automatic tag allotment based on predefined criteria."}),"\n",(0,t.jsx)(n.li,{children:"Manual tag allotment by Admins and/or Super Admins."}),"\n",(0,t.jsx)(n.li,{children:"Hierarchical tag structures with parent and nested sub-tags."}),"\n",(0,t.jsx)(n.li,{children:"CRUD operations for tags (Create, Read, Update, Delete)."}),"\n",(0,t.jsx)(n.li,{children:"Grouping of users based on tags."}),"\n",(0,t.jsx)(n.li,{children:"Broadcasting emails/messages to a group of users with certain tags."}),"\n",(0,t.jsx)(n.li,{children:"Filtering of users based on tags for targeted communication."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to Update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to the mentioned repositories."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"event-parity---talawa-mobile",children:"Event Parity - Talawa Mobile"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," We have recently added many new features to the API to that enhance event management. These are not reflected in our mobile app. 2. ",(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Requirements:"})," Your proposal must meet the guidelines below. It must:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Provide user feature parity with the Talawa Admin User Portal for event management."}),"\n",(0,t.jsx)(n.li,{children:"Not add any Admin or Super Admin features. These must remain solely in the Talawa-Admin web app."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Other:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["The challenge will be in creating an intuitive UI/UX to make these features desirable. The UI/UX must conform with our design guide and Figma files found here: ",(0,t.jsx)(n.a,{href:"https://docs.talawa.io/docs/design/ux/ux-design-system",children:"https://docs.talawa.io/docs/design/ux/ux-design-system"})]}),"\n",(0,t.jsx)(n.li,{children:"Significant updates to this feature were added to Talawa API in the past year. We welcome GitHub issues to verify and rectify the expected functionality of this API support during the GSoC evaluation period."}),"\n",(0,t.jsx)(n.li,{children:"Implemet fundraising campaigns."}),"\n",(0,t.jsx)(n.li,{children:"Implement tags in the mobile app."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," User Tag Management"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Core development"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"offline-capability-enhancement---talawa-mobile",children:"Offline Capability Enhancement - Talawa Mobile"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," Talawa's mobile application currently lacks robust offline capabilities, unlike many other social media apps. This compromises the app's stability and reliability. Additionally, the absence of a proper app state caching mechanism leads to performance issues and unnecessary network usage overhead."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Your proposal should focus on enhancing Talawa Mobile's offline capabilities to achieve feature parity with other social media platforms."}),"\n",(0,t.jsxs)(n.li,{children:["The solution should include:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Implementing offline functionality that gracefully handles offline situations, allowing users to seamlessly interact with the app and cache their actions and app state locally."}),"\n",(0,t.jsx)(n.li,{children:"Synchronizing user actions and app state with the server once the app regains connectivity."}),"\n",(0,t.jsx)(n.li,{children:"Implementing a robust caching mechanism throughout the app to enhance user experience, reduce internet usage overhead, and improve performance."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Integrate chat in the mobile app."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Other Considerations:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Creating an intuitive UI/UX to make the offline features desirable is a significant challenge. The UI/UX must align with Talawa's design guide and Figma files, which can be found ",(0,t.jsx)(n.a,{href:"https://docs.talawa.io/docs/design/ux/ux-design-system",children:"here"}),"."]}),"\n",(0,t.jsx)(n.li,{children:"Note: Ensure that the proposed features do not include any Admin or Super Admin functionalities, which should remain exclusive to the Talawa-Admin web app."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to Update:"})," Talawa, Talawa-API"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Proficiency in the code stacks related to the Talawa and Talawa-API repositories. Refer to the introduction section for more details."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," Self Hosted Chat and Notifications"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"switchmap-areas",children:"Switchmap Areas"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," Talawa's mobile application currently lacks robust offline capabilities, unlike many other social media apps. This compromises the app's stability and reliability. Additionally, the absence of a proper app state caching mechanism leads to performance issues and unnecessary network usage overhead."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Web UI/UX","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The code uses deprecated python packages that prevent upgrading the rest to current versions. The flask-table package is the most notable one"}),"\n",(0,t.jsx)(n.li,{children:"The UI looks dated because it uses the flask-table package for HTML tables. A more modern alternative is needed. This may or may not be written in Python."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Installation","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The current version requires the installation of multiple system daemons. A method that uses more modern containerization for simplicity is needed."}),"\n",(0,t.jsx)(n.li,{children:"Interaction between the equivalent replacements for the daemons must only communicate via GraphQL API calls. The RESTful posting of data to the DB API server\u2019s file system should remain to reduce the potential overload unless a suitable alternative can be found"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Operation","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["The app isn\u2019t suitable for a distributed deployment with groups of pollers that may not have access to the central API server. There needs to be an intuitive way for:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"pollers to send data to an aggregator in their region"}),"\n",(0,t.jsx)(n.li,{children:"each regional aggregator to send data to the central API server"}),"\n",(0,t.jsx)(n.li,{children:"configuring this."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Monolithic Repo","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"There needs to be a way to make the mono repo intuitive to use, if necessary. It currently has separate folders for daemons responsible for polling, the API, data ingest to the API, the web GUI and shared libraries."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Asynchronous Polling","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Replace threaded polling with an asynchronous polling mechanism using Python\u2019s asyncio or aiohttp for better scalability. This would allow polling of larger networks without blocking and improve the overall speed and resource usage. This would facilitate faster data collection, more efficient resource utilization, and the ability to scale to large networks."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Historical Data Storage","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Use the current state database to store and analyze historical network data, such as port utilization, device status, and ARP data over time. This would allow users to analyze trends and detect issues that may have developed gradually."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Additional Data Collection","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Extend SNMP support by parsing additional MIBs for more detailed device information, such as CPU usage, memory stats, or interface statistics. This would make the inventory system more comprehensive."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to Update:"})," Switchmap-NG"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Proficiency in the code stacks related to the repository. Refer to the introduction section for more details."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"pattoo-areas",children:"Pattoo Areas"}),"\n",(0,t.jsx)(n.h2,{id:"hybrid-areas",children:"Hybrid Areas"}),"\n",(0,t.jsx)(n.p,{children:"Hybrid ideas add to the existing repos in ways we would not have foreseen. They must:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Use existing Palisadoes Foundation repositories"}),"\n",(0,t.jsx)(n.li,{children:"Add complementary features to one or more existing Palisadoes Foundation repositories"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Hybrid ideas are not for new Palisadoes Foundation repositories."}),"\n",(0,t.jsx)(n.h3,{id:"hybrid-hybrid-innovation",children:"Hybrid: Hybrid Innovation"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Description:"})," Do the ideas need something more? What completely new thoughts could be applied to the existing ideas? If you have answers to these questions then this section is for you."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Expected Outcomes:"})," Your proposal must meet the guidelines below. It must:","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Not depend on other participants. There should be minimal impact by other participants disappearing or doing a very bad or very good job."}),"\n",(0,t.jsx)(n.li,{children:"Add completely new features not previously stated in ideas."}),"\n",(0,t.jsx)(n.li,{children:"Create features that users will want or facilitate new features that will be the groundwork for features that they would want."}),"\n",(0,t.jsxs)(n.li,{children:["Be suitable for use by most non-profit organization.","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"We are not interested in membership subscriptions and any related financial management at this time."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.li,{children:"Justify 350 hours of work."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Repos to update:"})," Talawa, Talawa-API, Talawa-Admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Skills Required:"})," Code stacks related to repos above. See introduction section."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Depends on Project:"})," N/A"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Project Size:"})," 350 hours (Large)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Possible Mentors:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"TBD"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Difficulty:"})," Medium"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Impact Definition:"})," Risky/Exploratory"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>l});var s=i(6540);const t={},r=s.createContext(t);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c62485b9.54207755.js b/assets/js/c62485b9.19e9a493.js similarity index 98% rename from assets/js/c62485b9.54207755.js rename to assets/js/c62485b9.19e9a493.js index 9a80e69..1f5eaec 100644 --- a/assets/js/c62485b9.54207755.js +++ b/assets/js/c62485b9.19e9a493.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[1976],{9803:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"introduction/introduction","title":"Introduction","description":"The Palisadoes Foundation\u2019s open-source software projects started in 2016 when a group of expatriate Jamaicans wanted to assist development of new and existing information technologies for the island\u2019s social good.","source":"@site/docs/introduction/introduction.md","sourceDirName":"introduction","slug":"/","permalink":"/docs/","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/introduction/introduction.md","tags":[],"version":"current","frontMatter":{"title":"Introduction","id":"introduction","slug":"/"},"sidebar":"docs","next":{"title":"Projects","permalink":"/docs/introduction/projects"}}');var s=o(4848),i=o(8453);const r={title:"Introduction",id:"introduction",slug:"/"},a=void 0,d={},c=[{value:"Getting Started",id:"getting-started",level:2},{value:"Important Files",id:"important-files",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.a,{href:"https://www.palisadoes.org",children:"Palisadoes Foundation\u2019s"})," open-source software projects started in 2016 when a group of expatriate Jamaicans wanted to assist development of new and existing information technologies for the island\u2019s social good."]}),"\n",(0,s.jsx)(t.p,{children:"Over the years the scope of our work has expanded. Our volunteers now live in all timezones of the globe and work on projects with a truly international scope."}),"\n",(0,s.jsx)(t.p,{children:"A significant proportion of our original open source contributions came from university students studying software engineering. Participants often came from under-served communities or geographic areas and were sponsored through the various programs in which we participated."}),"\n",(0,s.jsx)(t.h2,{id:"getting-started",children:"Getting Started"}),"\n",(0,s.jsx)(t.p,{children:"Here is a quick guide on getting started with our projects."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Watch our YouTube Channel playlist: ",(0,s.jsx)(t.a,{href:"https://www.youtube.com/watch?v=YpBUoHxEeyg&list=PLv50qHwThlJUIzscg9a80a9-HmAlmUdCF&pp=gAQB",children:"Getting Started - Developers"}),". It covers important topics such as:","\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Our community culture"}),"\n",(0,s.jsx)(t.li,{children:"How to create issues"}),"\n",(0,s.jsx)(t.li,{children:"How to get issues assigned to you"}),"\n",(0,s.jsx)(t.li,{children:"Our pull request process"}),"\n",(0,s.jsx)(t.li,{children:"The importance of testing"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["Get familiar with the ",(0,s.jsx)(t.a,{href:"#important-files",children:"important files in each repository"}),". They cover details that are excluded in our summary YouTube videos."]}),"\n",(0,s.jsxs)(t.li,{children:["If you are new to GitHub and collaborative coding then ",(0,s.jsx)(t.a,{href:"/docs/git-guide/quickstart",children:"read our GitHub Quick-Start Guide"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Research the ",(0,s.jsx)(t.a,{href:"/docs/introduction/projects",children:"GitHub unassigned issue trackers for all the projects"})]}),"\n",(0,s.jsxs)(t.li,{children:["Introduce yourself on our ",(0,s.jsx)(t.code,{children:"#general"})," slack channel. You can join our Slack Channel using the link on the ",(0,s.jsx)(t.a,{href:"http://github.com/PalisadoesFoundation",children:"Palisadoes Foundation GitHub Home Page"}),"."]}),"\n",(0,s.jsx)(t.li,{children:"If you do not see any interesting projects from the proposed ideas or issues, we encourage you to contact the Palisadoes Foundation\u2019s mailing list and propose a new idea. The Palisadoes Foundation does not encourage and will not respond to your personal new open source project ideas which are unrelated to any Palisadoes projects."}),"\n",(0,s.jsxs)(t.li,{children:["You can subscribe to our list at ",(0,s.jsx)(t.a,{href:"https://www.freelists.org/list/palisadoes",children:"https://www.freelists.org/list/palisadoes"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"important-files",children:"Important Files"}),"\n",(0,s.jsx)(t.p,{children:"Each of our GitHub repositories contain important files in their topmost, or root, directories that you should know about. These include:"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"File"}),(0,s.jsx)(t.th,{children:"Purpose"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"README.md"}),(0,s.jsx)(t.td,{children:"The README.md file contains a summary of project's purpose. It includes links to other important files in the repository that you should read before starting"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"CODE_OF_CONDUCT.md"}),(0,s.jsx)(t.td,{children:"This file contains guidelines of how each contributor in the community should behave and communicate with each other. It also states the consequences of going against these rules. By doing this we aim to provide a harassment-free environment and also an inclusive, healthy and diverse community."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"CONTRIBUTING.md"}),(0,s.jsx)(t.td,{children:"Everything you need to know to start contributing to our projects can be found here. It also includes ways to communicate with the community."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"DOCUMENTATION.md"}),(0,s.jsx)(t.td,{children:"This file points out some useful tips on where to find our documentation and how to use Docusaurus."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"INSTALLATION.md"}),(0,s.jsx)(t.td,{children:"The installation guide for the project. It will tell you step by step what you need to do to get the software running. This includes the dependencies to install, the required versions of supporting software and the necessary tips to get things working on your operating system."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"CONFIGURATION.md"}),(0,s.jsx)(t.td,{children:"Some repositories have this file to specify the configurations necessary to enable various features to make Talawa run smoothly."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ISSUE_GUIDELINES.md"}),(0,s.jsx)(t.td,{children:"If you find a bug or feel a new feature is necessary, then open an issue. Don't ask for permission to create one, we need your contributions! However, if you want to do the work yourself, don't start before being assigned the task as we only accept Pull Requests (PRs) from people who have been assigned the corresponding issue."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"PR_GUIDELINES.md"}),(0,s.jsx)(t.td,{children:"When you are ready submit new code this document will explain what we need in your Pull Request (PR). We take this guide seriously as it tells you how to make sure your code will meet our standards and be accepted."})]})]})]})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>r,x:()=>a});var n=o(6540);const s={},i=n.createContext(s);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[1976],{9803:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"introduction/introduction","title":"Introduction","description":"The Palisadoes Foundation\u2019s open-source software projects started in 2016 when a group of expatriate Jamaicans wanted to assist development of new and existing information technologies for the island\u2019s social good.","source":"@site/docs/introduction/introduction.md","sourceDirName":"introduction","slug":"/","permalink":"/docs/","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/introduction/introduction.md","tags":[],"version":"current","frontMatter":{"title":"Introduction","id":"introduction","slug":"/"},"sidebar":"docs","next":{"title":"Sponsors","permalink":"/docs/introduction/sponsors"}}');var s=o(4848),i=o(8453);const r={title:"Introduction",id:"introduction",slug:"/"},a=void 0,d={},c=[{value:"Getting Started",id:"getting-started",level:2},{value:"Important Files",id:"important-files",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.a,{href:"https://www.palisadoes.org",children:"Palisadoes Foundation\u2019s"})," open-source software projects started in 2016 when a group of expatriate Jamaicans wanted to assist development of new and existing information technologies for the island\u2019s social good."]}),"\n",(0,s.jsx)(t.p,{children:"Over the years the scope of our work has expanded. Our volunteers now live in all timezones of the globe and work on projects with a truly international scope."}),"\n",(0,s.jsx)(t.p,{children:"A significant proportion of our original open source contributions came from university students studying software engineering. Participants often came from under-served communities or geographic areas and were sponsored through the various programs in which we participated."}),"\n",(0,s.jsx)(t.h2,{id:"getting-started",children:"Getting Started"}),"\n",(0,s.jsx)(t.p,{children:"Here is a quick guide on getting started with our projects."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Watch our YouTube Channel playlist: ",(0,s.jsx)(t.a,{href:"https://www.youtube.com/watch?v=YpBUoHxEeyg&list=PLv50qHwThlJUIzscg9a80a9-HmAlmUdCF&pp=gAQB",children:"Getting Started - Developers"}),". It covers important topics such as:","\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Our community culture"}),"\n",(0,s.jsx)(t.li,{children:"How to create issues"}),"\n",(0,s.jsx)(t.li,{children:"How to get issues assigned to you"}),"\n",(0,s.jsx)(t.li,{children:"Our pull request process"}),"\n",(0,s.jsx)(t.li,{children:"The importance of testing"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["Get familiar with the ",(0,s.jsx)(t.a,{href:"#important-files",children:"important files in each repository"}),". They cover details that are excluded in our summary YouTube videos."]}),"\n",(0,s.jsxs)(t.li,{children:["If you are new to GitHub and collaborative coding then ",(0,s.jsx)(t.a,{href:"/docs/git-guide/quickstart",children:"read our GitHub Quick-Start Guide"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Research the ",(0,s.jsx)(t.a,{href:"/docs/introduction/projects",children:"GitHub unassigned issue trackers for all the projects"})]}),"\n",(0,s.jsxs)(t.li,{children:["Introduce yourself on our ",(0,s.jsx)(t.code,{children:"#general"})," slack channel. You can join our Slack Channel using the link on the ",(0,s.jsx)(t.a,{href:"http://github.com/PalisadoesFoundation",children:"Palisadoes Foundation GitHub Home Page"}),"."]}),"\n",(0,s.jsx)(t.li,{children:"If you do not see any interesting projects from the proposed ideas or issues, we encourage you to contact the Palisadoes Foundation\u2019s mailing list and propose a new idea. The Palisadoes Foundation does not encourage and will not respond to your personal new open source project ideas which are unrelated to any Palisadoes projects."}),"\n",(0,s.jsxs)(t.li,{children:["You can subscribe to our list at ",(0,s.jsx)(t.a,{href:"https://www.freelists.org/list/palisadoes",children:"https://www.freelists.org/list/palisadoes"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"important-files",children:"Important Files"}),"\n",(0,s.jsx)(t.p,{children:"Each of our GitHub repositories contain important files in their topmost, or root, directories that you should know about. These include:"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"File"}),(0,s.jsx)(t.th,{children:"Purpose"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"README.md"}),(0,s.jsx)(t.td,{children:"The README.md file contains a summary of project's purpose. It includes links to other important files in the repository that you should read before starting"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"CODE_OF_CONDUCT.md"}),(0,s.jsx)(t.td,{children:"This file contains guidelines of how each contributor in the community should behave and communicate with each other. It also states the consequences of going against these rules. By doing this we aim to provide a harassment-free environment and also an inclusive, healthy and diverse community."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"CONTRIBUTING.md"}),(0,s.jsx)(t.td,{children:"Everything you need to know to start contributing to our projects can be found here. It also includes ways to communicate with the community."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"DOCUMENTATION.md"}),(0,s.jsx)(t.td,{children:"This file points out some useful tips on where to find our documentation and how to use Docusaurus."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"INSTALLATION.md"}),(0,s.jsx)(t.td,{children:"The installation guide for the project. It will tell you step by step what you need to do to get the software running. This includes the dependencies to install, the required versions of supporting software and the necessary tips to get things working on your operating system."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"CONFIGURATION.md"}),(0,s.jsx)(t.td,{children:"Some repositories have this file to specify the configurations necessary to enable various features to make Talawa run smoothly."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ISSUE_GUIDELINES.md"}),(0,s.jsx)(t.td,{children:"If you find a bug or feel a new feature is necessary, then open an issue. Don't ask for permission to create one, we need your contributions! However, if you want to do the work yourself, don't start before being assigned the task as we only accept Pull Requests (PRs) from people who have been assigned the corresponding issue."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"PR_GUIDELINES.md"}),(0,s.jsx)(t.td,{children:"When you are ready submit new code this document will explain what we need in your Pull Request (PR). We take this guide seriously as it tells you how to make sure your code will meet our standards and be accepted."})]})]})]})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>r,x:()=>a});var n=o(6540);const s={},i=n.createContext(s);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d40b4146.f778243d.js b/assets/js/d40b4146.8803e5c7.js similarity index 59% rename from assets/js/d40b4146.f778243d.js rename to assets/js/d40b4146.8803e5c7.js index 1160248..1ebbeb3 100644 --- a/assets/js/d40b4146.f778243d.js +++ b/assets/js/d40b4146.8803e5c7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[4978],{5544:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Git Guide","slug":"/category/git-guide","permalink":"/docs/category/git-guide","sidebar":"docs","navigation":{"previous":{"title":"Volunteers","permalink":"/docs/introduction/volunteers"},"next":{"title":"Quick Start","permalink":"/docs/git-guide/quickstart"}}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[4978],{5544:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Git Guide","slug":"/category/git-guide","permalink":"/docs/category/git-guide","sidebar":"docs","navigation":{"previous":{"title":"Pattoo","permalink":"/docs/projects/pattoo"},"next":{"title":"Quick Start","permalink":"/docs/git-guide/quickstart"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/dd32d4ec.b8bd9f30.js b/assets/js/dd32d4ec.b8bd9f30.js new file mode 100644 index 0000000..ab126ce --- /dev/null +++ b/assets/js/dd32d4ec.b8bd9f30.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[8020],{5263:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Projects","slug":"/category/projects","permalink":"/docs/category/projects","sidebar":"docs","navigation":{"previous":{"title":"Volunteers","permalink":"/docs/introduction/volunteers"},"next":{"title":"Talawa","permalink":"/docs/projects/talawa"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/f1696f71.aca19e44.js b/assets/js/f1696f71.aca19e44.js new file mode 100644 index 0000000..2b5ecde --- /dev/null +++ b/assets/js/f1696f71.aca19e44.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[8139],{6973:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>c,metadata:()=>n,toc:()=>a});const n=JSON.parse('{"id":"introduction/volunteers","title":"Volunteers","description":"Hundreds of volunteers have contributed to our code, documentation and processes over the years. Here is a snapshot of who they are.","source":"@site/docs/introduction/volunteers.md","sourceDirName":"introduction","slug":"/introduction/volunteers","permalink":"/docs/introduction/volunteers","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/introduction/volunteers.md","tags":[],"version":"current","frontMatter":{"title":"Volunteers","id":"volunteers"},"sidebar":"docs","previous":{"title":"Sponsors","permalink":"/docs/introduction/sponsors"},"next":{"title":"Projects","permalink":"/docs/category/projects"}}');var o=s(4848),r=s(8453);const c={title:"Volunteers",id:"volunteers"},i=void 0,d={},a=[];function l(e){const t={img:"img",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"Hundreds of volunteers have contributed to our code, documentation and processes over the years. Here is a snapshot of who they are."}),"\n",(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Volunteers"}),(0,o.jsx)(t.th,{children:"More Volunteers!"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(9108).A+"",width:"400",height:"300"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(1117).A+"",width:"400",height:"300"})})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(8834).A+"",width:"400",height:"317"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(6895).A+"",width:"400",height:"266"})})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(3441).A+"",width:"400",height:"264"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(5686).A+"",width:"400",height:"300"})})]})]})]})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1117:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-01-c10668904ec4b9527be18f0b6cca40e8.jpg"},8834:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-02-bfcf74aeb9f62f81e66b2b2cec4bc89e.jpg"},6895:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-03-7c2a447941e84440e313d1f6e0ece80b.jpg"},9108:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-04-8e5dbb6ca8f8272f0e20e0bf48e2edd7.jpg"},3441:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-05-e29b1bb4e20060eb3c2b48ded5cd9f9c.jpg"},5686:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-06-fa6b21ad9d63ee6b7240f398c1ac3456.jpg"},8453:(e,t,s)=>{s.d(t,{R:()=>c,x:()=>i});var n=s(6540);const o={},r=n.createContext(o);function c(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f1696f71.e860f572.js b/assets/js/f1696f71.e860f572.js deleted file mode 100644 index a0a31ef..0000000 --- a/assets/js/f1696f71.e860f572.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[8139],{6973:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>i,metadata:()=>n,toc:()=>a});const n=JSON.parse('{"id":"introduction/volunteers","title":"Volunteers","description":"Hundreds of volunteers have contributed to our code, documentation and processes over the years. Here is a snapshot of who they are.","source":"@site/docs/introduction/volunteers.md","sourceDirName":"introduction","slug":"/introduction/volunteers","permalink":"/docs/introduction/volunteers","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/introduction/volunteers.md","tags":[],"version":"current","frontMatter":{"title":"Volunteers","id":"volunteers"},"sidebar":"docs","previous":{"title":"Sponsors","permalink":"/docs/introduction/sponsors"},"next":{"title":"Git Guide","permalink":"/docs/category/git-guide"}}');var o=s(4848),r=s(8453);const i={title:"Volunteers",id:"volunteers"},c=void 0,d={},a=[];function l(e){const t={img:"img",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.p,{children:"Hundreds of volunteers have contributed to our code, documentation and processes over the years. Here is a snapshot of who they are."}),"\n",(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Volunteers"}),(0,o.jsx)(t.th,{children:"More Volunteers!"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(9108).A+"",width:"400",height:"300"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(1117).A+"",width:"400",height:"300"})})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(8834).A+"",width:"400",height:"317"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(6895).A+"",width:"400",height:"266"})})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(3441).A+"",width:"400",height:"264"})}),(0,o.jsx)(t.td,{children:(0,o.jsx)(t.img,{alt:"image",src:s(5686).A+"",width:"400",height:"300"})})]})]})]})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1117:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-01-c10668904ec4b9527be18f0b6cca40e8.jpg"},8834:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-02-bfcf74aeb9f62f81e66b2b2cec4bc89e.jpg"},6895:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-03-7c2a447941e84440e313d1f6e0ece80b.jpg"},9108:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-04-8e5dbb6ca8f8272f0e20e0bf48e2edd7.jpg"},3441:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-05-e29b1bb4e20060eb3c2b48ded5cd9f9c.jpg"},5686:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/volunteers-06-fa6b21ad9d63ee6b7240f398c1ac3456.jpg"},8453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>c});var n=s(6540);const o={},r=n.createContext(o);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.3a1d67b4.js b/assets/js/main.3a1d67b4.js deleted file mode 100644 index 6be4216..0000000 --- a/assets/js/main.3a1d67b4.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.3a1d67b4.js.LICENSE.txt */ -(self.webpackChunkdeveloper_docs=self.webpackChunkdeveloper_docs||[]).push([[8792],{8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(6540);var r=n(3259),o=n.n(r),a=n(4054);const i={"0058b4c6":[()=>n.e(849).then(n.t.bind(n,6164,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-175.json",6164],"068db418":[()=>n.e(328).then(n.bind(n,8975)),"@site/docs/git-guide/Git working/Stage changes/stage-changes.md",8975],"07c63236":[()=>n.e(7431).then(n.bind(n,1684)),"@site/docs/git-guide/Workingcopies/usefulgitcommands.md",1684],"08d6e87a":[()=>n.e(9070).then(n.bind(n,9624)),"@site/docs/internships/gsod/ideas-2024.md",9624],"0963e4c3":[()=>n.e(2310).then(n.bind(n,9993)),"@site/docs/git-guide/Git working/Stage changes/stage-additions.md",9993],"0d7c2916":[()=>n.e(9171).then(n.bind(n,3121)),"@site/docs/git-guide/gitworkflow.md",3121],"11bd69e7":[()=>n.e(2004).then(n.bind(n,6003)),"@site/docs/introduction/sponsors.md",6003],"14eb3368":[()=>Promise.all([n.e(1869),n.e(6969)]).then(n.bind(n,7247)),"@theme/DocCategoryGeneratedIndexPage",7247],17896441:[()=>Promise.all([n.e(1869),n.e(9408),n.e(8401)]).then(n.bind(n,8632)),"@theme/DocItem",8632],"1a8876e8":[()=>n.e(1581).then(n.bind(n,7554)),"@site/docs/git-guide/Workingcopies/workingcopies.md",7554],"1da74bd2":[()=>n.e(9940).then(n.bind(n,4215)),"@site/docs/internships/palisadoes/introduction.md",4215],"1df93b7f":[()=>Promise.all([n.e(1869),n.e(4583)]).then(n.bind(n,5579)),"@site/src/pages/index.tsx",5579],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(9408),n.e(6061)]).then(n.bind(n,7973)),"@theme/MDXPage",7973],"1f6a2be9":[()=>n.e(8123).then(n.bind(n,6828)),"@site/docs/git-guide/quickstart.md",6828],"227cc2f6":[()=>n.e(6218).then(n.bind(n,5067)),"@site/docs/internships/gsoc/ideas.md",5067],"32e0856f":[()=>n.e(9806).then(n.bind(n,5168)),"@site/docs/internships/gsoc/ideas-20231209.md",5168],"3630aa57":[()=>n.e(7947).then(n.bind(n,8396)),"@site/docs/internships/gsoc/ideas-20240221.md",8396],"393be207":[()=>n.e(4134).then(n.bind(n,591)),"@site/src/pages/markdown-page.md",591],"402dc119":[()=>n.e(9435).then(n.bind(n,4954)),"@site/docs/git-guide/Git working/Stage changes/stage-deletions.md",4954],"44d1882b":[()=>n.e(9246).then(n.bind(n,8301)),"@site/docs/internships/calico/application-process.md",8301],"4bfb7628":[()=>n.e(6728).then(n.bind(n,8567)),"@site/docs/internships/gsod/ideas-2022.md",8567],"52453d49":[()=>n.e(5279).then(n.t.bind(n,4083,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-internships-8be.json",4083],"55ee8e02":[()=>n.e(8908).then(n.bind(n,5616)),"@site/docs/git-guide/setup-git.md",5616],"5cf9dc43":[()=>n.e(7916).then(n.bind(n,8246)),"@site/docs/internships/calico/introduction.md",8246],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"5f15054d":[()=>n.e(5617).then(n.t.bind(n,8006,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-gsod-9dc.json",8006],"62725e77":[()=>n.e(8044).then(n.bind(n,6366)),"@site/docs/introduction/projects.md",6366],"68196e27":[()=>n.e(7973).then(n.bind(n,9991)),"@site/docs/internships/application-template.md",9991],"6f9c6f15":[()=>n.e(401).then(n.bind(n,7468)),"@site/docs/git-guide/Git working/branch.md",7468],"740a931d":[()=>n.e(7388).then(n.t.bind(n,171,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-gsoc-235.json",171],"78728a2f":[()=>n.e(8316).then(n.bind(n,1141)),"@site/docs/git-guide/collaborate.md",1141],"88c4c62e":[()=>n.e(2554).then(n.bind(n,2401)),"@site/docs/internships/conflicts-of-interest.md",2401],"8a749061":[()=>n.e(4611).then(n.t.bind(n,4106,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-palisadoes-5f9.json",4106],"9c01a053":[()=>n.e(8217).then(n.bind(n,4470)),"@site/docs/internships/ideas.md",4470],"9cc4a9b5":[()=>n.e(1355).then(n.bind(n,2738)),"@site/docs/internships/gsoc/introduction.md",2738],"9cef1af2":[()=>n.e(3e3).then(n.bind(n,1369)),"@site/docs/git-guide/Git working/Feature-branch.md",1369],"9fb7854f":[()=>n.e(3596).then(n.bind(n,9421)),"@site/docs/internships/selection-criteria.md",9421],a2aaa076:[()=>n.e(5548).then(n.bind(n,7209)),"@site/docs/internships/gsoc/ideas-20240122.md",7209],a7456010:[()=>n.e(1235).then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,1723)),"@theme/DocVersionRoot",1723],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,1377)),"@theme/DocRoot",1377],aa0f0ed7:[()=>n.e(6389).then(n.bind(n,7350)),"@site/docs/internships/calico/ideas.md",7350],aa8e3941:[()=>n.e(1853).then(n.bind(n,3558)),"@site/docs/git-guide/Git working/Stage changes/status.md",3558],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],bb6f7304:[()=>n.e(7081).then(n.t.bind(n,2094,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-calico-04b.json",2094],c387b29c:[()=>n.e(3758).then(n.bind(n,3506)),"@site/docs/git-guide/pullrequest.md",3506],c5292cb6:[()=>n.e(8253).then(n.bind(n,2223)),"@site/docs/internships/gsoc/ideas-20250101.md",2223],c62485b9:[()=>n.e(1976).then(n.bind(n,9803)),"@site/docs/introduction/introduction.md",9803],d143a29f:[()=>n.e(7789).then(n.bind(n,8566)),"@site/docs/git-guide/Git working/push-commits.md",8566],d147bb59:[()=>n.e(2787).then(n.bind(n,7984)),"@site/docs/git-guide/Git working/commit-changes.md",7984],d40b4146:[()=>n.e(4978).then(n.t.bind(n,5544,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-git-guide-f60.json",5544],d73dab94:[()=>n.e(3163).then(n.bind(n,2714)),"@site/docs/internships/gsoc/application-process.md",2714],dda96e09:[()=>n.e(1359).then(n.bind(n,769)),"@site/docs/git-guide/Workingcopies/workflows.md",769],ea54857c:[()=>n.e(8329).then(n.bind(n,5113)),"@site/docs/git-guide/get-the-code.md",5113],f1696f71:[()=>n.e(8139).then(n.bind(n,6973)),"@site/docs/introduction/volunteers.md",6973],fc21bfbd:[()=>n.e(4527).then(n.bind(n,1334)),"@site/docs/git-guide/Git working/Fork.md",1334]};var s=n(4848);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(6921),u=n(3102);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],g=(0,c.A)(r);return Object.entries(g).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;delete o.__context;const l=o.__props;return delete o.__props,(0,s.jsx)(u.W,{value:i,children:(0,s.jsx)(a,{...o,...l,...n})})}})}const p=[{path:"/markdown-page",component:d("/markdown-page","3d7"),exact:!0},{path:"/docs",component:d("/docs","fd2"),routes:[{path:"/docs",component:d("/docs","6f0"),routes:[{path:"/docs",component:d("/docs","451"),routes:[{path:"/docs/",component:d("/docs/","c60"),exact:!0,sidebar:"docs"},{path:"/docs/category/calico",component:d("/docs/category/calico","072"),exact:!0,sidebar:"docs"},{path:"/docs/category/git-guide",component:d("/docs/category/git-guide","13d"),exact:!0,sidebar:"docs"},{path:"/docs/category/gsoc",component:d("/docs/category/gsoc","f6b"),exact:!0,sidebar:"docs"},{path:"/docs/category/gsod",component:d("/docs/category/gsod","db9"),exact:!0,sidebar:"docs"},{path:"/docs/category/internships",component:d("/docs/category/internships","7bd"),exact:!0,sidebar:"docs"},{path:"/docs/category/palisadoes",component:d("/docs/category/palisadoes","071"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/collaborate",component:d("/docs/git-guide/collaborate","1e6"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/get-the-code",component:d("/docs/git-guide/get-the-code","24a"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/Git working/branch",component:d("/docs/git-guide/Git working/branch","2e8"),exact:!0},{path:"/docs/git-guide/Git working/commit-changes",component:d("/docs/git-guide/Git working/commit-changes","4b3"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/Git working/Feature-branch",component:d("/docs/git-guide/Git working/Feature-branch","4f9"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/Git working/Fork",component:d("/docs/git-guide/Git working/Fork","b42"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/Git working/push-commits",component:d("/docs/git-guide/Git working/push-commits","3d4"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/Git working/Stage changes/stage-additions",component:d("/docs/git-guide/Git working/Stage changes/stage-additions","58b"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/Git working/Stage changes/stage-changes",component:d("/docs/git-guide/Git working/Stage changes/stage-changes","093"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/Git working/Stage changes/stage-deletions",component:d("/docs/git-guide/Git working/Stage changes/stage-deletions","96d"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/Git working/Stage changes/status",component:d("/docs/git-guide/Git working/Stage changes/status","c41"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/gitworkflow",component:d("/docs/git-guide/gitworkflow","7d0"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/pullrequest",component:d("/docs/git-guide/pullrequest","d86"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/quickstart",component:d("/docs/git-guide/quickstart","294"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/setup-git",component:d("/docs/git-guide/setup-git","972"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/Workingcopies/",component:d("/docs/git-guide/Workingcopies/","33c"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/Workingcopies/usefulgitcommands",component:d("/docs/git-guide/Workingcopies/usefulgitcommands","906"),exact:!0,sidebar:"docs"},{path:"/docs/git-guide/Workingcopies/workflows",component:d("/docs/git-guide/Workingcopies/workflows","76f"),exact:!0,sidebar:"docs"},{path:"/docs/internships/calico/calico-application-process",component:d("/docs/internships/calico/calico-application-process","cf6"),exact:!0,sidebar:"docs"},{path:"/docs/internships/calico/calico-ideas",component:d("/docs/internships/calico/calico-ideas","5e8"),exact:!0,sidebar:"docs"},{path:"/docs/internships/calico/calico-introduction",component:d("/docs/internships/calico/calico-introduction","3d9"),exact:!0,sidebar:"docs"},{path:"/docs/internships/conflicts-of-interest",component:d("/docs/internships/conflicts-of-interest","9be"),exact:!0,sidebar:"docs"},{path:"/docs/internships/gsoc/gsoc-application-process",component:d("/docs/internships/gsoc/gsoc-application-process","357"),exact:!0,sidebar:"docs"},{path:"/docs/internships/gsoc/gsoc-ideas",component:d("/docs/internships/gsoc/gsoc-ideas","691"),exact:!0,sidebar:"docs"},{path:"/docs/internships/gsoc/gsoc-ideas-20231209",component:d("/docs/internships/gsoc/gsoc-ideas-20231209","4a6"),exact:!0},{path:"/docs/internships/gsoc/gsoc-ideas-2024",component:d("/docs/internships/gsoc/gsoc-ideas-2024","757"),exact:!0},{path:"/docs/internships/gsoc/gsoc-ideas-20240122",component:d("/docs/internships/gsoc/gsoc-ideas-20240122","800"),exact:!0},{path:"/docs/internships/gsoc/gsoc-ideas-20250101",component:d("/docs/internships/gsoc/gsoc-ideas-20250101","f0f"),exact:!0},{path:"/docs/internships/gsoc/gsoc-introduction",component:d("/docs/internships/gsoc/gsoc-introduction","9a8"),exact:!0,sidebar:"docs"},{path:"/docs/internships/gsod/gsod-ideas",component:d("/docs/internships/gsod/gsod-ideas","5a8"),exact:!0,sidebar:"docs"},{path:"/docs/internships/gsod/gsod-ideas-2022",component:d("/docs/internships/gsod/gsod-ideas-2022","bac"),exact:!0,sidebar:"docs"},{path:"/docs/internships/internship-application-template",component:d("/docs/internships/internship-application-template","8bf"),exact:!0,sidebar:"docs"},{path:"/docs/internships/internship-ideas",component:d("/docs/internships/internship-ideas","968"),exact:!0,sidebar:"docs"},{path:"/docs/internships/internship-selection-criteria",component:d("/docs/internships/internship-selection-criteria","3d5"),exact:!0,sidebar:"docs"},{path:"/docs/internships/palisadoes/palisadoes-introduction",component:d("/docs/internships/palisadoes/palisadoes-introduction","098"),exact:!0,sidebar:"docs"},{path:"/docs/introduction/projects",component:d("/docs/introduction/projects","4dd"),exact:!0,sidebar:"docs"},{path:"/docs/introduction/sponsors",component:d("/docs/introduction/sponsors","ba3"),exact:!0,sidebar:"docs"},{path:"/docs/introduction/volunteers",component:d("/docs/introduction/volunteers","478"),exact:!0,sidebar:"docs"}]}]}]},{path:"/",component:d("/","e5f"),exact:!0},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(6540),o=n(4848);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},7815:(e,t,n)=>{"use strict";var r=n(6540),o=n(5338),a=n(545),i=n(4625),s=n(4784),l=n(8193);const c=[n(119),n(6134),n(6294),n(1043)];var u=n(8328),d=n(6347),p=n(2831),f=n(4848);function g(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var m=n(5260),h=n(4586),y=n(6025),b=n(6342),v=n(1003),w=n(2131),k=n(4090);var x=n(440),S=n(1463);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.A)(),r=(0,w.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,f.jsxs)(m.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.A)(),{pathname:r}=(0,d.zy)();return e+(0,x.Ks)((0,y.Ay)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,f.jsxs)(m.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:o}),(0,f.jsx)("link",{rel:"canonical",href:o})]})}function C(){const{i18n:{currentLocale:e}}=(0,h.A)(),{metadata:t,image:n}=(0,b.p)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(m.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:k.w})]}),n&&(0,f.jsx)(v.be,{image:n}),(0,f.jsx)(E,{}),(0,f.jsx)(_,{}),(0,f.jsx)(S.A,{tag:"default",locale:e}),(0,f.jsx)(m.A,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const A=new Map;var T=n(6125),j=n(6988),N=n(205);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const R=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,N.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),P("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function L(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,p.u)(u.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.A.canUseDOM?P("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),L(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(R,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(d.qh,{location:t,render:()=>e})})}}const D=O,I="__docusaurus-base-url-issue-banner-suggestion-container";function F(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '__docusaurus-base-url-issue-banner-container';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{let{route:t}=e;return!0===t.exact})))return A.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),{...e,pathname:t}}((0,d.zy)());return(0,f.jsx)(D,{location:e,children:q})}function W(){return(0,f.jsx)($.A,{children:(0,f.jsx)(j.l,{children:(0,f.jsxs)(T.x,{children:[(0,f.jsxs)(g,{children:[(0,f.jsx)(B,{}),(0,f.jsx)(C,{}),(0,f.jsx)(z,{}),(0,f.jsx)(H,{})]}),(0,f.jsx)(G,{})]})})})}var V=n(4054);const Q=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var K=n(6921);const Y=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J={prefetch:e=>{if(!(e=>!X()&&!Z.has(e)&&!Y.has(e))(e))return!1;Y.add(e);const t=(0,p.u)(u.A,e).flatMap((e=>{return t=e.route.path,Object.entries(V).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,K.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!X()&&!Z.has(e))(e)&&(Z.add(e),L(e))},ee=Object.freeze(J);function te(e){let{children:t}=e;return"hash"===s.default.future.experimental_router?(0,f.jsx)(i.I9,{children:t}):(0,f.jsx)(i.Kd,{children:t})}const ne=Boolean(!0);if(l.A.canUseDOM){window.docusaurus=ee;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(a.vd,{children:(0,f.jsx)(te,{children:(0,f.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(ne)window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n});else{const r=o.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};L(window.location.pathname).then((()=>{(0,r.startTransition)(i)}))}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(6540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"introduction/introduction","docs":[{"id":"git-guide/collaborate","path":"/docs/git-guide/collaborate","sidebar":"docs"},{"id":"git-guide/get-the-code","path":"/docs/git-guide/get-the-code","sidebar":"docs"},{"id":"git-guide/Git working/branch","path":"/docs/git-guide/Git working/branch"},{"id":"git-guide/Git working/commit-changes","path":"/docs/git-guide/Git working/commit-changes","sidebar":"docs"},{"id":"git-guide/Git working/Feature-branch","path":"/docs/git-guide/Git working/Feature-branch","sidebar":"docs"},{"id":"git-guide/Git working/Fork","path":"/docs/git-guide/Git working/Fork","sidebar":"docs"},{"id":"git-guide/Git working/push-commits","path":"/docs/git-guide/Git working/push-commits","sidebar":"docs"},{"id":"git-guide/Git working/Stage changes/stage-additions","path":"/docs/git-guide/Git working/Stage changes/stage-additions","sidebar":"docs"},{"id":"git-guide/Git working/Stage changes/stage-changes","path":"/docs/git-guide/Git working/Stage changes/stage-changes","sidebar":"docs"},{"id":"git-guide/Git working/Stage changes/stage-deletions","path":"/docs/git-guide/Git working/Stage changes/stage-deletions","sidebar":"docs"},{"id":"git-guide/Git working/Stage changes/status","path":"/docs/git-guide/Git working/Stage changes/status","sidebar":"docs"},{"id":"git-guide/gitworkflow","path":"/docs/git-guide/gitworkflow","sidebar":"docs"},{"id":"git-guide/pullrequest","path":"/docs/git-guide/pullrequest","sidebar":"docs"},{"id":"git-guide/quickstart","path":"/docs/git-guide/quickstart","sidebar":"docs"},{"id":"git-guide/setup-git","path":"/docs/git-guide/setup-git","sidebar":"docs"},{"id":"git-guide/Workingcopies/usefulgitcommands","path":"/docs/git-guide/Workingcopies/usefulgitcommands","sidebar":"docs"},{"id":"git-guide/Workingcopies/workflows","path":"/docs/git-guide/Workingcopies/workflows","sidebar":"docs"},{"id":"git-guide/Workingcopies/workingcopies","path":"/docs/git-guide/Workingcopies/","sidebar":"docs"},{"id":"internships/calico/calico-application-process","path":"/docs/internships/calico/calico-application-process","sidebar":"docs"},{"id":"internships/calico/calico-ideas","path":"/docs/internships/calico/calico-ideas","sidebar":"docs"},{"id":"internships/calico/calico-introduction","path":"/docs/internships/calico/calico-introduction","sidebar":"docs"},{"id":"internships/conflicts-of-interest","path":"/docs/internships/conflicts-of-interest","sidebar":"docs"},{"id":"internships/gsoc/gsoc-application-process","path":"/docs/internships/gsoc/gsoc-application-process","sidebar":"docs"},{"id":"internships/gsoc/gsoc-ideas","path":"/docs/internships/gsoc/gsoc-ideas","sidebar":"docs"},{"id":"internships/gsoc/gsoc-ideas-20231209","path":"/docs/internships/gsoc/gsoc-ideas-20231209"},{"id":"internships/gsoc/gsoc-ideas-2024","path":"/docs/internships/gsoc/gsoc-ideas-2024"},{"id":"internships/gsoc/gsoc-ideas-20240122","path":"/docs/internships/gsoc/gsoc-ideas-20240122"},{"id":"internships/gsoc/gsoc-ideas-20250101","path":"/docs/internships/gsoc/gsoc-ideas-20250101"},{"id":"internships/gsoc/gsoc-introduction","path":"/docs/internships/gsoc/gsoc-introduction","sidebar":"docs"},{"id":"internships/gsod/gsod-ideas","path":"/docs/internships/gsod/gsod-ideas","sidebar":"docs"},{"id":"internships/gsod/gsod-ideas-2022","path":"/docs/internships/gsod/gsod-ideas-2022","sidebar":"docs"},{"id":"internships/internship-application-template","path":"/docs/internships/internship-application-template","sidebar":"docs"},{"id":"internships/internship-ideas","path":"/docs/internships/internship-ideas","sidebar":"docs"},{"id":"internships/internship-selection-criteria","path":"/docs/internships/internship-selection-criteria","sidebar":"docs"},{"id":"internships/palisadoes/palisadoes-introduction","path":"/docs/internships/palisadoes/palisadoes-introduction","sidebar":"docs"},{"id":"introduction/introduction","path":"/docs/","sidebar":"docs"},{"id":"introduction/projects","path":"/docs/introduction/projects","sidebar":"docs"},{"id":"introduction/sponsors","path":"/docs/introduction/sponsors","sidebar":"docs"},{"id":"introduction/volunteers","path":"/docs/introduction/volunteers","sidebar":"docs"},{"id":"/category/git-guide","path":"/docs/category/git-guide","sidebar":"docs"},{"id":"/category/internships","path":"/docs/category/internships","sidebar":"docs"},{"id":"/category/gsoc","path":"/docs/category/gsoc","sidebar":"docs"},{"id":"/category/gsod","path":"/docs/category/gsod","sidebar":"docs"},{"id":"/category/calico","path":"/docs/category/calico","sidebar":"docs"},{"id":"/category/palisadoes","path":"/docs/category/palisadoes","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/","label":"introduction/introduction"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(2654);const l=JSON.parse('{"docusaurusVersion":"3.6.3","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.6.3"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.6.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.6.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.6.3"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.6.3"}}}');var c=n(4848);const u={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(6540),o=n(8193),a=n(5260),i=n(440),s=n(781),l=n(3102),c=n(4848);function u(e){let{error:t,tryAgain:n}=e;return(0,c.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,i.rA)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,c.jsx)(l.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)(p,{children:(0,c.jsxs)(m,{fallback:()=>(0,c.jsx)(u,{error:t,tryAgain:n}),children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(s.A,{children:(0,c.jsx)(u,{error:t,tryAgain:n})})]})})}const g=e=>(0,c.jsx)(f,{...e});class m extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??g)(e)}return e??null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(545),o=n(4848);function a(e){return(0,o.jsx)(r.mg,{...e})}},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),o=n(4625),a=n(440),i=n(4586),s=n(6654),l=n(8193),c=n(3427),u=n(6025),d=n(4848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:g,isActive:m,"data-noBrokenLinkCheck":h,autoAddBaseUrl:y=!0,...b}=e;const{siteConfig:v}=(0,i.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,u.hH)(),_=(0,c.A)(),E=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>E.current));const C=p||f;const A=(0,s.A)(C),T=C?.replace("pathname://","");let j=void 0!==T?(N=T,y&&(e=>e.startsWith("/"))(N)?S(N):N):void 0;var N;"hash"===x&&j?.startsWith("./")&&(j=j?.slice(1)),j&&A&&(j=(0,a.Ks)(j,{trailingSlash:w,baseUrl:k}));const P=(0,r.useRef)(!1),R=n?o.k2:o.N_,L=l.A.canUseIntersectionObserver,O=(0,r.useRef)(),D=()=>{P.current||null==j||(window.docusaurus.preload(j),P.current=!0)};(0,r.useEffect)((()=>(!L&&A&&l.A.canUseDOM&&null!=j&&window.docusaurus.prefetch(j),()=>{L&&O.current&&O.current.disconnect()})),[O,j,L,A]);const I=j?.startsWith("#")??!1,F=!b.target||"_self"===b.target,M=!j||!A||!F||I&&"hash"!==x;h||!I&&M||_.collectLink(j),b.id&&_.collectAnchor(b.id);const z={};return M?(0,d.jsx)("a",{ref:E,href:j,...C&&!A&&{target:"_blank",rel:"noopener noreferrer"},...b,...z}):(0,d.jsx)(R,{...b,onMouseEnter:D,onTouchStart:D,innerRef:e=>{E.current=e,L&&e&&A&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=j&&window.docusaurus.prefetch(j))}))})),O.current.observe(e))},to:j,...n&&{isActive:m,activeClassName:g},...z})}const f=r.forwardRef(p)},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>l});var r=n(6540),o=n(4848);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(2654);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=s({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,hH:()=>i});var r=n(6540),o=n(4586),a=n(6654);function i(){const{siteConfig:e}=(0,o.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,s=(0,r.useCallback)(((e,r)=>function(e){let{siteUrl:t,baseUrl:n,url:r,options:{forcePrependBaseUrl:o=!1,absolute:i=!1}={},router:s}=e;if(!r||r.startsWith("#")||(0,a.z)(r))return r;if("hash"===s)return r.startsWith("/")?`.${r}`:`./${r}`;if(o)return n+r.replace(/^\//,"");if(r===n.replace(/\/$/,""))return n;const l=r.startsWith(n)?r:n+r.replace(/^\//,"");return i?t+l:l}({siteUrl:n,baseUrl:t,url:e,options:r,router:i})),[n,t,i]);return{withBaseUrl:s}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6988);function a(){return(0,r.useContext)(o.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6125);function a(){return(0,r.useContext)(o.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540);const o=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(6540),o=n(4848);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:s,children:t})}},3886:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>h,g1:()=>b});var r=n(6540),o=n(4070),a=n(7065),i=n(6342),s=n(679),l=n(9532),c=n(4848);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,s.Wf)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,s.Wf)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,s.Wf)(u(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function g(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function m(e){let{children:t}=e;const n=g();return(0,c.jsx)(f.Provider,{value:n,children:t})}function h(e){let{children:t}=e;return(0,c.jsx)(m,{children:t})}function y(){const e=(0,r.useContext)(f);if(!e)throw new l.dV("DocsPreferredVersionContextProvider");return e}function b(e){void 0===e&&(e=a.W);const t=(0,o.ht)(e),[n,i]=y(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},609:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,t:()=>c});var r=n(6540),o=n(9532),a=n(4848);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},4718:(e,t,n)=>{"use strict";n.d(t,{d1:()=>C,Nr:()=>f,w8:()=>y,$S:()=>g,cC:()=>p,B5:()=>E,Vd:()=>x,QB:()=>_,fW:()=>S,OF:()=>k,Y:()=>v});var r=n(6540),o=n(6347),a=n(2831),i=n(4070),s=n(9169);function l(e){return Array.from(new Set(e))}var c=n(3886),u=n(3025),d=n(609);function p(e){const t=(0,u.r)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}function g(){const{pathname:e}=(0,o.zy)(),t=(0,d.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=w({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const m=(e,t)=>void 0!==e&&(0,s.ys)(e,t),h=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?m(e.href,t):"category"===e.type&&(m(e.href,t)||h(e.items,t))}function b(e,t){switch(e.type){case"category":return y(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||y(e,t);default:return!0}}function v(e,t){return(0,r.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function w(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,s.ys)(a.href,n)||e(a.items))||"link"===a.type&&(0,s.ys)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function k(){const e=(0,d.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?w({sidebarItems:e.items,pathname:t}):null}function x(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,c.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)((()=>l([t,n,o].filter(Boolean))),[t,n,o])}function S(e,t){const n=x(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function _(e,t){const n=x(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${l(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t}=e;const n=(0,o.zy)(),r=(0,u.r)(),i=t.routes,s=i.find((e=>(0,o.B6)(n.pathname,e)));if(!s)return null;const l=s.sidebar,c=l?r.docsSidebars[l]:void 0;return{docElement:(0,a.v)(i),sidebarName:l,sidebarItems:c}}function C(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!f(e)))}},3025:(e,t,n)=>{"use strict";n.d(t,{n:()=>s,r:()=>l});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>m,vT:()=>p,Gy:()=>u,HW:()=>h,ht:()=>d,r7:()=>g,jh:()=>f});var r=n(6347),o=n(4586),a=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=function(e,t){return[...e.versions].sort(((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:t.path.includes(e.path)?1:0)).find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const c={},u=()=>i("docusaurus-plugin-content-docs")??c,d=e=>{try{return function(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function p(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return d(e).versions}function g(e){const t=d(e);return s(t)}function m(e){const t=d(e),{pathname:n}=(0,r.zy)();return l(t,n)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=s(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},6134:(e,t,n)=>{"use strict";var r=n(1765),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t,a=globalThis.Prism;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(8692)(`./prism-${e}`)})),delete globalThis.Prism,void 0!==a&&(globalThis.Prism=e)}(r.My)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(4164),o=n(1312),a=n(6342),i=n(8774),s=n(3427);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(4848);function u(e){let{as:t,id:n,...u}=e;const d=(0,s.A)(),{navbar:{hideOnScroll:p}}=(0,a.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",p?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(4848);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},781:(e,t,n)=>{"use strict";n.d(t,{A:()=>ft});var r=n(6540),o=n(4164),a=n(7489),i=n(1003),s=n(6347),l=n(1312),c=n(5062),u=n(4848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const g=(0,l.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??g,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":g,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(7559),y=n(4090);const b={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(m,{className:b.skipToContent})}var w=n(6342),k=n(5041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function _(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.A)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.M)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:A.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:A.announcementBarPlaceholder}),(0,u.jsx)(C,{className:A.announcementBarContent}),a&&(0,u.jsx)(_,{onClick:n,className:A.announcementBarClose})]})}var j=n(9876),N=n(3104);var P=n(9532),R=n(5600);const L=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,j.M)(),t=(0,R.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,P.ZC)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,u.jsx)(L.Provider,{value:n,children:t})}function D(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(L);if(!e)throw new P.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,R.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:D(a)})),[o,a,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=I();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(5293),z=n(2303);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function G(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,z.A)(),s=(0,l.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.A)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite","aria-pressed":"dark"===r?"true":"false",children:[(0,u.jsx)(B,{className:(0,o.A)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)($,{className:(0,o.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const q=r.memo(G),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function W(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,M.G)();return r?null:(0,u.jsx)(q,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var V=n(3465);function Q(){return(0,u.jsx)(V.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,j.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(Q,{}),(0,u.jsx)(W,{className:"margin-right--md"}),(0,u.jsx)(K,{})]})}var Z=n(8774),X=n(6025),J=n(6654);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(3186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.Ay)(r),p=(0,X.Ay)(t),f=(0,X.Ay)(o,{forcePrependBaseUrl:!0}),g=a&&o&&!(0,J.A)(o),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,g&&(0,u.jsx)(te.A,{...s&&{width:12,height:12}})]})};return o?(0,u.jsx)(Z.A,{href:l?f:o,...c,...m}):(0,u.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...c,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.A)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(1422),se=n(9169),le=n(4586);const ce="dropdownNavbarItemMobile_S0Fm";function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.ys)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,o.A)("navbar__link",a),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ee,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:g}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&g(!d)}),[c,d,g]),(0,u.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.A)(ce,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ee,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var ge=n(2131);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const he="iconLanguage_nlXk";var ye=n(418);const be={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ve(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.A)(n,be.navbarSearchContainer),children:t})}var we=n(4070),ke=n(4718);var xe=n(3886);function Se(e,t){return t.alternateDocVersions[e.name]??function(e){return e.docs.find((t=>t.id===e.mainDocId))}(e)}const _e={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.A)(),p=(0,ge.o)(),{search:f,hash:g}=(0,s.zy)(),m=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${g}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],h=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(me,{className:he}),h]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(ve,{className:n,children:(0,u.jsx)(ye.A,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.A)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,we.zK)(r),i=(0,ke.QB)(t,r),s=a?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>s||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,we.zK)(r),i=(0,ke.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,ke.Vd)(r)[0],i=t??a.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,s.zy)(),p=(0,we.zK)(n),f=(0,we.jh)(n),{savePreferredVersionName:g}=(0,xe.g1)(n),m=[...o,...f.map((function(e){const t=Se(e,p);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>g(e.name)}})),...a],h=(0,ke.Vd)(n)[0],y=t&&m.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,b=t&&m.length>1?void 0:Se(h,p).path;return m.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:y,to:b,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:y,to:b,items:m,isActive:r?()=>!1:void 0})}};function Ee(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=_e[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function Ce(){const e=(0,j.M)(),t=(0,w.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ee,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ae(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Te(){const e=0===(0,w.p)().navbar.items.length,t=I();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ae,{onClick:()=>t.hide()}),t.content]})}function je(){const e=(0,j.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(F,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(Ce,{}),secondaryMenu:(0,u.jsx)(Te,{})}):null}const Ne={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Pe(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function Re(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.p)(),i=(0,j.M)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,N.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[Ne.navbarHideable,!d&&Ne.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Pe,{onClick:i.toggle}),(0,u.jsx)(je,{})]})}var Le=n(440);const Oe={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function De(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Ie(e){let{error:t}=e;const n=(0,Le.rA)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Oe.errorBoundaryError,children:n})}class Fe extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Me="right";function ze(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Be(){const{toggle:e,shown:t}=(0,j.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(ze,{})})}const $e={colorModeToggle:"colorModeToggle_DEke"};function Ue(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Fe,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(Ee,{...e})},t)))})}function Ge(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function qe(){const e=(0,j.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Me)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(Ge,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(Be,{}),(0,u.jsx)(Q,{}),(0,u.jsx)(Ue,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ue,{items:r}),(0,u.jsx)(W,{className:$e.colorModeToggle}),!o&&(0,u.jsx)(ve,{children:(0,u.jsx)(ye.A,{})})]})})}function He(){return(0,u.jsx)(Re,{children:(0,u.jsx)(qe,{})})}function We(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,s=(0,X.Ay)(n),l=(0,X.Ay)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Z.A,{className:"footer__link-item",...r?{href:a?l:r}:{to:s},...i,children:[o,r&&!(0,J.A)(r)&&(0,u.jsx)(te.A,{})]})}function Ve(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(We,{item:t})},t.href??t.to)}function Qe(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(Ve,{item:e},t)))})]})}function Ke(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(Qe,{column:e},t)))})}function Ye(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Ze(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(We,{item:t})}function Xe(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(Ze,{item:e}),t.length!==n+1&&(0,u.jsx)(Ye,{})]},n)))})})}function Je(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(Ke,{columns:t}):(0,u.jsx)(Xe,{links:t})}var et=n(1122);const tt="footerLogoLink_BH7S";function nt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.hH)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(et.A,{className:(0,o.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function rt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Z.A,{href:t.href,className:tt,target:t.target,children:(0,u.jsx)(nt,{logo:t})}):(0,u.jsx)(nt,{logo:t})}function ot(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function at(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,u.jsx)("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function it(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(at,{style:o,links:n&&n.length>0&&(0,u.jsx)(Je,{links:n}),logo:r&&(0,u.jsx)(rt,{logo:r}),copyright:t&&(0,u.jsx)(ot,{copyright:t})})}const st=r.memo(it),lt=(0,P.fM)([M.a,k.o,N.Tv,xe.VQ,i.Jx,function(e){let{children:t}=e;return(0,u.jsx)(R.y_,{children:(0,u.jsx)(j.e,{children:(0,u.jsx)(O,{children:t})})})}]);function ct(e){let{children:t}=e;return(0,u.jsx)(lt,{children:t})}var ut=n(1107);function dt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(ut.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(De,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Ie,{error:t})})]})})})}const pt={mainWrapper:"mainWrapper_z2l0"};function ft(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,y.J)(),(0,u.jsxs)(ct,{children:[(0,u.jsx)(i.be,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(T,{}),(0,u.jsx)(He,{}),(0,u.jsx)("div",{id:d,className:(0,o.A)(h.G.wrapper.main,pt.mainWrapper,r),children:(0,u.jsx)(a.A,{fallback:e=>(0,u.jsx)(dt,{...e}),children:t})}),!n&&(0,u.jsx)(st,{})]})}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(8774),o=n(6025),a=n(4586),i=n(6342),s=n(1122),l=n(4848);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.Ay)(t.src),dark:(0,o.Ay)(t.srcDark||t.src)},i=(0,l.jsx)(s.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:s}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.Ay)(s?.href||"/"),g=n?"":t,m=s?.alt??g;return(0,l.jsxs)(r.A,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:m,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(5260),o=n(4848);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.A,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(6540),o=n(4164),a=n(2303),i=n(5293);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(4848);function c(e){let{className:t,children:n}=e;const c=(0,a.A)(),{colorMode:u}=(0,i.G)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.A)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>y,u:()=>c});var r=n(6540),o=n(8193),a=n(205),i=n(3109),s=n(4848);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function g(e){if(!o.A.canUseDOM)return e?u:d}function m(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:a}),(0,s.jsx)(t,{ref:u,style:c?void 0:g(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:o})}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,a.A)((()=>{t||i(!0)}),[t]),(0,a.A)((()=>{o&&c(t)}),[o,t]),o?(0,s.jsx)(m,{...n,collapsed:l}):null}function y(e){let{lazy:t,...n}=e;const r=t?h:m;return(0,s.jsx)(r,{...n})}},5041:(e,t,n)=>{"use strict";n.d(t,{M:()=>m,o:()=>g});var r=n(6540),o=n(2303),a=n(679),i=n(9532),s=n(6342),l=n(4848);const c=(0,a.Wf)("docusaurus.announcement.dismiss"),u=(0,a.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function g(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>y,a:()=>h});var r=n(6540),o=n(8193),a=n(9532),i=n(679),s=n(6342),l=n(4848);const c=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,g=e=>o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{d.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),[o,a]=(0,r.useState)(g(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&m(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>f,M:()=>g});var r=n(6540),o=n(5600),a=n(4581),i=n(6347),s=n(9532);function l(e){!function(e){const t=(0,i.W6)(),n=(0,s._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(6342),u=n(4848);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,c.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1);l((()=>{if(i)return s(!1),!1}));const u=(0,r.useCallback)((()=>{s((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&s(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function f(e){let{children:t}=e;const n=p();return(0,u.jsx)(d.Provider,{value:n,children:t})}function g(){const e=r.useContext(d);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>l,y_:()=>s});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,s]=a,l=(0,o.Be)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(6540);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(6540),o=n(8193);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},1003:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>g});var r=n(6540),o=n(4164),a=n(5260),i=n(3102);function s(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(6025),c=n(4586);var u=n(4848);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const s=function(e){const{siteConfig:t}=(0,c.A)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.hH)(),p=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.A,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,o.A)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(a.A,{children:(0,u.jsx)("html",{className:s})}),n]})}function g(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,o.A)(r,a),children:t})}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>s,_q:()=>i,dV:()=>l,fM:()=>u});var r=n(6540),o=n(205),a=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,o.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,o.A)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(6540),o=n(8328),a=n(4586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.A,baseUrl:e})),[e])}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>c,gk:()=>f});var r=n(6540),o=n(8193),a=n(2303),i=(n(205),n(9532)),s=n(4848);const l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(d()),a=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},679:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>c});n(6540);const r=JSON.parse('{"N":"localStorage","M":""}'),o=r.N;function a(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function i(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){const n=`${e}${r.M}`;if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(n);const o=i(t?.persistence);return null===o?l:{get:()=>{try{return o.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{const t=o.getItem(n);o.setItem(n,e),a({key:n,oldValue:t,newValue:e,storage:o})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{const e=o.getItem(n);o.removeItem(n),a({key:n,oldValue:e,newValue:null,storage:o})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{const t=t=>{t.storageArea===o&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(t){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,t),()=>{}}}}}},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),o=n(6347),a=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.A)(),{pathname:l}=(0,o.zy)(),c=(0,a.Ks)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),o=n(6347),a=n(9532);function i(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(4586);function o(){return(0,r.A)().siteConfig.themeConfig}},2983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=o,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),s="/"===i||i===r?i:(l=i,c=n,c?o(l):a(l));var l,c;return e.replace(i,s)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=a;const r=n(2566);function o(e){return e.endsWith("/")?e:`${e}/`}function a(e){return(0,r.removeSuffix)(e,"/")}},253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){if(t.cause)return[t,...e(t.cause)];return[t]}},440:(e,t,n)=>{"use strict";t.rA=t.Ks=void 0;const r=n(1635);var o=n(2983);Object.defineProperty(t,"Ks",{enumerable:!0,get:function(){return r.__importDefault(o).default}});var a=n(2566);var i=n(253);Object.defineProperty(t,"rA",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},2566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){if(""===t)return e;return e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>f,sC:()=>T,AO:()=>p});var r=n(8168);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var g=i.join("/");return n&&"/"!==g.substr(-1)&&(g+="/"),g};var s=n(1561);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function g(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,m(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(4363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,g=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(g){var o=f(n);o&&o!==g&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),m=l(n),h=0;h{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},119:(e,t,n)=>{"use strict";n.r(t)},1043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},8722:(e,t,n)=>{const r=n(6969),o=n(8380),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(3157).resolve(t)],delete Prism.languages[e],n(3157)(t),a.add(e)}))}i.silent=!1,e.exports=i},9700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),g=p.indexOf(f);if(g>-1){++o;var m=p.substring(0,g),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=p.substring(g+f.length),b=[];m&&b.push.apply(b,i([m])),b.push(h),y&&b.push.apply(b,i([y])),"string"==typeof c?s.splice.apply(s,[l,1].concat(b)):c.content=b}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},8692:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=8692},3157:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=3157},8380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var s={},l=e[r];if(l){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in o(t,a),s[t]=!0,n[t])s[i]=!0}t(l.require,c),t(l.optional,c),t(l.modify,c)}n[r]=s,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,s){var l=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(l);i=i.map(c),s=(s||[]).map(c);var u=n(i),d=n(s);i.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(l),g=u;o(g);){for(var m in p={},g){var h=l[m];t(h&&h.modify,(function(e){e in d&&(p[e]=!0)}))}for(var y in d)if(!(y in u))for(var b in f(y))if(b in u){p[y]=!0;break}for(var v in g=p)u[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,s={},l={};function c(e){if(e in s)return s[e];l[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete l[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return s[e]=o}for(var u in n)c(u);var d=[];for(var p in l)d.push(s[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),o=n(194);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n