diff --git a/.github/workflows/jekyll.yml b/.github/workflows/jekyll.yml new file mode 100644 index 0000000..cb0469f --- /dev/null +++ b/.github/workflows/jekyll.yml @@ -0,0 +1,64 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Deploy Jekyll site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.2.2' # Not needed with a .ruby-version file + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + cache-version: 0 # Increment this number if you need to re-download cached gems + - name: Setup Pages + id: pages + uses: actions/configure-pages@v3 + - name: Build with Jekyll + # Outputs to the './_site' directory by default + run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" + env: + JEKYLL_ENV: production + - name: Upload artifact + # Automatically uploads an artifact from the './_site' directory by default + uses: actions/upload-pages-artifact@v1 + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.gitignore b/.gitignore index 6e8821b..f55f639 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,10 @@ -.DS_Store +# Copied from https://github.com/github/gitignore/blob/main/Jekyll.gitignore +# Ignore metadata generated by Jekyll +_site/ +.sass-cache/ +.jekyll-cache/ +.jekyll-metadata + +# Ignore folders generated by Bundler +.bundle/ +vendor/ diff --git a/404.md b/404.md new file mode 100644 index 0000000..42ee29c --- /dev/null +++ b/404.md @@ -0,0 +1,11 @@ +--- +layout: default +title: 404 +permalink: /404 +nav_exclude: true +search_exclude: true +--- + +

Page not found

+ +

The page you requested could not be found. Try using the navigation {% if site.search_enabled != false %}or search {% endif %}to find what you're looking for or go to this site's home page.

diff --git a/Catrobat_Kids_333x120.png b/Catrobat_Kids_333x120.png deleted file mode 100644 index 62433c6..0000000 Binary files a/Catrobat_Kids_333x120.png and /dev/null differ diff --git a/CodingJam2021.html b/CodingJam2021.html deleted file mode 100644 index dbb29d1..0000000 --- a/CodingJam2021.html +++ /dev/null @@ -1,5 +0,0 @@ - - -Catrobat Coding Jam 24-25 September 2021 - - diff --git a/CodingJam2021_24.html b/CodingJam2021_24.html deleted file mode 100644 index e6d766b..0000000 --- a/CodingJam2021_24.html +++ /dev/null @@ -1,5 +0,0 @@ - - -Catrobat Coding Jam 25-26 September 2021 - - diff --git a/CodingJam2021_25.html b/CodingJam2021_25.html deleted file mode 100644 index e6d766b..0000000 --- a/CodingJam2021_25.html +++ /dev/null @@ -1,5 +0,0 @@ - - -Catrobat Coding Jam 25-26 September 2021 - - diff --git a/CodingJam2021_26.html b/CodingJam2021_26.html deleted file mode 100644 index e6d766b..0000000 --- a/CodingJam2021_26.html +++ /dev/null @@ -1,5 +0,0 @@ - - -Catrobat Coding Jam 25-26 September 2021 - - diff --git a/CreateAtSchool.html b/CreateAtSchool.html deleted file mode 100644 index ae18551..0000000 --- a/CreateAtSchool.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - Catrobat - - - - - - - -
-
-
- -
-
- Create@School logo -
- -

- -

- Create@School is a visual programming language and a set of creativity tools. -

- -

- All features and extensions of our Create@School app have been integrated into our free Pocket Code app. -

- -

- See this YouTube video for some - sample applications that can be made with CreateSchool. -

- -

- If you are interested in licensing Create@School for the specific requirements of schools, e.g., security and data safety, availability, support etc, please contact us via contact@createatschool.com. -

- -

- The Create@School app has been developed by the Catrobat team together with the "No One Left Behind" consortium. The No One Left Behind project, co-funded by the EU Horizon 2020 Innovation Action (Grant Agreement No. 645215), aimed at allowing children to use a non-leisure gaming toolkit to develop digital games on mobile devices with the aim of enhancing their abilities across all academic subjects, as well as their logical reasinong, creativity and social skills. -

- -

- Catrobat and the software developed by the Catrobat team are - inspired by the Scratch programming system - developed by the Lifelong Kindergarten Group at the MIT Media Lab. - - Catrobat itself is an independent free/libre open source software (FOSS/FLOSS) non-profit project. -

- -

- Pocket Code - allows to create and execute Catrobat - programs on Android and iOS smartphones. -

- -

- Catrobat programs written or Catrobat projects - created on one platform can be directly run on all - other platforms as well and can be shared via a our - sharing site. - Uploaded Catrobat programs are AGPLed to - allow learning, remixing, and sharing them freely. -

- -

- The Android smartphone - version of Pocket Code - can be found on Google Play. -

- -

- The iPhone - version of Pocket Code - can be found on iTunes. -

- -

- Contact and Imprint -

- -
- -
- - - diff --git a/GCIlandingpage2017.html b/GCIlandingpage2017.html deleted file mode 100644 index 76413ed..0000000 --- a/GCIlandingpage2017.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - Catrobat at Google Code-In - - - -
- -
-

Catrobat & Pocket Code at Google Code-In 2017!

-
-
-

Participate! (13-17 years olds)

-

- If you want to create awesome games and other apps with Pocket Code to win fantastic prizes, find out all the details about participating on codein.withgoogle.com. The grand prize is an invitation to the Google headquarters in California together with a parent next summer, with tons of goodies and giveaways from Google and Catrobat, also for other finalists and participants. We are encouraging teenagers from all areas of the world, speaking any languages, both girls as well as boys, to take their first steps in coding and open source projects with us. Don't hesitate, coding can be as simple (and complex!) as cooking. -

-
- -
-

Support us!

-

- Parents, grandparents, siblings, teachers, and anyone else:
Help us spread the news! Tell your teenage kids, grandkids, pupils, or other teenagers about the event (and the prizes!). Participation can start any time until January 15, 2018. Link: http://catrob.at/gci -

-
- -
-

Become a Mentor (13 - 99+ years old)

-

- If you can help Pocket Code users to participate in the Google Code-in contest from November 28, 2017 to January 17, 2018, please apply to become an official mentor for our organization via catrob.at/gcimentor. All GCI coding tasks for participants will consist in projects they create using Pocket Code. As a mentor you will coach students and review their completed tasks. You can also suggest new tasks, and after the contest ends, we will select the five finalists and two grand prize winners of Catrobat together with you! You will receive a certificate and a T-shirt from Google, and there will be a tombola of Pocket Code or Catrobat T-shirts and hoodies as well as other goodies among our active mentors. While mentors usually are adults, the minimum age is 13.

-
- -
-

General information on Catrobat, Pocket Code, and Google Code-in

-

Install Pocket Code and its companion app Pocket Paint from Google Play – they are easy to use and very self-explanatory. If you need more help, work through catrob.at/help – there you can also find MOOCs in several languages – or go to our Forum. You can also check out the many tutorials on our YouTube Channel – the playlists are separated by languages, e.g., English, German, or Russian. All finished projects can be uploaded to our sharing site.
More information on Catrobat
- More information on Google Code-in

-
-

International Catrobat Association (Austria), 2017 - contact@catrobat.org

-
- - - - - - \ No newline at end of file diff --git a/GCIlandingpage2018.html b/GCIlandingpage2018.html deleted file mode 100644 index c5364b8..0000000 --- a/GCIlandingpage2018.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - Catrobat at Google Code-In - - - -
- -
-

Catrobat & Pocket Code at Google Code-In 2018!

-
-
-

Participate! (13-17 years olds)

-

If you are between 13 and 17 years old, interested in creating awesome games and apps with Pocket Code to get a chance at winning a trip to Google headquarters in California join the Google Code-in at codein.withgoogle.com. The contest will last from October 23rd until December 12th, 2018.

-

By completing a wide array of tasks during the contest you can show your skills with coding and your knowledge with open source software and have a chance at winning tons of goodies from Google and Catrobat, the grand prize being an invitation to the Google headquarters in California together with one of your parents next summer!

-

We are encouraging teenagers from all areas of the world, speaking any languages, both girls and boys, to take their first steps in coding and open source projects with us. We offer a variety of tasks, so even if you have no knowledge of programming at all, feel free to participate and help in other fields of open source software, such as design or documentation! Our mentors will be available to help you with your tasks and will try to answer to your questions as fast as they can.

-

Don't hesitate, coding can be as simple (and complex!) as cooking.

-

-
- -
-

Become a Mentor (13 - 99+ years old)

-

As an official mentor you will assist young talents from age 13 to 17 with their tasks during Google's Code-in contest from October 23rd until December 12th, 2018. It is required of you that you have some experience in using Pocket Code, an interest in open source software and be ready to commit time and energy to the project during the contest. Also before applying you should read through Google's guidelines for mentor's responsibilities.

-

Your responsibilities will be to mentor our participants remotely using speech, chat as well as screen mirror apps. You will need to assist them with their tasks, as well as review them, and you can also suggest new tasks as well.

-

After the contest ends we will decide, together with you, on five finalists and two grand prize winners among our participants! You will receive a certificate as well as a t-shirt from Google for your participation during the contest.

-

If you think you are a good fit for us, are over 13 years of age and want to help participants with Pocket Code in this year's Google Code-in contest from October 23rd until December 12th, 2018 feel free to apply via catrob.at/gcimentor.

-
- -
-

Support us!

-

- Parents, grandparents, siblings, teachers, and anyone else:
Help us spread the news! Tell your teenage kids, grandkids, pupils, or other teenagers about the event (and the prizes!). Participation can start any time until December 10th, 2018. Link: https://catrob.at/gci -

-
- - - -
-

General information on Catrobat, Pocket Code, and Google Code-in

-

Install Pocket Code and its companion app Pocket Paint from Google Play – they are easy to use and very self-explanatory. If you need more help, work through catrob.at/help – there you can also find MOOCs in several languages – or go to our Forum. You can also check out the many tutorials on our YouTube Channel – the playlists are separated by languages, e.g., English, German, or Russian. All finished projects can be uploaded to our sharing site.
More information on Catrobat
- More information on Google Code-in

-
-

International Catrobat Association (Austria), 2018 - codein@catrobat.org

-
- - - - - - diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..002979e --- /dev/null +++ b/Gemfile @@ -0,0 +1,5 @@ +source 'https://rubygems.org' + +gem "jekyll" +gem "just-the-docs" +gem 'liquid', '~> 4.0', '>= 4.0.4' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..a5958c4 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,91 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.2) + public_suffix (>= 2.0.2, < 6.0) + colorator (1.1.0) + concurrent-ruby (1.2.2) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.15.5) + forwardable-extended (2.6.0) + google-protobuf (3.22.2-arm64-darwin) + google-protobuf (3.22.2-x64-mingw-ucrt) + google-protobuf (3.22.2-x86_64-darwin) + google-protobuf (3.22.2-x86_64-linux) + http_parser.rb (0.8.0) + i18n (1.12.0) + concurrent-ruby (~> 1.0) + jekyll (4.3.2) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (>= 0.3.6, < 0.5) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-sass-converter (3.0.0) + sass-embedded (~> 1.54) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + just-the-docs (0.4.2) + jekyll (>= 3.8.5) + jekyll-seo-tag (>= 2.0) + rake (>= 12.3.1) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (5.0.1) + rake (13.0.6) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.5) + rouge (4.1.0) + safe_yaml (1.0.5) + sass-embedded (1.60.0-arm64-darwin) + google-protobuf (~> 3.21) + sass-embedded (1.60.0-x64-mingw-ucrt) + google-protobuf (~> 3.21) + sass-embedded (1.60.0-x86_64-darwin) + google-protobuf (~> 3.21) + sass-embedded (1.60.0-x86_64-linux-gnu) + google-protobuf (~> 3.21) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.4.2) + webrick (1.8.1) + +PLATFORMS + arm64-darwin-21 + x64-mingw-ucrt + x86_64-darwin-19 + x86_64-linux + +DEPENDENCIES + jekyll + just-the-docs + liquid (~> 4.0, >= 4.0.4) + +BUNDLED WITH + 2.3.9 diff --git a/HOTU_gamejam/contact.html b/HOTU_gamejam/contact.html deleted file mode 100644 index f844f7a..0000000 --- a/HOTU_gamejam/contact.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - Heroes of the Universe Game Jam - - - - - - -
-
- -

Contact

- -

contact@catrobat.org

- - -

International Catrobat Association
- c/o Institute of Software Technology
- Graz University of Technology
- Inffeldgasse 16B/II
- 8010 Graz
- Austria - European Union
-

-
- - Imprint, Privacy & Legal | - Contact | - © 2019 Catrobat -
- - - - diff --git a/HOTU_gamejam/css/style.css b/HOTU_gamejam/css/style.css deleted file mode 100644 index 783c5c2..0000000 --- a/HOTU_gamejam/css/style.css +++ /dev/null @@ -1,154 +0,0 @@ -* { - /*border: 1px solid rgba(0, 0, 0, 0.3);*/ -} - - -@import url('https://fonts.googleapis.com/css?family=PT+Sans|Source+Sans+Pro'); - -#banner img{ - margin-top: 70px; - width: 100%; - height: 100%; - left: 0px; - top: 0px; -} - -#content { - margin-top: 75px; -} - -@media screen and (max-width: 600px) { - .navigation a:not(:first-child) {display: none;} - .navigation a.icon { - float: right; - display: block; - } -} - -@media screen and (max-width: 600px) { - .navigation.responsive .icon { - position: absolute; - right: 0; - top: 0; - } - .navigation.responsive a { - float: none; - display: block; - text-align: center; - z-index: 1; - } -} - - -.stretch { - width:100%; -} - -a:link, a:visited { - text-decoration: none; - color: orange; -} - -.navigation { - width: 100%; - position: fixed; - top: 0; - text-align: center; - background-color: #0B3E99; - display: block; -} - -.navigation .icon { - display: none; -} - -.navigation a { - display: inline-block; - text-align: center; - font-size: 250%; - padding: 10px; - border-color: black; - color: white; -} - -.navigation img { - max-height:40px; -} - -.social { - max-width: 50px; -} - -.store { - max-width: 190px; -} -.navigation a:hover, a:active { - background-color: #e1b32a; - color: black; -} - -.text { - text-align: justify; - margin-left: 10%; - margin-right: 10%; - line-height: 150%; - color: white; -} - -body { - min-height: 100%; - margin: auto; - padding: 0; - background-image: linear-gradient(#0B3E99, #00004d); - background-color: #3A085D; - font-family: "Source Sans Pro", sans-serif; -} - -img { - max-width: 100%; - height: auto; -} -html { - min-height: 100%; -} - -.column { - float: left; - width: 45%; - padding: 2%; -} - -.row:after { - content: ""; - display: table; - clear: both; -} -@media screen and (max-width: 600px) { - .column { - width: 100%; - } -} - -.picture-center { - display: block; - margin-left: auto; - margin-right: auto; - max-width: 100%; -} - -.contact { - margin-top: 70px; - text-align: justify; - margin-left: auto; - margin-right: auto; - line-height: 150%; - width: 100em; - color: white; -} - -a.anchor { - display: block; - position: relative; - top: -70px; - visibility: hidden; -} diff --git a/HOTU_gamejam/img/Background-GGJ.jpg b/HOTU_gamejam/img/Background-GGJ.jpg deleted file mode 100644 index 86b95af..0000000 Binary files a/HOTU_gamejam/img/Background-GGJ.jpg and /dev/null differ diff --git a/HOTU_gamejam/img/GooglePlay.png b/HOTU_gamejam/img/GooglePlay.png deleted file mode 100644 index c176829..0000000 Binary files a/HOTU_gamejam/img/GooglePlay.png and /dev/null differ diff --git a/HOTU_gamejam/img/HuaweiAppGallery.png b/HOTU_gamejam/img/HuaweiAppGallery.png deleted file mode 100644 index 29c8f97..0000000 Binary files a/HOTU_gamejam/img/HuaweiAppGallery.png and /dev/null differ diff --git a/HOTU_gamejam/img/Huawei_AppGallery-300x125.png b/HOTU_gamejam/img/Huawei_AppGallery-300x125.png deleted file mode 100644 index 0b5404f..0000000 Binary files a/HOTU_gamejam/img/Huawei_AppGallery-300x125.png and /dev/null differ diff --git a/HOTU_gamejam/img/IOSstore.png b/HOTU_gamejam/img/IOSstore.png deleted file mode 100644 index db7de0b..0000000 Binary files a/HOTU_gamejam/img/IOSstore.png and /dev/null differ diff --git a/HOTU_gamejam/img/gamejam_banner.png b/HOTU_gamejam/img/gamejam_banner.png deleted file mode 100644 index 478aff2..0000000 Binary files a/HOTU_gamejam/img/gamejam_banner.png and /dev/null differ diff --git a/HOTU_gamejam/img/link.png b/HOTU_gamejam/img/link.png deleted file mode 100644 index 99773cf..0000000 Binary files a/HOTU_gamejam/img/link.png and /dev/null differ diff --git a/HOTU_gamejam/img/lynx.png b/HOTU_gamejam/img/lynx.png deleted file mode 100644 index 9ad3b22..0000000 Binary files a/HOTU_gamejam/img/lynx.png and /dev/null differ diff --git a/HOTU_gamejam/img/panda.png b/HOTU_gamejam/img/panda.png deleted file mode 100644 index 9bde013..0000000 Binary files a/HOTU_gamejam/img/panda.png and /dev/null differ diff --git a/HOTU_gamejam/img/pc-headline.png b/HOTU_gamejam/img/pc-headline.png deleted file mode 100644 index 93594e1..0000000 Binary files a/HOTU_gamejam/img/pc-headline.png and /dev/null differ diff --git a/HOTU_gamejam/img/penguin.png b/HOTU_gamejam/img/penguin.png deleted file mode 100644 index 6e49a59..0000000 Binary files a/HOTU_gamejam/img/penguin.png and /dev/null differ diff --git a/HOTU_gamejam/img/program.png b/HOTU_gamejam/img/program.png deleted file mode 100644 index 160c423..0000000 Binary files a/HOTU_gamejam/img/program.png and /dev/null differ diff --git a/HOTU_gamejam/img/social/discord.png b/HOTU_gamejam/img/social/discord.png deleted file mode 100644 index d75ddeb..0000000 Binary files a/HOTU_gamejam/img/social/discord.png and /dev/null differ diff --git a/HOTU_gamejam/img/social/facebook.png b/HOTU_gamejam/img/social/facebook.png deleted file mode 100644 index 0f1bdb5..0000000 Binary files a/HOTU_gamejam/img/social/facebook.png and /dev/null differ diff --git a/HOTU_gamejam/img/social/google.png b/HOTU_gamejam/img/social/google.png deleted file mode 100644 index 813f5c8..0000000 Binary files a/HOTU_gamejam/img/social/google.png and /dev/null differ diff --git a/HOTU_gamejam/img/social/twitter.png b/HOTU_gamejam/img/social/twitter.png deleted file mode 100644 index bfa3319..0000000 Binary files a/HOTU_gamejam/img/social/twitter.png and /dev/null differ diff --git a/HOTU_gamejam/img/upload.png b/HOTU_gamejam/img/upload.png deleted file mode 100644 index c2aa3d2..0000000 Binary files a/HOTU_gamejam/img/upload.png and /dev/null differ diff --git a/HOTU_gamejam/imprint.html b/HOTU_gamejam/imprint.html deleted file mode 100644 index 83e7979..0000000 --- a/HOTU_gamejam/imprint.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - Heroes of the Universe Game Jam - - - - - - - -
-
-

Imprint

-

This Website as well as the Heroes of the Universe Game Jam are operated by
- the International Catrobat Association,
- a non-profit organisation headquartered in Graz, Austria (European Union).

- Web: www.catrobat.org
- Contact: contact@catrobat.org

- International Catrobat Association
- c/o Institute of Software Technology
- Graz University of Technology
- Inffeldgasse 16B/II
- 8010 Graz, Austria - European Union

- -

Privacy

-

- The general Privacy Policy of Catrobat is available here. -

- -

Terms and conditions

-
    -
  1. The event is carried out by the International Catrobat Association, with headquarters in Graz, Austria (hereafter referred to as "Catrobat"). Applicable law: Austria.
  2. -
  3. Participation consists of submitting a program created with Pocket Code around the "Heroes of the Universe" theme as well as tagging it with the #hotu hashtag at the end of the description of the project.
  4. -
  5. Any personal information collected on any forms will only be used for carrying out and evaluating the game jam. Catrobat reserves the right to exclude participants with incorrect or missing data.
  6. -
  7. Legal recourse is excluded. There is no legal claim to participate.
  8. -
  9. Catrobat may at any time, without prior notice and in its sole discretion, exclude and/or remove any submission and/or terminate a user's account if it is deemed to contradict the spirit and intention of the game jam.
  10. -
  11. Participation is free of charge.
  12. -
-

Use of Pocket Code

-

- The Free Open Source Software "Pocket Code" is freely available on on Google Play, - the iPhone App Store, as well as on - Huawei's AppGallery.
- To use Pocket Code you must accept our Terms of Use and Service. - -

-
- - Imprint, Privacy & Legal | - Contact | - © 2019 Catrobat -
- - - - - diff --git a/HOTU_gamejam/index.html b/HOTU_gamejam/index.html deleted file mode 100644 index 2834ad1..0000000 --- a/HOTU_gamejam/index.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - Heroes of the Universe Game Jam - - - - - - - -
-
-

About

-

Heroes of the Universe Game Jam

-
-

Grab your smartphone and save the universe! With Pocket Code you - can create your very own smartphone application. We invite you and your friends to create a game, animation or any kind - of other app using Pocket Code! Together you can save the galaxy. All projects will be available on our website.

- -

Details

-

To submit your project simply upload it and put the hashtag #hotu into your project description or title. There will be no - competition, this game jam is simply for fun and for you to challenge yourself and try out new things. Feel encouraged to take part and share your - journey with others!

- -

Theme

-

It's all about your mission to save the universe! Create your own games and stories - about your personal heroes and save the universe. You can find many space-themed assets in - our media library, or you can make your own. If you want to use any assets from the internet - be sure to check whether they are free to use or not, check the FAQs for further help!

- - -
-
-
- -
- -
- -
- - -

Social Media

- -

Follow our social media channels to stay tuned.

-

- - -

-
-
-
- - -
-
-

How can I participate?

-

Head over to our - Discord server to connect with other people - to program together or just to share ideas!

- -

How do I learn coding?

-

If you don’t have any experience in coding, don’t be afraid, it’s easier than you think! - The “Help” button inside the Pocket Code app guides you to a tutorial overview where we have - provided some great examples for beginners. Furthermore, there is a big community behind Pocket - Code that provides a huge set of existing projects on the web from which you can draw inspiration. - You can find them by clicking the “Catrobat community” button inside the Pocket Code app.

- -

Submission

-

After you have finished your app, upload it to our Catrobat community page in order to submit it. You can easily achieve this by clicking on the top menu.

-

-

After you have logged in or registered yourself, the upload dialog is shown. - There you can change the name of your game and also add a description. Please include the hashtag #hotu at the end of the long description of your project, - or we will not be able to find your project! After you hit 'Upload' a dialog is shown, which will tell you - if your upload has succeded. Now you can view your uploaded project on our community site. Tap on 'Show project'.

-

-

Now you can see your project on our community site.

-

-

To share a link to your project, tap on "Link" on your project's detail page below the image.

-

If you want to see all submissions follow this link.

- -
-
- -

First steps and rules

-

First, let’s have a look at the media library in which we provided some awesome graphics for you. - You can use them to make your project more colorful and they will give you some good ideas for your app. - Of course you can draw your own images or use looks you find in other Catrobat projects. You also may use third-party graphics, but please respect copyrights and licenses. Same also for sounds and music.

-

After having a look at our media gallery you will need an idea. You will have to think about what kind of project (game, animation, etc.) you want to create, - and try to relate it to the theme of Heroes of the Universe. You might even already have some great ideas after having a look at the media assets. -

-

In order to make your app even more interesting you can implement some of the following features (they are optional, and not all will fit to every project): -
-
   ★ A welcome screen -
   ★ A short description -
   ★ A "You have won!" screen -
   ★ A game-over screen -
   ★ Sounds or music -
   ★ Sensors -
   ★ A second level -
   ★ Collisions -
   ★ A foreign language - -

- - -
-
- -
-

FAQ

-

Frequently Asked Questions

-
-

What is "Pocket Code"

-

Pocket Code is a free visual programming app for smartphones. It enables you to create your own games, - animations or stories with easy to use bricks, without any previous knowledge, directly on your device. - You want to know more about it? - Visit www.catrobat.org.

- -

How to learn coding?

-

To guide you a little bit we provide some special tutorials on our wiki. - There you can find some interesting examples, step by step tutorials and additional materials that will help you with your first project!

- -

Is it for free?

-

Participating at the Heroes of the Universe Game Gam is absolutely free!

-

Pocket Code also is available for free on Google Play, - the iPhone App Store, as well as on - Huawei's AppGallery, - and does not include any in-App purchases, ads, or other costs. Have fun with Pocket Code!

- -

Where can I find all submissions?

-

You can either search all submissions manually by going to our share platform - and searching for the hashtag #hotu or just directly follow this link! - -

Who is behind Pocket Code?

-

Pocket Code is developed by the non-profit International Catrobat Association. - More than 1000 people have already contributed to this Free Open Source Software project - and thus helped to make coding as easy as possible. Get more information about - Catrobat on www.catrobat.org.

- -

What media content can I use?

-

We don't want to limit your creativity in any way, - hence there are no requirements by us. However, please respect the copyrights - of others and don't use any media content without permission. - You can find a lot of great media assets available under Creative Commons - Licenses in other projects on our community site which you can all freely use, - or you can go to a public site that offers such content, e.g., - on search.creativecommons.org.

- -

Where can I find more information about the licenses of this event?

-

All projects that are submitted to the Heroes of the Universe Game Jam - are available under Free Open Source and Creative Commons licenses. - These licenses allow the usage and adaption of all content, as long - as they are correctly attributed and are published under the same licenses.

-

Find more detailed information on the page "Licenses of uploaded Catrobat projects".

- -

What do I have to consider for participating at the game jam?

-

Please just follow the instructions above. That's it!

-
- -
-

How can I submit my project?

-

To submit your project just upload it as usual and do not forget to include the hashtag #hotu so we are able to find your project!

- -

What's going to happen after I've submitted my project?

-

After the submission process you can find your project on our share platform, - where you can share it with your friends and family.

- -

Are there any prizes involved?

-

The greatest prize there is are the friends we make and the knowledge we gain along the way!

-

Through your participation, you have already gained knowledge and new skills that can - be worth an infinite amount of money in your future life. Know that Bill Gates, Mark Zuckerberg, - Jeff Bezos, and Elon Musk all started by creating small games while they were teenagers. - We do not offer rewards or prizes for the Heroes of the Universe Game Jam, as that would - defeat its purpose since we cannot give material prizes to everyone --- instead, the - satisfaction of having created something awesome by yourself, for your friends and - family, as well as for the world at large, is the greatest reward you can give yourself.

- -

How can I get in touch with you?

-

If you have any further questions, or just want to write to us, please use the Social Media or Contact links at the social media section of this page!

- - -

How can I support you?

-

To make this event as popular as possible, please share it with your friends, family, or social media contacts.

-

If you want to get even more actively involved, e.g., by helping to translate - our web pages, apps, or the poster in your language, please get in touch with us directly!

- -

Can I participate together with my friends? Or can I participate with my class?

-

Working together is one of the most important aspects of programming. We encourage you to work together and share ideas in whatever way you like. We are also - looking forward to seeing school classes participating in the Heroes of the Univers Game Jam!

- -

How can I promote this event in my community?

-

You are very welcome to share this website and reshare our social media postings!

- -
-
-
- - -
- - Imprint, Privacy & Legal | - Contact | - © 2020 Catrobat -
- - - - diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7d510d0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 just-the-docs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Pocket-Code-1024x1024.png b/Pocket-Code-1024x1024.png deleted file mode 100644 index cbec280..0000000 Binary files a/Pocket-Code-1024x1024.png and /dev/null differ diff --git a/Pocket-Code-120x120.png b/Pocket-Code-120x120.png deleted file mode 100644 index 919a263..0000000 Binary files a/Pocket-Code-120x120.png and /dev/null differ diff --git a/Pocket_Code_icon_text.png b/Pocket_Code_icon_text.png deleted file mode 100644 index 2496331..0000000 Binary files a/Pocket_Code_icon_text.png and /dev/null differ diff --git a/README.md b/README.md index 66a2daf..36fd2b8 100644 --- a/README.md +++ b/README.md @@ -1 +1,16 @@ -Backend for http://developer.catrobat.org/ +# Backend for + +## Building and previewing your site locally + +Assuming [Jekyll] and [Bundler] are installed on your computer: + +1. Change your working directory to the root directory of your site. + +2. Run `bundle install`. + +3. Run `bundle exec jekyll serve` to build your site and preview it at `localhost:4000`. + + The built site is stored in the directory `_site`. + +[Jekyll]: https://jekyllrb.com +[Bundler]: https://bundler.io diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..64942d2 --- /dev/null +++ b/_config.yml @@ -0,0 +1,99 @@ +title: Catrobat +description: A visual programming language and set of creativity tools +url: https://developer.catrobat.org/ +repository: Catrobat/catrobat.github.com +theme: just-the-docs + +logo: "/assets/images/catrobat_logo.svg" +favicon_ico: "/assets/images/favicon.ico" + +permalink: pretty + +aux_links: + "Main Website": + - "https://catrobat.org/" + "Get our Apps": + - "https://catrobat.org/our-apps/" + +exclude: + - .sass-cache/ + - .jekyll-cache/ + - gemfiles/ + - Gemfile + - Gemfile.lock + - node_modules/ + - vendor/bundle/ + - vendor/cache/ + - vendor/gems/ + - vendor/ruby/ + - bin/ + - lib/ + - "*.gemspec" + - "*.gem" + - LICENSE.txt + - package.json + - package-lock.json + - Rakefile + - README.md + - fixtures/ + +search_enabled: true +enable_copy_code_button: true +heading_anchors: true +aux_links_new_tab: true + +# Navigation external links +nav_external_links: + - title: GitHub + url: https://github.com/Catrobat + - title: Project statistics + url: https://www.openhub.net/p/catrobat + +# Footer +back_to_top: true +back_to_top_text: "Back to top" + +last_edit_timestamp: false # leave disabled, we have our own solution +last_edit_time_format: "%D" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html + +gh_edit_link: false # leave disabled, we have our own solution +gh_edit_link_text: "Edit this page on GitHub" +gh_edit_repository: "https://github.com/Catrobat/catrobat.github.com" # the github URL for your repo +gh_edit_branch: "master" # the branch that your docs is served from +gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately + +# Color scheme currently only supports "dark", "light"/nil (default), or a custom scheme that you define +color_scheme: dark + +callouts_level: quiet # or loud +callouts: + highlight: + color: yellow + important: + title: Important + color: blue + new: + title: New + color: green + note: + title: Note + color: purple + warning: + title: Warning + color: red + +plugins: + - jekyll-seo-tag + +kramdown: + syntax_highlighter_opts: + block: + line_numbers: false + +compress_html: + clippings: all + comments: all + endings: all + startings: [] + blanklines: false + profile: false diff --git a/_data/contributors.json b/_data/contributors.json new file mode 100644 index 0000000..51dd73a --- /dev/null +++ b/_data/contributors.json @@ -0,0 +1,3127 @@ +{ + "project_head": { + "firstname": "Wolfgang", + "lastname": "Slany", + "github": "wslany" + }, + "project_managers": [ + { + "firstname": "Christian", + "lastname": "Schindler", + "github": "amix73" + }, + { + "firstname": "Matthias", + "lastname": "Müller" + }, + { + "firstname": "Michael", + "lastname": "Herold", + "github": "" + }, + { + "firstname": "Vesna", + "lastname": "Krnjic", + "github": "VesnaK" + }, + { + "firstname": "Stefan", + "lastname": "Kutschera", + "github": "" + }, + { + "firstname": "Patrick", + "lastname": "Ratschiller", + "github": "ratschillerp" + }, + { + "firstname": "Annemarie", + "lastname": "Harzl", + "github": "AnnemarieH" + } + ], + "product_owners": [ + { + "firstname": "Thorsten", + "lastname": "Bandel", + "github": "ThorstenBandel" + }, + { + "firstname": "Sarina", + "lastname": "Gursch", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Herold", + "github": "" + }, + { + "firstname": "Vesna", + "lastname": "Krnjic", + "github": "VesnaK" + }, + { + "firstname": "Stefan", + "lastname": "Kutschera", + "github": "" + }, + { + "firstname": "Daniel", + "lastname": "Metzner", + "github": "dmetzner" + }, + { + "firstname": "Patrick", + "lastname": "Ratschiller", + "github": "ratschillerp" + }, + { + "firstname": "Wolfgang", + "lastname": "Slany", + "github": "wslany" + }, + { + "firstname": "Bernadette", + "lastname": "Spieler", + "github": "" + }, + { + "firstname": "Annemarie", + "lastname": "Harzl", + "github": "AnnemarieH" + }, + { + "firstname": "Christian", + "lastname": "Schindler", + "github": "amix73" + }, + { + "firstname": "Matthias", + "lastname": "Müller" + } + ], + "coordinators": [ + { + "firstname": "Thorsten", + "lastname": "Bandel", + "github": "ThorstenBandel" + }, + { + "firstname": "Emanuel", + "lastname": "Moser", + "github": "" + }, + { + "firstname": "Patrick", + "lastname": "Ratschiller", + "github": "ratschillerp" + }, + { + "firstname": "Stefan", + "lastname": "Kutschera", + "github": "" + }, + { + "firstname": "Csongor", + "lastname": "Hegedüs", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Reichel", + "github": "reichli" + }, + { + "firstname": "Stephan", + "lastname": "Schauberger", + "github": "" + }, + { + "firstname": "Daniel", + "lastname": "Metzner", + "github": "dmetzner" + }, + { + "firstname": "Maria", + "lastname": "Seiser", + "github": "mseiser" + }, + { + "firstname": "Julia", + "lastname": "Herold", + "github": "juliajulie95" + }, + { + "firstname": "Alexander", + "lastname": "Hiebl", + "github": "Hiebl" + } + ], + "designers": [ + { + "firstname": "Anja", + "lastname": "Petri", + "github": "" + }, + { + "firstname": "Mario", + "lastname": "Kölli", + "github": "" + }, + { + "firstname": "Martina", + "lastname": "Edelhofer", + "github": "" + }, + { + "firstname": "Maria", + "lastname": "Schrack", + "github": "" + }, + { + "firstname": "Melanie", + "lastname": "Kleindienst", + "github": "" + }, + { + "firstname": "Lisa", + "lastname": "Kehrer", + "github": "" + }, + { + "firstname": "Davor", + "lastname": "Kirbis", + "github": "" + }, + { + "firstname": "Darjan", + "lastname": "Salaj", + "github": "" + }, + { + "firstname": "Amra", + "lastname": "Dzombic", + "github": "" + }, + { + "firstname": "Katharina", + "lastname": "Stadlmayr", + "github": "" + }, + { + "firstname": "Sebastian", + "lastname": "Gabl", + "github": "" + }, + { + "firstname": "Johanna", + "lastname": "Stefanzl", + "github": "" + } + ], + "senior_developers": [ + { + "firstname": "Sebastian", + "lastname": "Gollob", + "github": "sebastiangollob" + }, + { + "firstname": "Michael", + "lastname": "Tiefnig", + "github": "" + }, + { + "firstname": "Markus", + "lastname": "Gombocz", + "github": "" + }, + { + "firstname": "Patrick", + "lastname": "Ratschiller", + "github": "ratschillerp" + }, + { + "firstname": "Emanuel", + "lastname": "Moser", + "github": "" + }, + { + "firstname": "Daniel", + "lastname": "Metzner", + "github": "dmetzner" + }, + { + "firstname": "Jakob", + "lastname": "Tropper", + "github": "JayTropper" + }, + { + "firstname": "Thomas", + "lastname": "Reichel", + "github": "reichli" + }, + { + "firstname": "Robert", + "lastname": "Leiner", + "github": "Rawbat" + }, + { + "firstname": "David", + "lastname": "Andrawes", + "github": "dandrawes" + }, + { + "firstname": "Dominik", + "lastname": "Scheiber", + "github": "DinosaurierRex" + }, + { + "firstname": "Maria", + "lastname": "Seiser", + "github": "mseiser" + }, + { + "firstname": "Oskar", + "lastname": "Walcher", + "github": "Walcho1125" + }, + { + "firstname": "Benjamin", + "lastname": "Gaal", + "github": "bengaal" + } + ], + "translators": [ + { + "language": "Turkish", + "people": [ + { + "firstname": "Sercan", + "lastname": "Akpolat" + }, + { + "firstname": "Hulya", + "lastname": "Kara" + } + ] + }, + { + "language": "French", + "people": [ + { + "firstname": "Sercan", + "lastname": "Akpolat" + }, + { + "firstname": "Jean", + "lastname": "Charpentier" + }, + { + "firstname": "Pascal", + "lastname": "Sengler" + } + ] + }, + { + "language": "Malay", + "people": [ + { + "firstname": "Ainul Husna", + "lastname": "Abdul Muin" + }, + { + "firstname": "Jia Lin", + "lastname": "Chong" + }, + { + "firstname": "Denise", + "lastname": "Hoo" + }, + { + "firstname": "Fatin", + "lastname": "Ghazi" + }, + { + "firstname": "Deena", + "lastname": "Mugien" + }, + { + "firstname": "Walter", + "lastname": "Tang" + } + ] + }, + { + "language": "Chinese (Simplified Han)", + "people": [ + { + "firstname": "Jia Lin", + "lastname": "Chong" + } + ] + }, + { + "language": "Chinese (Traditional Han)", + "people": [ + { + "firstname": "Denise", + "lastname": "Hoo" + }, + { + "firstname": "Kuang Hui", + "lastname": "Tseng" + } + ] + }, + { + "language": "Romanian", + "people": [ + { + "firstname": "Alex", + "lastname": "Nicoara" + }, + { + "firstname": "Alexei", + "lastname": "Nicoara" + } + ] + }, + { + "language": "Russian", + "people": [ + { + "firstname": "Alex", + "lastname": "Nicoara" + }, + { + "firstname": "Alexei", + "lastname": "Nicoara" + }, + { + "firstname": "Tatiyana", + "lastname": "Domanova" + } + ] + }, + { + "language": "Japanese", + "people": [ + { + "firstname": "Kyoko", + "lastname": "Slany" + } + ] + }, + { + "language": "Korean", + "people": [ + { + "firstname": "Jintae", + "lastname": "Lee" + }, + { + "firstname": "Shinyoung", + "lastname": "Kim" + }, + { + "firstname": "Geuk Joong", + "lastname": "Bang" + } + ] + }, + { + "language": "Arabic", + "people": [ + { + "firstname": "Farhan", + "lastname": "Obisat" + }, + { + "firstname": "Aiman", + "lastname": "Awwad" + } + ] + }, + { + "language": "Italian", + "people": [ + { + "firstname": "Ivan", + "lastname": "Venuti" + } + ] + }, + { + "language": "British English", + "people": [ + { + "firstname": "Gary", + "lastname": "Green" + } + ] + }, + { + "language": "Australian English", + "people": [ + { + "firstname": "Benjamin", + "lastname": "Grant" + } + ] + }, + { + "language": "Dutch", + "people": [ + { + "firstname": "Wijnand", + "lastname": "Baretta" + }, + { + "firstname": "Sjoerd Dirk", + "lastname": "Meijer" + }, + { + "firstname": "Sander", + "lastname": "Latour" + } + ] + }, + { + "language": "Spanish", + "people": [ + { + "firstname": "Xenia", + "lastname": "Beltran" + }, + { + "firstname": "Yolanda", + "lastname": "Ursa" + }, + { + "firstname": "Jordi", + "lastname": "LLi-Beltrán" + } + ] + }, + { + "language": "Hungarian", + "people": [ + { + "firstname": "Márta", + "lastname": "Turcsányi-Szabó" + }, + { + "firstname": "Hajnalka", + "lastname": "Torma" + }, + { + "firstname": "Andrej", + "lastname": "Müller" + } + ] + }, + { + "language": "Polish", + "people": [ + { + "firstname": "Witold", + "lastname": "Kranas" + }, + { + "firstname": "B", + "lastname": "Maciek" + }, + { + "firstname": "K", + "lastname": "Lalinea" + }, + { + "firstname": "Piotr", + "lastname": "Schmidtke" + } + ] + }, + { + "language": "Portuguese", + "people": [ + { + "firstname": "João Filipe", + "lastname": "Matos" + } + ] + }, + { + "language": "Slovenian", + "people": [ + { + "firstname": "Andrej", + "lastname": "Müller" + } + ] + }, + { + "language": "Thai", + "people": [ + { + "firstname": "Voraya", + "lastname": "Satitpatanaphan" + }, + { + "firstname": "Pabhasiri", + "lastname": "Mahatharadol" + }, + { + "firstname": "Arnan Roger", + "lastname": "Sipitakiat" + } + ] + }, + { + "language": "Gujarati", + "people": [ + { + "firstname": "Kalpesh", + "lastname": "Surati" + } + ] + }, + { + "language": "Persian", + "people": [ + { + "firstname": "Sareh", + "lastname": "Choupani" + } + ] + }, + { + "language": "Swedish", + "people": [ + { + "firstname": "Anton", + "lastname": "Stjernst" + } + ] + }, + { + "language": "Croatian", + "people": [ + { + "firstname": "Mirhet", + "lastname": "Saracevic" + }, + { + "firstname": "Jasmin", + "lastname": "Salihovic" + } + ] + }, + { + "language": "Serbian", + "people": [ + { + "firstname": "Mirhet", + "lastname": "Saracevic" + }, + { + "firstname": "Jasmin", + "lastname": "Salihovic" + } + ] + }, + { + "language": "Vietnamese", + "people": [ + { + "firstname": "Phuong Thao", + "lastname": "Nguyen" + } + ] + }, + { + "language": "Urdu", + "people": [ + { + "firstname": "Jamil", + "lastname": "Khan" + } + ] + } + ], + "createAtSchoolNOLBMembers": [ + { + "university": { + "name": "TU Graz", + "country": "Austria" + }, + "people": [ + { + "firstname": "Wolfgang", + "lastname": "Slany", + "github": "wslany" + }, + { + "firstname": "Bernadette", + "lastname": "Spieler" + }, + { + "firstname": "Anja", + "lastname": "Petri" + }, + { + "firstname": "Christian", + "lastname": "Schindler", + "github": "amix73" + }, + { + "firstname": "Matthias", + "lastname": "Müller" + }, + { + "firstname": "Elena", + "lastname": "Mashkina" + }, + { + "firstname": "Johanna", + "lastname": "Stefanzl" + }, + { + "firstname": "Peter", + "lastname": "Kapfer" + }, + { + "firstname": "Stefan", + "lastname": "Jaindl", + "github": "sjaindl" + }, + { + "firstname": "Manuel", + "lastname": "Haid", + "github": "Manu91" + }, + { + "firstname": "Florian", + "lastname": "Weißensteiner", + "github": "FlorianWeissensteiner" + }, + { + "firstname": "Eric", + "lastname": "Gergeley" + }, + { + "firstname": "Andrej", + "lastname": "Knaus" + }, + { + "firstname": "Sebastian", + "lastname": "Gabl" + }, + { + "firstname": "Thomas", + "lastname": "Mauerhofer" + } + ] + }, + { + "university": { + "name": "Inmark Spain", + "country": "Spain" + }, + "people": [ + { + "firstname": "María Eugenia", + "lastname": "Beltrán" + }, + { + "firstname": "Yolanda", + "lastname": "Ursa" + }, + { + "firstname": "Sabina", + "lastname": "Guaylupo" + }, + { + "firstname": "Xianshu", + "lastname": "Zeng" + } + ] + }, + { + "university": { + "name": "UPM Spain", + "country": "Spain" + }, + "people": [ + { + "firstname": "Eugenio", + "lastname": "Gaeta" + }, + { + "firstname": "Gloria Cea", + "lastname": "Sánchez" + }, + { + "firstname": "Emir A.", + "lastname": "Bosques Rodriguez" + } + ] + }, + { + "university": { + "name": "NTU", + "country": "Singapore" + }, + "people": [ + { + "firstname": "Andrew", + "lastname": "Burton" + }, + { + "firstname": "David", + "lastname": "Bown" + }, + { + "firstname": "Helen", + "lastname": "Boulton" + }, + { + "firstname": "Nicholas", + "lastname": "Shopland" + } + ] + }, + { + "university": { + "name": "ZED Spain", + "country": "Spain" + }, + "people": [ + { + "firstname": "Teofilo", + "lastname": "Redondo" + }, + { + "firstname": "Paula", + "lastname": "Collazos" + }, + { + "firstname": "Fernando", + "lastname": "Pérez" + } + ] + }, + { + "university": { + "name": "Hochschule der Medien Stuttgart", + "country": "Germany" + }, + "people": [ + { + "firstname": "Patrick", + "lastname": "Münster" + }, + { + "firstname": "Christophe", + "lastname": "Strobbe" + }, + { + "firstname": "Andreas", + "lastname": "Stiegler" + } + ] + }, + { + "university": { + "name": "Game City", + "country": "" + }, + "people": [ + { + "firstname": "Jonathan", + "lastname": "Smith" + }, + { + "firstname": "Dom", + "lastname": "Martinovs" + }, + { + "firstname": "Rachel", + "lastname": "Barret" + } + ] + } + ], + "contributors": [ + { + "firstname": "Annemarie", + "lastname": "Harzl", + "github": "AnnemarieH" + }, + { + "firstname": "Alexander", + "lastname": "Kalchauer", + "github": "Woodruf1986" + }, + { + "firstname": "Othmar", + "lastname": "Ruprecht", + "github": "oruprecht" + }, + { + "firstname": "Peter", + "lastname": "Treitler", + "github": "ptreitler" + }, + { + "firstname": "Thomas", + "lastname": "Holzmann", + "github": "" + }, + { + "firstname": "Tom", + "lastname": "Spiss", + "github": "" + }, + { + "firstname": "Stefan", + "lastname": "Hohenwarter", + "github": "" + }, + { + "firstname": "Nikolaus", + "lastname": "Koller", + "github": "" + }, + { + "firstname": "Tobias", + "lastname": "Gritschacher", + "github": "" + }, + { + "firstname": "Oliver", + "lastname": "Prentner", + "github": "" + }, + { + "firstname": "Sercan", + "lastname": "Akpolat", + "github": "sercanakpolat" + }, + { + "firstname": "Alexander", + "lastname": "Gütler", + "github": "" + }, + { + "firstname": "Peter", + "lastname": "Schmidl", + "github": "" + }, + { + "firstname": "Maximilian", + "lastname": "Fellner", + "github": "mfellner" + }, + { + "firstname": "Ferdinand", + "lastname": "Knapitsch", + "github": "" + }, + { + "firstname": "Daniel", + "lastname": "Markart", + "github": "markini" + }, + { + "firstname": "David", + "lastname": "Reisenberger", + "github": "threesn" + }, + { + "firstname": "Daniel", + "lastname": "Burtscher", + "github": "knut0025" + }, + { + "firstname": "Jörg", + "lastname": "Hofer", + "github": "hoferj" + }, + { + "firstname": "Roman", + "lastname": "Mauhart", + "github": "roms981" + }, + { + "firstname": "Stefan", + "lastname": "Mayer", + "github": "stefanmayer13" + }, + { + "firstname": "Ainul Husna", + "lastname": "Abdul Muin", + "github": "" + }, + { + "firstname": "Jia Lin", + "lastname": "Chong", + "github": "" + }, + { + "firstname": "Denise", + "lastname": "Hoo", + "github": "denisehoo" + }, + { + "firstname": "Manuel", + "lastname": "Zoderer", + "github": "mane87" + }, + { + "firstname": "Martin", + "lastname": "Oswald", + "github": "" + }, + { + "firstname": "Dietmar", + "lastname": "Maurer", + "github": "" + }, + { + "firstname": "Christian", + "lastname": "Lesjak", + "github": "" + }, + { + "firstname": "Christoph", + "lastname": "Woergoetter", + "github": "" + }, + { + "firstname": "Safdar", + "lastname": "Zaman", + "github": "" + }, + { + "firstname": "Johannes", + "lastname": "Iber", + "github": "jib218" + }, + { + "firstname": "Hans Peter", + "lastname": "Gugl", + "github": "LorrenzoVonMatterhorn" + }, + { + "firstname": "Florian", + "lastname": "Hubner", + "github": "" + }, + { + "firstname": "Christoph", + "lastname": "Kahr", + "github": "" + }, + { + "firstname": "David", + "lastname": "Kikelj", + "github": "" + }, + { + "firstname": "Jakob", + "lastname": "Strauss", + "github": "oktolon" + }, + { + "firstname": "Pulkit", + "lastname": "Chouhan", + "github": "" + }, + { + "firstname": "Smiai", + "lastname": "Oussama", + "github": "oussama-smiai" + }, + { + "firstname": "Boris", + "lastname": "Kanjer", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Rosmarin", + "github": "trosmarin" + }, + { + "firstname": "Stephan", + "lastname": "Fellhofer", + "github": "felly" + }, + { + "firstname": "Alex", + "lastname": "Nicoara", + "github": "" + }, + { + "firstname": "Bernhard", + "lastname": "Trapp", + "github": "trappatoni" + }, + { + "firstname": "Hans-Jürgen", + "lastname": "Schröttner", + "github": "" + }, + { + "firstname": "Raphael", + "lastname": "Sommer", + "github": "raphaels" + }, + { + "firstname": "Gerald", + "lastname": "Wagner", + "github": "wagnergerald" + }, + { + "firstname": "Fatin", + "lastname": "Ghazi", + "github": "" + }, + { + "firstname": "Deena", + "lastname": "Mugien", + "github": "" + }, + { + "firstname": "Walter", + "lastname": "Tang", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Loidolt", + "github": "" + }, + { + "firstname": "Christian", + "lastname": "Hartinger", + "github": "" + }, + { + "firstname": "Angelika", + "lastname": "More", + "github": "" + }, + { + "firstname": "Peter", + "lastname": "Tielsch", + "github": "ptielsch" + }, + { + "firstname": "Gerald", + "lastname": "Musser", + "github": "" + }, + { + "firstname": "Roland", + "lastname": "Dutzler", + "github": "" + }, + { + "firstname": "Philipp", + "lastname": "Taferner", + "github": "" + }, + { + "firstname": "Otto", + "lastname": "Touzil", + "github": "" + }, + { + "firstname": "Max", + "lastname": "Löffler", + "github": "" + }, + { + "firstname": "Florian", + "lastname": "Sumann", + "github": "" + }, + { + "firstname": "Andreas", + "lastname": "Maureder", + "github": "" + }, + { + "firstname": "Manfred", + "lastname": "Knapp", + "github": "" + }, + { + "firstname": "Tobias", + "lastname": "Stumpfl", + "github": "" + }, + { + "firstname": "Markus", + "lastname": "Hobl", + "github": "mhobl" + }, + { + "firstname": "Andrea", + "lastname": "Höfler", + "github": "" + }, + { + "firstname": "Valentin", + "lastname": "Rock", + "github": "" + }, + { + "firstname": "Herbert Christian", + "lastname": "Lierzer", + "github": "" + }, + { + "firstname": "Mario", + "lastname": "Kolli", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Kaufmann", + "github": "kaufi" + }, + { + "firstname": "Michael", + "lastname": "Pletz", + "github": "" + }, + { + "firstname": "Jeton", + "lastname": "Arifi", + "github": "" + }, + { + "firstname": "Matthias", + "lastname": "Traub", + "github": "" + }, + { + "firstname": "Patrick", + "lastname": "Koch", + "github": "patkoch" + }, + { + "firstname": "Robert", + "lastname": "Painsi", + "github": "robertpainsi" + }, + { + "firstname": "Daniel", + "lastname": "Fritzsch", + "github": "" + }, + { + "firstname": "Dominik", + "lastname": "Schleicher", + "github": "" + }, + { + "firstname": "Ilija", + "lastname": "Simic", + "github": "isimic" + }, + { + "firstname": "Majda", + "lastname": "Osmic", + "github": "majda-osmic" + }, + { + "firstname": "Marco", + "lastname": "Steger", + "github": "" + }, + { + "firstname": "Maximilian", + "lastname": "Sachs", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Münzer", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Rieder", + "github": "" + }, + { + "firstname": "Peter", + "lastname": "Kapfer", + "github": "" + }, + { + "firstname": "Hannes", + "lastname": "Hasenauer", + "github": "" + }, + { + "firstname": "Gerhild", + "lastname": "Grinschgl", + "github": "" + }, + { + "firstname": "Andreas", + "lastname": "Frühwirt", + "github": "" + }, + { + "firstname": "Christof", + "lastname": "Stromberger", + "github": "" + }, + { + "firstname": "Markus", + "lastname": "Schmid", + "github": "" + }, + { + "firstname": "Mattias", + "lastname": "Rauter", + "github": "" + }, + { + "firstname": "Stefan", + "lastname": "Simon", + "github": "SimonStefan" + }, + { + "firstname": "Stefan", + "lastname": "Oberacher", + "github": "" + }, + { + "firstname": "Vesna", + "lastname": "Krnjic", + "github": "VesnaK" + }, + { + "firstname": "Simge", + "lastname": "Sezgin", + "github": "" + }, + { + "firstname": "Artur", + "lastname": "Termenji", + "github": "atermenji" + }, + { + "firstname": "Samitha Priyanath", + "lastname": "Jayathilaka", + "github": "samjay" + }, + { + "firstname": "Florian", + "lastname": "Schitter", + "github": "" + }, + { + "firstname": "Markus", + "lastname": "Höfer", + "github": "" + }, + { + "firstname": "Petra", + "lastname": "Pupovac", + "github": "" + }, + { + "firstname": "Ingrid", + "lastname": "Reip", + "github": "" + }, + { + "firstname": "Patman", + "lastname": "Ghazi", + "github": "" + }, + { + "firstname": "Suemeyra", + "lastname": "Mutlu", + "github": "" + }, + { + "firstname": "Bernhard", + "lastname": "Ruttinger", + "github": "" + }, + { + "firstname": "Julia", + "lastname": "Schönhart", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Huber", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Rabko", + "github": "" + }, + { + "firstname": "Daniela", + "lastname": "Zierler", + "github": "" + }, + { + "firstname": "Lukas", + "lastname": "Krisper", + "github": "" + }, + { + "firstname": "Eberhard", + "lastname": "Ferner", + "github": "" + }, + { + "firstname": "Gerhard", + "lastname": "Neuhold", + "github": "" + }, + { + "firstname": "Rudolf Andreas", + "lastname": "Stumptner", + "github": "" + }, + { + "firstname": "Severin", + "lastname": "Holzer-Graf", + "github": "" + }, + { + "firstname": "Philipp", + "lastname": "Koncar", + "github": "" + }, + { + "firstname": "Sandra", + "lastname": "Fuchs", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Kugi", + "github": "" + }, + { + "firstname": "Arno", + "lastname": "Stauder", + "github": "" + }, + { + "firstname": "Tomislav", + "lastname": "Ausperger", + "github": "" + }, + { + "firstname": "Heimo Ernst", + "lastname": "Bischofter", + "github": "" + }, + { + "firstname": "Tobias", + "lastname": "Oblak", + "github": "" + }, + { + "firstname": "Gerald", + "lastname": "Gsellmann", + "github": "" + }, + { + "firstname": "Norbert", + "lastname": "Spot", + "github": "" + }, + { + "firstname": "Sachi Alana", + "lastname": "Williamson", + "github": "" + }, + { + "firstname": "Saif Aldeen", + "lastname": "Alsaifi", + "github": "" + }, + { + "firstname": "Angelika", + "lastname": "Droisner", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Gruber", + "github": "" + }, + { + "firstname": "Hakan", + "lastname": "Özkan", + "github": "" + }, + { + "firstname": "Fabian", + "lastname": "Tschiatschek", + "github": "" + }, + { + "firstname": "Lukas", + "lastname": "Resch", + "github": "" + }, + { + "firstname": "Andreas", + "lastname": "Abraham", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Peitler", + "github": "" + }, + { + "firstname": "Bianca", + "lastname": "Teufl", + "github": "" + }, + { + "firstname": "Daniel Franz", + "lastname": "Neuhold", + "github": "" + }, + { + "firstname": "Domenik", + "lastname": "Melcher", + "github": "" + }, + { + "firstname": "Elisabeth", + "lastname": "Heschl", + "github": "ElliHeschl" + }, + { + "firstname": "Matthias Sebastian", + "lastname": "Schlesinger", + "github": "" + }, + { + "firstname": "Rene", + "lastname": "Obendrauf", + "github": "" + }, + { + "firstname": "Rudolf Josef", + "lastname": "Wagner", + "github": "" + }, + { + "firstname": "Armin", + "lastname": "Hutzler", + "github": "" + }, + { + "firstname": "Valentin", + "lastname": "Kassarnig", + "github": "" + }, + { + "firstname": "Johannes", + "lastname": "Singer", + "github": "" + }, + { + "firstname": "Stefan", + "lastname": "Pointner", + "github": "" + }, + { + "firstname": "Andreas", + "lastname": "Voraberger", + "github": "" + }, + { + "firstname": "Alexander", + "lastname": "Oberegger", + "github": "" + }, + { + "firstname": "Florian", + "lastname": "Winkelbauer", + "github": "fwinkelbauer" + }, + { + "firstname": "Karl", + "lastname": "Koch", + "github": "" + }, + { + "firstname": "Lukas", + "lastname": "Prokop", + "github": "" + }, + { + "firstname": "Philipp", + "lastname": "Weissensteiner", + "github": "" + }, + { + "firstname": "David", + "lastname": "Kolb", + "github": "" + }, + { + "firstname": "Martin", + "lastname": "Burtscher", + "github": "martinbu" + }, + { + "firstname": "Dominik", + "lastname": "Mößlang", + "github": "" + }, + { + "firstname": "Philipp", + "lastname": "Kremers", + "github": "" + }, + { + "firstname": "Dominik", + "lastname": "Widnig", + "github": "" + }, + { + "firstname": "Alexander", + "lastname": "Oberbucher", + "github": "" + }, + { + "firstname": "Christoph", + "lastname": "Pilz", + "github": "" + }, + { + "firstname": "David", + "lastname": "Strohmaier", + "github": "" + }, + { + "firstname": "Ewald", + "lastname": "Moitzi", + "github": "" + }, + { + "firstname": "Gottfried", + "lastname": "Selenko", + "github": "" + }, + { + "firstname": "Markus", + "lastname": "Hobisch", + "github": "MarkusHobisch" + }, + { + "firstname": "Matthias", + "lastname": "Eichhaber", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Koweindl", + "github": "" + }, + { + "firstname": "Samir", + "lastname": "Ramadani", + "github": "" + }, + { + "firstname": "Stefan", + "lastname": "Padureanu", + "github": "" + }, + { + "firstname": "Hedwig", + "lastname": "Höller", + "github": "" + }, + { + "firstname": "Eva-Maria", + "lastname": "Trummer", + "github": "" + }, + { + "firstname": "Stefan", + "lastname": "Galler", + "github": "" + }, + { + "firstname": "Simone", + "lastname": "Lemmerer", + "github": "" + }, + { + "firstname": "Christopher", + "lastname": "Jelinek", + "github": "" + }, + { + "firstname": "Abdelbasset", + "lastname": "Amara", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Prem", + "github": "" + }, + { + "firstname": "Paul", + "lastname": "Melbinger", + "github": "" + }, + { + "firstname": "Maria", + "lastname": "Aumann", + "github": "" + }, + { + "firstname": "Rayna", + "lastname": "Nikolova", + "github": "" + }, + { + "firstname": "Hans Dieter", + "lastname": "Knaus", + "github": "" + }, + { + "firstname": "Franz", + "lastname": "Schreiner", + "github": "obusher" + }, + { + "firstname": "Peter", + "lastname": "Pranter", + "github": "" + }, + { + "firstname": "Jakob", + "lastname": "Unterkofler", + "github": "junter7" + }, + { + "firstname": "Stefan", + "lastname": "Jaindl", + "github": "sjaindl" + }, + { + "firstname": "Bernhard", + "lastname": "Spitzer", + "github": "bernhardsp" + }, + { + "firstname": "Dominik", + "lastname": "Ziegler", + "github": "" + }, + { + "firstname": "Daniel", + "lastname": "Pail", + "github": "" + }, + { + "firstname": "Christine", + "lastname": "Pichler", + "github": "" + }, + { + "firstname": "Manuel", + "lastname": "Wallner", + "github": "ManuelWallner" + }, + { + "firstname": "Thomas", + "lastname": "Fuchs", + "github": "tfuchs" + }, + { + "firstname": "Marco", + "lastname": "Meiser", + "github": "m4ceo" + }, + { + "firstname": "Andreas", + "lastname": "Müller", + "github": "andrmueller" + }, + { + "firstname": "Viktoria", + "lastname": "Schlaipfer", + "github": "" + }, + { + "firstname": "Armend", + "lastname": "Zeqiraj", + "github": "" + }, + { + "firstname": "Stefan", + "lastname": "Neureiter", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Kriechbaumer", + "github": "" + }, + { + "firstname": "Andreas", + "lastname": "Hofbauer", + "github": "" + }, + { + "firstname": "Philipp", + "lastname": "Neidhöfer", + "github": "" + }, + { + "firstname": "Richard", + "lastname": "Schumi", + "github": "" + }, + { + "firstname": "Max", + "lastname": "Reinthaler", + "github": "" + }, + { + "firstname": "Max", + "lastname": "Schafzahl", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Stradner", + "github": "" + }, + { + "firstname": "Artur", + "lastname": "Knaus", + "github": "" + }, + { + "firstname": "Manuel", + "lastname": "Jelinek", + "github": "" + }, + { + "firstname": "Martin", + "lastname": "Erb", + "github": "" + }, + { + "firstname": "Armin", + "lastname": "Wieser", + "github": "" + }, + { + "firstname": "Marko", + "lastname": "Burazer", + "github": "" + }, + { + "firstname": "Markus", + "lastname": "Hartmair", + "github": "" + }, + { + "firstname": "Christopher", + "lastname": "Immervoll", + "github": "" + }, + { + "firstname": "Christian M.", + "lastname": "Hofer", + "github": "chrisss404" + }, + { + "firstname": "Elena", + "lastname": "Mashkina", + "github": "" + }, + { + "firstname": "Roxane", + "lastname": "Koitz", + "github": "RoxaneKoitz" + }, + { + "firstname": "Christian", + "lastname": "Burghard", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Laubreiter", + "github": "" + }, + { + "firstname": "Namik", + "lastname": "Delilovic", + "github": "" + }, + { + "firstname": "Jasmin", + "lastname": "Salihovic", + "github": "" + }, + { + "firstname": "Gregor", + "lastname": "Sitter", + "github": "" + }, + { + "firstname": "Mirhet", + "lastname": "Saracevic", + "github": "" + }, + { + "firstname": "Tatiyana", + "lastname": "Domanova", + "github": "" + }, + { + "firstname": "Roland", + "lastname": "Urbano", + "github": "X4mp" + }, + { + "firstname": "Patrick", + "lastname": "Trummer", + "github": "trummerp" + }, + { + "firstname": "Ajdin", + "lastname": "Vihric", + "github": "avihric" + }, + { + "firstname": "Rudolf", + "lastname": "Weißenbacher", + "github": "" + }, + { + "firstname": "Johannes", + "lastname": "Lüftenegger", + "github": "" + }, + { + "firstname": "Andreas", + "lastname": "Gladik", + "github": "glaanc03" + }, + { + "firstname": "Marc", + "lastname": "Slavec", + "github": "" + }, + { + "firstname": "Ralph", + "lastname": "Samer", + "github": "rsamer" + }, + { + "firstname": "Bernhard", + "lastname": "Winter", + "github": "" + }, + { + "firstname": "Daniel", + "lastname": "Ladenhauf", + "github": "" + }, + { + "firstname": "Theresa", + "lastname": "Egger", + "github": "" + }, + { + "firstname": "Sebastian", + "lastname": "Krell", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Anderhuber", + "github": "" + }, + { + "firstname": "Manuel", + "lastname": "Polzhofer", + "github": "xmxanuel" + }, + { + "firstname": "Adrian", + "lastname": "Schnedlitz", + "github": "AdrianSch" + }, + { + "firstname": "Andrej", + "lastname": "Müller", + "github": "" + }, + { + "firstname": "Tobias", + "lastname": "Ibounig", + "github": "tobijdc" + }, + { + "firstname": "Johannes", + "lastname": "Kühnel", + "github": "" + }, + { + "firstname": "Bernd", + "lastname": "Baumann", + "github": "" + }, + { + "firstname": "Gerald", + "lastname": "Lohnauer", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Kohl", + "github": "KohlThomas" + }, + { + "firstname": "Thomas", + "lastname": "Mauerhofer", + "github": "" + }, + { + "firstname": "Daniel", + "lastname": "Ellmeier", + "github": "d-ell" + }, + { + "firstname": "Lukas", + "lastname": "Radacher", + "github": "" + }, + { + "firstname": "David", + "lastname": "Prott", + "github": "" + }, + { + "firstname": "Stephan", + "lastname": "Frühwirt", + "github": "" + }, + { + "firstname": "Christian", + "lastname": "Benkovic", + "github": "" + }, + { + "firstname": "Alexander", + "lastname": "Wieland", + "github": "" + }, + { + "firstname": "Fabian", + "lastname": "Hartl", + "github": "" + }, + { + "firstname": "Patrik", + "lastname": "Maier", + "github": "" + }, + { + "firstname": "Claudio", + "lastname": "Kirchmair", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Herold", + "github": "" + }, + { + "firstname": "Jürgen", + "lastname": "Wurzinger", + "github": "" + }, + { + "firstname": "Lukas", + "lastname": "Mayr", + "github": "LukasMayr" + }, + { + "firstname": "Nikolaus", + "lastname": "Tiesenhausen", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Fötschl", + "github": "" + }, + { + "firstname": "Christian", + "lastname": "Reisinger", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Schranz", + "github": "thmq" + }, + { + "firstname": "Phillip", + "lastname": "Goriup", + "github": "Gorphi" + }, + { + "firstname": "Markus", + "lastname": "Nager", + "github": "" + }, + { + "firstname": "Philipp", + "lastname": "Pfleger", + "github": "" + }, + { + "firstname": "Andrew", + "lastname": "Deutschmann", + "github": "anddman" + }, + { + "firstname": "Matthias", + "lastname": "Müller", + "github": "" + }, + { + "firstname": "Wolfgang", + "lastname": "Wintersteller", + "github": "" + }, + { + "firstname": "Patrick", + "lastname": "Radkohl", + "github": "" + }, + { + "firstname": "Werner", + "lastname": "Arnus", + "github": "" + }, + { + "firstname": "Gerulf", + "lastname": "Binder", + "github": "" + }, + { + "firstname": "Martin", + "lastname": "Prinz", + "github": "" + }, + { + "firstname": "Marc", + "lastname": "Schober", + "github": "" + }, + { + "firstname": "Darjan", + "lastname": "Salaj", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Lienhart", + "github": "" + }, + { + "firstname": "Laura", + "lastname": "Bebek", + "github": "LauraBebek" + }, + { + "firstname": "Illya", + "lastname": "Boyko", + "github": "iboyko" + }, + { + "firstname": "Aiman", + "lastname": "Awwad", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Grebien", + "github": "" + }, + { + "firstname": "Anna", + "lastname": "Lickl", + "github": "" + }, + { + "firstname": "Mario", + "lastname": "Lins", + "github": "linsm" + }, + { + "firstname": "David", + "lastname": "Marogy", + "github": "" + }, + { + "firstname": "Manuel", + "lastname": "Haid", + "github": "Manu91" + }, + { + "firstname": "Christof", + "lastname": "Rabensteiner", + "github": "" + }, + { + "firstname": "Bernadette", + "lastname": "Spieler", + "github": "" + }, + { + "firstname": "Patrick", + "lastname": "Radl", + "github": "" + }, + { + "firstname": "André", + "lastname": "Tropper", + "github": "alt-13" + }, + { + "firstname": "Benjamin", + "lastname": "Bristow", + "github": "" + }, + { + "firstname": "Christian", + "lastname": "Schindler", + "github": "amix73" + }, + { + "firstname": "Pascal", + "lastname": "Steiner", + "github": "" + }, + { + "firstname": "Bianca", + "lastname": "Jakobitsch", + "github": "" + }, + { + "firstname": "Samuel", + "lastname": "Sprung", + "github": "" + }, + { + "firstname": "Josef", + "lastname": "Filzmaier", + "github": "joseffilzmaier" + }, + { + "firstname": "Christian", + "lastname": "Jung", + "github": "MightyMendor" + }, + { + "firstname": "Johannes", + "lastname": "Zenz", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Pittner", + "github": "" + }, + { + "firstname": "Philipp", + "lastname": "Eisner", + "github": "" + }, + { + "firstname": "Sebastian", + "lastname": "Schrimpf", + "github": "" + }, + { + "firstname": "Zulfiqar", + "lastname": "Ali", + "github": "" + }, + { + "firstname": "Richard", + "lastname": "Aigner", + "github": "" + }, + { + "firstname": "Georg", + "lastname": "Schober", + "github": "" + }, + { + "firstname": "Stefan", + "lastname": "Bürscher", + "github": "StefanBuerscher" + }, + { + "firstname": "Kirshan Kumar", + "lastname": "Luhana", + "github": "" + }, + { + "firstname": "Robert", + "lastname": "Riedl", + "github": "rriedl" + }, + { + "firstname": "Amel", + "lastname": "Hamidovic", + "github": "" + }, + { + "firstname": "Adam", + "lastname": "Ujvari", + "github": "" + }, + { + "firstname": "David", + "lastname": "Wittenbrink", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Hirsch", + "github": "84n4n4" + }, + { + "firstname": "Lukas", + "lastname": "Fritz", + "github": "frit96" + }, + { + "firstname": "Marco", + "lastname": "Wallner", + "github": "" + }, + { + "firstname": "Florian", + "lastname": "Weißensteiner", + "github": "FlorianWeissensteiner" + }, + { + "firstname": "Lukas", + "lastname": "Loibnegger", + "github": "loibi93" + }, + { + "firstname": "Amra", + "lastname": "Dzombic", + "github": "" + }, + { + "firstname": "Wolfgang", + "lastname": "Karl", + "github": "" + }, + { + "firstname": "Paul", + "lastname": "Schreiner", + "github": "" + }, + { + "firstname": "Andrej", + "lastname": "Knaus", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Lang", + "github": "" + }, + { + "firstname": "Oliver", + "lastname": "Zott", + "github": "ozott" + }, + { + "firstname": "Mario", + "lastname": "Pagger", + "github": "" + }, + { + "firstname": "Markus", + "lastname": "Reiter-Haas", + "github": "" + }, + { + "firstname": "Patrick", + "lastname": "Klampfl", + "github": "p4p4" + }, + { + "firstname": "Denis", + "lastname": "Munter", + "github": "" + }, + { + "firstname": "Fabian", + "lastname": "Kofler", + "github": "Bioxar" + }, + { + "firstname": "Sebastian", + "lastname": "Gabl", + "github": "" + }, + { + "firstname": "Tobias", + "lastname": "Striemitzer", + "github": "Eisfux2" + }, + { + "firstname": "Jochen", + "lastname": "Flachhuber", + "github": "jochenflachhuber" + }, + { + "firstname": "Harald", + "lastname": "Schaffernak", + "github": "" + }, + { + "firstname": "Joachim", + "lastname": "Lesser", + "github": "JoachimLesser" + }, + { + "firstname": "David", + "lastname": "Niederkofler", + "github": "" + }, + { + "firstname": "Martin", + "lastname": "Kerschbaumer", + "github": "" + }, + { + "firstname": "Alexander", + "lastname": "Kargl", + "github": "akargl" + }, + { + "firstname": "Eric", + "lastname": "Gergely", + "github": "" + }, + { + "firstname": "Dominik", + "lastname": "Lindenbauer", + "github": "" + }, + { + "firstname": "Patrik", + "lastname": "Hutter", + "github": "" + }, + { + "firstname": "Gregor", + "lastname": "Liebisch", + "github": "" + }, + { + "firstname": "David", + "lastname": "Kienreich", + "github": "dkienreich" + }, + { + "firstname": "Christoph", + "lastname": "Pozvek", + "github": "cpozvek" + }, + { + "firstname": "Thomas", + "lastname": "Leh", + "github": "" + }, + { + "firstname": "Manuel", + "lastname": "Schweiger", + "github": "" + }, + { + "firstname": "Reinhold", + "lastname": "Seiss", + "github": "" + }, + { + "firstname": "Stefan", + "lastname": "Reichnauer", + "github": "" + }, + { + "firstname": "Julia", + "lastname": "Viehberger", + "github": "" + }, + { + "firstname": "Ines", + "lastname": "Vorraber", + "github": "" + }, + { + "firstname": "Lukas", + "lastname": "Pichler", + "github": "" + }, + { + "firstname": "Christian", + "lastname": "Leopold", + "github": "" + }, + { + "firstname": "Benjamin", + "lastname": "Wullschleger", + "github": "" + }, + { + "firstname": "Clemens", + "lastname": "Stary", + "github": "" + }, + { + "firstname": "Dino", + "lastname": "Keskic", + "github": "" + }, + { + "firstname": "Florian", + "lastname": "Schneider", + "github": "" + }, + { + "firstname": "Jakov", + "lastname": "Matic", + "github": "" + }, + { + "firstname": "Christian", + "lastname": "Huber", + "github": "cfkh" + }, + { + "firstname": "Peter", + "lastname": "Waldert", + "github": "" + }, + { + "firstname": "Jiaqi", + "lastname": "Ning", + "github": "" + }, + { + "firstname": "Anja", + "lastname": "Reibenbacher", + "github": "" + }, + { + "firstname": "Matthias", + "lastname": "Fuchs", + "github": "mfuchs" + }, + { + "firstname": "Thomas", + "lastname": "Koinig", + "github": "" + }, + { + "firstname": "Josef", + "lastname": "Kraxner", + "github": "" + }, + { + "firstname": "Johanna", + "lastname": "Stefanzl", + "github": "" + }, + { + "firstname": "Patrizia", + "lastname": "Kamp", + "github": "" + }, + { + "firstname": "Kevin", + "lastname": "Haslinger", + "github": "" + }, + { + "firstname": "Nishant", + "lastname": "Thapliyal", + "github": "nishantt95" + }, + { + "firstname": "Pushkar", + "lastname": "Sharma", + "github": "" + }, + { + "firstname": "Abduqodiri", + "lastname": "Qurbonzoda", + "github": "" + }, + { + "firstname": "Nikolaus", + "lastname": "Steininger", + "github": "" + }, + { + "firstname": "Christopher", + "lastname": "Lamprecht", + "github": "" + }, + { + "firstname": "Michael", + "lastname": "Musenbrock", + "github": "mmusenbr" + }, + { + "firstname": "Emanuel", + "lastname": "Konrad", + "github": "" + }, + { + "firstname": "Dominik", + "lastname": "Augustin", + "github": "" + }, + { + "firstname": "Martin", + "lastname": "Pobaschnig", + "github": "" + }, + { + "firstname": "Felicitas", + "lastname": "Fabricius", + "github": "" + }, + { + "firstname": "Stefan", + "lastname": "Painhapp", + "github": "" + }, + { + "firstname": "Dorian", + "lastname": "Lux", + "github": "AntiDog" + }, + { + "firstname": "Philipp", + "lastname": "Fleischhacker", + "github": "Hyderow" + }, + { + "firstname": "Mattias", + "lastname": "Fankhauser", + "github": "" + }, + { + "firstname": "Rainer", + "lastname": "Lankmayr", + "github": "rainer-lankmayr" + }, + { + "firstname": "Sandro", + "lastname": "Eitzinger", + "github": "" + }, + { + "firstname": "Christoph", + "lastname": "Breski", + "github": "" + }, + { + "firstname": "David", + "lastname": "Löwens", + "github": "" + }, + { + "firstname": "Eduard", + "lastname": "Elsner", + "github": "elsner91" + }, + { + "firstname": "David", + "lastname": "Andrawes", + "github": "dandrawes" + }, + { + "firstname": "Michael", + "lastname": "Tiefnig", + "github": "" + }, + { + "firstname": "Dea", + "lastname": "Jasini", + "github": "" + }, + { + "firstname": "Artjom", + "lastname": "Arustamov", + "github": "artjom404" + }, + { + "firstname": "Qun Xin", + "lastname": "Lin", + "github": "qlin93" + }, + { + "firstname": "Fabio", + "lastname": "Gandolfi", + "github": "" + }, + { + "firstname": "Peter", + "lastname": "Bürscher", + "github": "petbuer" + }, + { + "firstname": "Stefanie", + "lastname": "Plasch", + "github": "" + }, + { + "firstname": "Lorenz", + "lastname": "Dirry", + "github": "ldirry" + }, + { + "firstname": "Michael", + "lastname": "Gombocz", + "github": "" + }, + { + "firstname": "Stefan", + "lastname": "Rinner", + "github": "" + }, + { + "firstname": "Thomas", + "lastname": "Reichel", + "github": "reichli" + }, + { + "firstname": "Patrick", + "lastname": "Andrawes", + "github": "" + }, + { + "firstname": "Khushal", + "lastname": "Uttam", + "github": "khushal1707" + }, + { + "firstname": "Dev", + "lastname": "Sebastian", + "github": "devsebastian" + }, + { + "firstname": "Markus", + "lastname": "Gombocz", + "github": "" + }, + { + "firstname": "Patrick", + "lastname": "Ratschiller", + "github": "ratschillerp" + }, + { + "firstname": "Benjamin", + "lastname": "Gaal", + "github": "bengaal" + }, + { + "firstname": "Christian", + "lastname": "Sommerauer", + "github": "csum1" + }, + { + "firstname": "Sebastian", + "lastname": "Peischl", + "github": "seopei" + }, + { + "firstname": "Dardan", + "lastname": "Dermaku", + "github": "" + }, + { + "firstname": "David", + "lastname": "Moling", + "github": "" + }, + { + "firstname": "Florian", + "lastname": "Laßnig", + "github": "friendo97" + }, + { + "firstname": "Bakir", + "lastname": "Sabljica", + "github": "" + }, + { + "firstname": "Julian", + "lastname": "Jautz", + "github": "" + }, + { + "firstname": "Markus", + "lastname": "Pozvek", + "github": "mpozvek" + }, + { + "firstname": "Sebastian", + "lastname": "Weninger", + "github": "bigsmallpp" + }, + { + "firstname": "Csongor", + "lastname": "Hegedüs", + "github": "" + }, + { + "firstname": "Sebastian", + "lastname": "Gollob", + "github": "sebastiangollob" + }, + { + "firstname": "Anei", + "lastname": "Makovec", + "github": "" + }, + { + "firstname": "Edon", + "lastname": "Muçaj", + "github": "edonmucaj" + }, + { + "firstname": "Julia", + "lastname": "Herold", + "github": "juliajulie95" + }, + { + "firstname": "Katharina", + "lastname": "Schedl", + "github": "rinaschedl" + }, + { + "firstname": "Maria", + "lastname": "Seiser", + "github": "mseiser" + }, + { + "firstname": "Jan-Philipp", + "lastname": "Schantl", + "github": "jANI0x" + }, + { + "name": "Dominik", + "lastname": "Scheiber", + "github": "DinosaurierRex" + }, + { + "firstname": "Oskar", + "lastname": "Walcher", + "github": "Walcho1125" + }, + { + "firstname": "Johannes", + "lastname": "Mayerhofer", + "github": "JohannesMayerhofer" + }, + { + "firstname": "Robert", + "lastname": "Leiner", + "github": "Rawbat" + }, + { + "firstname": "Ilma", + "lastname": "Lušija", + "github": "l-ilma" + }, + { + "firstname": "Michael", + "lastname": "Flucher", + "github": "MichaelFlucher" + }, + { + "firstname": "Bernhard", + "lastname": "Prattes", + "github": "bprattes" + }, + { + "firstname": "Thorsten", + "lastname": "Bandel", + "github": "ThorstenBandel" + }, + { + "firstname": "Adna", + "lastname": "Ribo", + "github": "adnaribo" + }, + { + "firstname": "Christian", + "lastname": "Moser", + "github": "ChriMoser" + }, + { + "firstname": "Dorian", + "lastname": "Percic", + "github": "dorianpercic" + }, + { + "firstname": "Daniel", + "lastname": "Metzner", + "github": "dmetzner" + }, + { + "firstname": "Jakob", + "lastname": "Tropper", + "github": "JayTropper" + }, + { + "firstname": "Martin", + "lastname": "Stöglehner", + "github": "mstoeg" + }, + { + "firstname": "Clemens", + "lastname": "Hofmann", + "github": "hofcle78" + }, + { + "firstname": "Patrick", + "lastname": "Gaisberger", + "github": "gPathpp" + }, + { + "firstname": "Verena", + "lastname": "Buder", + "github": "Veve8010" + }, + { + "firstname": "David", + "lastname": "Egger", + "github": "blindguardian50" + }, + { + "firstname": "Fabian", + "lastname": "Koell", + "github": "Koell" + }, + { + "firstname": "Maximilian", + "lastname": "Flicker", + "github": "maxf24" + }, + { + "firstname": "Dominik", + "lastname": "Dermutz", + "github": "dermooods" + }, + { + "firstname": "Christoph", + "lastname": "Siegl", + "github": "christophsiegl" + }, + { + "firstname": "Alexander", + "lastname": "Kropiunig", + "github": "Kropiunig" + }, + { + "firstname": "Johannes", + "lastname": "Trattner", + "github": "jtrattner" + }, + { + "firstname": "Alexander", + "lastname": "Beinhundner", + "github": "BeinhAlex" + }, + { + "firstname": "Thomas", + "lastname": "Schwengler", + "github": "ThomasSchwengler" + }, + { + "firstname": "Tobias", + "lastname": "Stangl", + "github": "StanglTobias" + }, + { + "firstname": "Lucas", + "lastname": "Weitzendorf", + "github": "lweitzendorf" + }, + { + "firstname": "Stefan", + "lastname": "Reichenauer", + "github": "stefanreichenauer" + }, + { + "firstname": "Michelle", + "lastname": "Perkonigg", + "github": "shellp" + }, + { + "firstname": "Andreas", + "lastname": "Finsterbusch", + "github": "AndreasFinsterbusch" + }, + { + "firstname": "Michael", + "lastname": "Pirrer", + "github": "mpirrer" + }, + { + "firstname": "Christian", + "lastname": "Schmidt", + "github": "SchmidtChristian" + }, + { + "firstname": "Susanne", + "lastname": "Wulz", + "github": "swlz" + }, + { + "firstname": "Raphael", + "lastname": "Schluesselbauer", + "github": "rschluesselbauer" + }, + { + "firstname": "Michael", + "lastname": "Fürnschuß", + "github": "mfuerni" + }, + { + "firstname": "Patrick", + "lastname": "Steyer", + "github": "Tot333" + }, + { + "name": "Manuel", + "lastname": "Schoeller", + "github": "manuels87" + }, + { + "firstname": "Christoph", + "lastname": "Heidenreich", + "github": "cheidenreich" + }, + { + "firstname": "Michael", + "lastname": "Schiller", + "github": "M-Schiller" + }, + { + "firstname": "Johannes", + "lastname": "Obermueller", + "github": "jobermue" + }, + { + "firstname": "Michael", + "lastname": "Fischl", + "github": "michael-fischl" + }, + { + "firstname": "Oliver", + "lastname": "Papst", + "github": "OliverPapst" + }, + { + "firstname": "Felix", + "lastname": "Kirchengast", + "github": "fkirc" + }, + { + "firstname": "Patrick", + "lastname": "Hipp", + "github": "Shudouken" + }, + { + "firstname": "Jakob", + "lastname": "Schweighofer", + "github": "Fasusu" + }, + { + "firstname": "Anton", + "lastname": "Rieder", + "github": "aried3r" + }, + { + "firstname": "Moritz", + "lastname": "Wiesinger", + "github": "mowies" + }, + { + "firstname": "Andreas", + "lastname": "Schmidhofer", + "github": "aschmidhofer" + }, + { + "firstname": "Stefan", + "lastname": "Tischler", + "github": "StefanTischler" + }, + { + "firstname": "Sebastian", + "lastname": "Heidinger", + "github": "sebheid" + }, + { + "firstname": "Niklas", + "lastname": "Wenzel", + "github": "nikwen" + }, + { + "firstname": "Sjoerd Dirk", + "lastname": "Meijer", + "github": "sdmeijer" + }, + { + "firstname": "Roman", + "lastname": "Tsukanov", + "github": "gentlecat" + } + ] +} diff --git a/_includes/footer_custom.html b/_includes/footer_custom.html new file mode 100644 index 0000000..6920f3c --- /dev/null +++ b/_includes/footer_custom.html @@ -0,0 +1,8 @@ +
+

+ Page last generated: {% last_modified %} +

+

+ {{ site.gh_edit_link_text }} +

+
diff --git a/_includes/socials.html b/_includes/socials.html new file mode 100644 index 0000000..8acc6ed --- /dev/null +++ b/_includes/socials.html @@ -0,0 +1,17 @@ +
+ + Discord Logo + + + YouTube Logo + + + Google Group Logo + + + Facebook Logo + + + Twitter Logo + +
\ No newline at end of file diff --git a/_layouts/home-with-socials.html b/_layouts/home-with-socials.html new file mode 100644 index 0000000..3fe3a8d --- /dev/null +++ b/_layouts/home-with-socials.html @@ -0,0 +1,7 @@ +--- +layout: home +--- + +{% include socials.html %} + +{{ content }} diff --git a/_plugins/hook-add-last-modified-date.rb b/_plugins/hook-add-last-modified-date.rb new file mode 100644 index 0000000..3ab94ef --- /dev/null +++ b/_plugins/hook-add-last-modified-date.rb @@ -0,0 +1,17 @@ +module Jekyll + class LastModifiedTag < Liquid::Tag + def render(context) + current_document = context.registers[:page] + site_source = context.registers[:site].config['source'] + file_path = "#{site_source}/#{current_document['path']}" + if File.exist?(file_path) + last_modified = File.mtime(file_path) + return last_modified.strftime(context.registers[:site].config["last_edit_time_format"]) + else + return "" + end + end + end +end + +Liquid::Template.register_tag('last_modified', Jekyll::LastModifiedTag) diff --git a/_plugins/person_output.rb b/_plugins/person_output.rb new file mode 100644 index 0000000..820aa37 --- /dev/null +++ b/_plugins/person_output.rb @@ -0,0 +1,21 @@ +module Jekyll + class PersonOutputTag < Liquid::Tag + def initialize(tag_name, data, tokens) + super + @data = data + end + + def render(context) + data = context[@data] + + if data['github'] and data['github'] != "" + output = "#{data['firstname']} #{data['lastname']}" + else + output = "#{data['firstname']} #{data['lastname']}" + end + output + end + end +end + +Liquid::Template.register_tag('person_output', Jekyll::PersonOutputTag) diff --git a/_sass/custom/custom.scss b/_sass/custom/custom.scss new file mode 100644 index 0000000..500910e --- /dev/null +++ b/_sass/custom/custom.scss @@ -0,0 +1,6 @@ +.socials > a > img{ + width: 25px; + height: 25px; + vertical-align: middle; + filter: invert(100%); +} diff --git a/agpl_v3.html b/agpl_v3.html deleted file mode 100644 index 33a5868..0000000 --- a/agpl_v3.html +++ /dev/null @@ -1,698 +0,0 @@ - - - - - GNU Affero General Public License - GNU Project - Free Software Foundation (FSF) - - - -

GNU AFFERO GENERAL PUBLIC LICENSE

-

Version 3, 19 November 2007

- -

Copyright © 2007 Free Software Foundation, -Inc. <https://fsf.org/> -
- Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed.

- -

Preamble

- -

The GNU Affero General Public License is a free, copyleft license -for software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software.

- -

The licenses for most software and other practical works are -designed to take away your freedom to share and change the works. By -contrast, our General Public Licenses are intended to guarantee your -freedom to share and change all versions of a program--to make sure it -remains free software for all its users.

- -

When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things.

- -

Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software.

- -

A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public.

- -

The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version.

- -

An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license.

- -

The precise terms and conditions for copying, distribution and -modification follow.

- -

TERMS AND CONDITIONS

- -

0. Definitions.

- -

"This License" refers to version 3 of the GNU Affero General Public -License.

- -

"Copyright" also means copyright-like laws that apply to other kinds -of works, such as semiconductor masks.

- -

"The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations.

- -

To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work.

- -

A "covered work" means either the unmodified Program or a work based -on the Program.

- -

To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well.

- -

To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying.

- -

An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion.

- -

1. Source Code.

- -

The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work.

- -

A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language.

- -

The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it.

- -

The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work.

- -

The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source.

- -

The Corresponding Source for a work in source code form is that -same work.

- -

2. Basic Permissions.

- -

All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law.

- -

You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you.

- -

Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary.

- -

3. Protecting Users' Legal Rights From Anti-Circumvention Law.

- -

No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures.

- -

When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures.

- -

4. Conveying Verbatim Copies.

- -

You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program.

- -

You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee.

- -

5. Conveying Modified Source Versions.

- -

You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions:

- - - -

A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate.

- -

6. Conveying Non-Source Forms.

- -

You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways:

- - - -

A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work.

- -

A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product.

- -

"Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made.

- -

If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM).

- -

The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network.

- -

Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying.

- -

7. Additional Terms.

- -

"Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions.

- -

When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission.

- -

Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms:

- - - -

All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further restriction, -you may remove that term. If a license document contains a further -restriction but permits relicensing or conveying under this License, you -may add to a covered work material governed by the terms of that license -document, provided that the further restriction does not survive such -relicensing or conveying.

- -

If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms.

- -

Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way.

- -

8. Termination.

- -

You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11).

- -

However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation.

- -

Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice.

- -

Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10.

- -

9. Acceptance Not Required for Having Copies.

- -

You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so.

- -

10. Automatic Licensing of Downstream Recipients.

- -

Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License.

- -

An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts.

- -

You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it.

- -

11. Patents.

- -

A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version".

- -

A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License.

- -

Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version.

- -

In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party.

- -

If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid.

- -

If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it.

- -

A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007.

- -

Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law.

- -

12. No Surrender of Others' Freedom.

- -

If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program.

- -

13. Remote Network Interaction; Use with the GNU General Public License.

- -

Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph.

- -

Notwithstanding any other provision of this License, you have permission -to link or combine any covered work with a work licensed under version 3 -of the GNU General Public License into a single combined work, and to -convey the resulting work. The terms of this License will continue to -apply to the part which is the covered work, but the work with which it is -combined will remain governed by version 3 of the GNU General Public -License.

- -

14. Revised Versions of this License.

- -

The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may differ -in detail to address new problems or concerns.

- -

Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero -General Public License "or any later version" applies to it, you have -the option of following the terms and conditions either of that -numbered version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number -of the GNU Affero General Public License, you may choose any version -ever published by the Free Software Foundation.

- -

If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that -proxy's public statement of acceptance of a version permanently -authorizes you to choose that version for the Program.

- -

Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version.

- -

15. Disclaimer of Warranty.

- -

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

- -

16. Limitation of Liability.

- -

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES.

- -

17. Interpretation of Sections 15 and 16.

- -

If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee.

- -

END OF TERMS AND CONDITIONS

- -

How to Apply These Terms to Your New Programs

- -

If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms.

- -

To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found.

- -
    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software: you can redistribute it and/or modify
-    it under the terms of the GNU Affero General Public License as
-    published by the Free Software Foundation, either version 3 of the
-    License, or (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU Affero General Public License for more details.
-
-    You should have received a copy of the GNU Affero General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
- -

Also add information on how to contact you by electronic and paper mail.

- -

If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements.

- -

You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -<http://www.gnu.org/licenses/>.

- - - diff --git a/appdesign.html b/appdesign.html deleted file mode 100644 index a63b0be..0000000 --- a/appdesign.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - App Design - - - -
-
- -
-

Sei dabei!

-
-
-
-

- Diese Lehrveranstaltung wird als Freifach für alle Studierenden der Grazer Unis angeboten.
-

-

- Termin Beginners: Start: 02.04.2019 jeden Dienstag von 17:00 - 18:00,Ende: 25.06.2019
- Erste Vorlesung im HS07.02 (0007EG0032)
- Alle weiteren Vorlesungen im HS 06.02 (006EG0022)
- Voraussetzung: Eigenes Android Smartphone oder iPhone
- Keine Vorkenntnisse nötig!
- Anmeldung unter: Design your own app (349.156)
- -

-
-
-

Pocket Code App

-
-
-
-

- Beginners starten mit Pocket Code. Von der Ideenfindung, über das Game Design, bis hin zum Erstellen eines fertigen Spiels, alleine oder in einer kleinen Gruppe, bieten wir mit unserer App Pocket Code eine Lehrveranstaltung an, in der du mit viel Spaß erste Programmiererfahrungen sammeln kannst. - Es geht ganz einfach. Komm vorbei und probiere es aus! -

-

- Weitere Infos sowie Hinweise zur Anmeldung bekommst du in der ersten Einheit am 02.04.2018. - Die Fixplätze werden in der Lehrveranstaltung vergeben. -

-

- Fragen zur LV-Anmeldung: Wahlfachprogramm TIMEGATE
- Fragen zum Inhalt der LV: Bernadette Spieler -

- -
- - - - - diff --git a/assets/images/catrobat_logo.svg b/assets/images/catrobat_logo.svg new file mode 100644 index 0000000..d9f3565 --- /dev/null +++ b/assets/images/catrobat_logo.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/discord_logo.svg b/assets/images/discord_logo.svg new file mode 100644 index 0000000..eca3bd3 --- /dev/null +++ b/assets/images/discord_logo.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/assets/images/facebook_logo.svg b/assets/images/facebook_logo.svg new file mode 100644 index 0000000..58b261f --- /dev/null +++ b/assets/images/facebook_logo.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/favicon.ico b/assets/images/favicon.ico similarity index 100% rename from favicon.ico rename to assets/images/favicon.ico diff --git a/assets/images/googlegroups_logo.svg b/assets/images/googlegroups_logo.svg new file mode 100644 index 0000000..885e55f --- /dev/null +++ b/assets/images/googlegroups_logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/twitter_logo.svg b/assets/images/twitter_logo.svg new file mode 100644 index 0000000..8045a4f --- /dev/null +++ b/assets/images/twitter_logo.svg @@ -0,0 +1,19 @@ + + + + + twitter [#154] + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/youtube_logo.svg b/assets/images/youtube_logo.svg new file mode 100644 index 0000000..3d91e2b --- /dev/null +++ b/assets/images/youtube_logo.svg @@ -0,0 +1,19 @@ + + + + + youtube [#168] + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/catroidstandalonetictactoemaster.html b/catroidstandalonetictactoemaster.html deleted file mode 100644 index e92ec15..0000000 --- a/catroidstandalonetictactoemaster.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - Tic-Tac-Toe Master - - - -
-
-
- - Tic-Tac-Toe Master was created on a phone with - -
-
- Pocket Code -
- - -
-
- - diff --git a/ccbysa_v4.html b/ccbysa_v4.html deleted file mode 100644 index bb3f74b..0000000 --- a/ccbysa_v4.html +++ /dev/null @@ -1,308 +0,0 @@ - - - - - - Creative Commons Attribution-ShareAlike 4.0 International Public License - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools

-

Home

-
- -
- -

Creative Commons Attribution-ShareAlike 4.0 International Public License

- -

This is a local copy of the original License at <https://creativecommons.org/licenses/by-sa/4.0/legalcode>

- -

-By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. -

- -

Section 1 – Definitions.

-
    -
  1. -Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. -
  2. -
  3. -Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. -
  4. -
  5. -BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License. -
  6. -
  7. -Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. -
  8. -
  9. -Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. -
  10. -
  11. -Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. -
  12. -
  13. -License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike. -
  14. -
  15. -Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. -
  16. -
  17. -Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. -
  18. -
  19. -Licensor means the individual(s) or entity(ies) granting rights under this Public License. -
  20. -
  21. -Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. -
  22. -
  23. -Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. -
  24. -
  25. -You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. -
  26. -
- -

Section 2 – Scope.

-
    -
  1. -License grant. -
  2. -
      -
    1. - Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: -
    2. -
        -
      1. -reproduce and Share the Licensed Material, in whole or in part; and -
      2. -
      3. -produce, reproduce, and Share Adapted Material. -
      4. -
      -
    3. -Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. -
    4. -
    5. -Term. The term of this Public License is specified in Section 6(a). -
    6. -
    7. -Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. -
    8. -
    9. -Downstream recipients. -
    10. -
        -
      1. -Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. -
      2. -
      3. -Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply. -
      4. -
      5. -No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. -
      6. -
      -
    11. -No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). -
    12. -
    - -
  3. -

    Other rights.

    -
      -
    1. -Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. -
    2. -
    3. -Patent and trademark rights are not licensed under this Public License. -
    4. -
    5. -To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. -
    6. -
    -
  4. -
- -

Section 3 – License Conditions.

-

-Your exercise of the Licensed Rights is expressly made subject to the following conditions. -

-
    -
  1. -

    Attribution.

    -
      -
    1. -

      -If You Share the Licensed Material (including in modified form), You must: -

      -
        -
      1. -retain the following if it is supplied by the Licensor with the Licensed Material: -
      2. -
          -
        1. -identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); -
        2. -
        3. -a copyright notice; -
        4. -
        5. -a notice that refers to this Public License; -
        6. -
        7. -a notice that refers to the disclaimer of warranties; -
        8. -
        9. -a URI or hyperlink to the Licensed Material to the extent reasonably practicable; -
        10. -
        -
      3. -indicate if You modified the Licensed Material and retain an indication of any previous modifications; and -
      4. -
      5. -indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. -
      6. -
      -
    2. -
    3. -You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. -
    4. -
    5. -If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. -
    6. -
    -
  2. -
  3. - ShareAlike. -

    -In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply. -

    -
      -
    1. -The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License. -
    2. -
    3. -You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material. -
    4. -
    5. -You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply. -
    6. -
    -
  4. -
- -

Section 4 – Sui Generis Database Rights.

-

Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:

-
    -
  1. -for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; -
  2. -
  3. -if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and -
  4. -
  5. -You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. -
  6. -
-For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - -

Section 5 – Disclaimer of Warranties and Limitation of Liability.

-
    -
  1. -Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. -
  2. -
  3. -To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. -
  4. -
-
    -
  1. -The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. -
  2. -
- -

Section 6 – Term and Termination.

-
    -
  1. -This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. -
  2. -
  3. -

    -Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: -

    -
      -
    1. -automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or -
    2. -
    3. -upon express reinstatement by the Licensor. -
    4. -
    -For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. -
  4. -
  5. -For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. -
  6. -
  7. -Sections 1, 5, 6, 7, and 8 survive termination of this Public License. -
  8. -
- -

Section 7 – Other Terms and Conditions.

-
    -
  1. -The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. -
  2. -
  3. -Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. -
  4. -
- -

Section 8 – Interpretation.

-
    -
  1. -For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. -
  2. -
  3. -To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. -
  4. -
  5. -No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. -
  6. -
  7. -Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. -
  8. -
- -

-Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. -

-Creative Commons may be contacted at creativecommons.org. -

- - -
-
- - - - diff --git a/codeNstitch.html b/codeNstitch.html deleted file mode 100644 index 7f03930..0000000 --- a/codeNstitch.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - Code'n'Stitch - - - -
-
- -
-

FEMtech Projekt "Code'n'Stitch"

-
-
-
-

- Weiterentwicklung der Pocket Code App für den Einsatz in gendergerechten Stick/Coding Kurse für Werken
-

- -

- Laufzeit: September 2018 - August 2020 (24 Monate)

- Konsortium:
-      Technische Universität Graz, Institut für Softwaretechnologie, Catrobat.org
-      bits4kids OG
-      Apflbutzn Faires Gwand OG

- Bereich:
-      Experimentelle Entwicklung (EE)
-      Digitale Technologien – Informations- & Kommunikationstechnologien


- -

-
-

Projektziel

-

- Frauen stellen die Personengruppe mit dem größten Potential dar, den in den nächsten Jahren kommenden dramatischen Rückgang bei der arbeitenden österreichischen Bevölkerung zu kompensieren und den damit extrem auseinanderklaffenden und ungebremst wachsenden Bedarf an IT-Fachkräften bewältigen zu können. Mit unserer Lernapp Pocket Code bieten wir einen kreativen Ansatz für Jugendliche und können den Zugang zur IT für sie spielerisch eröffnen. Mit einer neuen Version der Pocket Code App, durch die Erweiterung einer programmierbaren Stickmaschine erschließen wir neue Möglichkeiten vor allem Schülerinnen für die Technik zu begeistern. Gemeinsam mit unseren Kooperationspartnern können wir den gesamten Workflow vom Einsatz an Schulen, bis zur Entwicklung gendergerechte Guidelines für Workshops in Werken und die praktische Umsetzung für Modegeschäfte abbilden. Dieses nachhaltige Konzept wird dazu beitragen die Kreativität der Jugendlichen zu fördern, sie für Coding zu begeistern, und sie haben am Ende dieser “Hands-on”-Stick Einheiten etwas Selbstkreiertes, das sie mit Stolz anziehen und herzeigen können. -

- -
- -
-
-

Projekt-Kurzfassung

-

- Die App Pocket Code wird an der Technischen Universität in Graz am Institut für Softwaretechnologie als Open Source Projekt realisiert. Mit Pocket Code können Jugendliche spielerisch Programme direkt am eigenen Smartphone erstellen. Um die App für die Zielgruppe junge Frauen im Alter von 12-15 Jahre interessanter zu gestalten, werden wir sie um die Möglichkeit eine Stickmaschine zu programmieren, erweitern. So können selbst kreierte Muster und Designs zum Beispiel auf T-Shirts, Hosen oder Taschen aufgestickt werden. Die Stickmuster werden mit Pocket Codes‘ visuellen Programmiersprache erstellt und dann via USB Stick auf die Maschine geladen. Als Resultat haben die Jugendlichen dann etwas Bleibendes, zum Beispiel zum Anziehen, das sie anderen zeigen können. Für diese Stickmusteranbindung soll eine neue Version der Pocket Code App entwickelt werden, welche speziell auf die Interessen junger Frauen und Mädchen zugeschnitten ist. Des Weiteren sollen entsprechende Stick/Coding Kurse an Schulen angeboten werden wobei besonders Wert auf eine gendergerechte Konzeption gelegt werden soll, um die unterschiedlichen Voraussetzungen, Bedürfnissen und Lebensperspektiven von Jugendlichen besser im Unterricht berücksichtigen zu können. Diese Kurse werden im Werkunterricht gemeinsam mit den Projektpartnern „bits4kids“ realisiert. Diese Kurse sollen zum einen jungen Frauen neue Wege aufzeigen, wie Technik eingesetzt werden kann, und zum anderen junge Männer durch programmierte Musterbildung für einen textilen Werkunterricht begeistern. Durch die Kooperation mit der Modefirma “Apflbutzn”, wird das Besticken der Kleidung verwirklicht. Dafür wird ihr Team bei den letzten Einheiten mit einer Stickmaschine dabei sein und die programmierten Muster der Jugendlichen können direkt vor Ort auf T-Shirts und Turnbeutel gestickt werden. -




- -
- - - - - - diff --git a/codein18tasks.html b/codein18tasks.html deleted file mode 100755 index d1f7299..0000000 --- a/codein18tasks.html +++ /dev/null @@ -1 +0,0 @@ -

Catrobat @ GCI 2018
Example Tasks


Coding

Code a Stopwatch

Code a program with Pocket Code that starts counting time (in seconds) as soon as you press a “start button“.

Besides that add another object which stops the timer and one for setting it back to 0.

This third object, the “restart button“, should not react when pressed while the timer is running.

Make it visually appealing, e.g., have a "classic" look to it, as in http://pngimg.com/download/6614/?i=1

That does not mean you have to make an analog clock. It is just meant to give you an idea of a style you might want to be going for.

Tags: Visual Programming, App Creation

Interactive Cook Book

Build an interactive cookbook program using Pocket Code. I must contain recipes for more than 2 different meals and detailed (step-by-step) information how to cook them. The plus side is that this program would make an excellent gift for your grandmas' digital cookbook collections. Build a nice clean User Interface, including easy controls.

(Must) - provide step by step instructions, Create easy to use controls, provide authors’ names of a recipe (if it is from a website or a book)

(Be organised) - create categories, for example dessert, side dishes, main courses etc.

(Optional add favourite secret family recipe. Note: get it a creative commons license that way it can't be stolen by someone else entirely)

Add cool animations, sounds, and images - be creative.

We can't wait to taste your food. : )

Tags: Visual Programming, App Creation

Create an Image Slider

Create a program in Pocket Code that allows you to easily slide through different predefined images on your smartphone.

Your app should already have some images included (at least 5). You can show the next image after a predefined time interval or with an explicit command (after the last image, the next should be the first one, allowing you to continuously go through the provided images).

Be creative and choose how to interact with it (for example you can use inclination sensors, UI buttons done via sprites and so on). You can also provide a preview slider and opening the image in a full size view with a specific command. You have total freedom to extend your project, as long as you follow these rules:

1) include an introductory screen (in English AND in your mother tongue) that helps the user to understand the commands available.

2) Do not use abbreviations in your program, and structure it clearly.

3) Use English language to document your code and choose the name of variables that are meaningful for an English reader.

4) Upload your program to Catrobat’s sharing platform.

5) If the idea behind your image slider is based on an existing tool/program, please mention the url of the original tool/program in the description of your program. Please report also the source of images and cite their licence (if needed)

IMPORTANT: Pay attention not to use photographs of real people as images in your program.

Tags: Visual Programming, Graphics, Creative Commons, App Creation

Build your own Version of Pocket Code!

Find the source code of Pocket Code on GitHub: https://github.com/Catrobat/Catroid 

First step: Get used to Git, there are several ways how you can use it (e.g. command line, desktop tools,...). You will find many resources how Git works on the internet.

Second step: Clone the Catroid repository locally on your computer (Caution: May take some MB of data).

Third step: Get the latest version Android Studio and open the Catroid project in it.

Fourth step: Find a way to run Pocket Code directly from Android Studio in the emulator. Now you have built your very own first version of Pocket Code! Congratulations!

Explain in a Google Doc how exactly you solved this task step by step. Include screenshots (from Android Studio and the Emulator) and submit a shared link to it.

Tags: Android, Smartphone, Git

Code a Music Player

This is a fun but long project: what you do here is build a music player with Pocket Code. Make a nice UI (User Interface), add nice standard features (like volume, track switching, repeat, repeat all, and stop) and share it with our community.

The music list has to contain at least six songs and, if you want to (this is optional) you may also extend this task: make a ID3v1, ID3v2, basically ID3 tag viewer.

These are basically: artist, album, track, year, size, and bitrate information from the song file. Add also art to it to make it more appealing for users (cover image etc).

For an example, check out Sketchy's music player at https://share.catrob.at/pocketcode/program/30798

Rules : YOU CAN NOT REMIX. Your project must be originally coded by yourself.

Important: Respect copyrights. If you add a song that's copyrighted or requires payment, your program will be disqualified. Copyrighted music is not allowed, unless the licenses only require crediting the artist (which you should then need to do). Look up Creative Common fore more information about freely available music, where to find it and how to proper attribute it.

Tags: Visual Programming, Music, App Creation

Documentation/Training

Loops Tutorial

Make a YouTube tutorial explaining how loops work in Pocket Code. Show users at least three ways to use a loop (e.g. with screen recordings from existing projects). These loops can be created in several ways for example (changing colors, character walking, moving shapes, etc.) - there are many ways to create loops.

Just make sure that the loops are used in a meaningful way in the showcase: don't show it in an abstract way, instead explain for what loops are needed in your game. Also check different kind of loops (forever, repeat xxx times or repeat until, or implicit loops using broadcasts).

After watching your Tutorial, users should understand the concept of loops and be apple to apply it in their own projects.

Tags: Tutorial, Video, Support

Explain Help/Tutorials of Pocket Code

Create a YouTube screen recording video showing how to use the app together with the help/tutorial pages on the same device. Include in the video how to switch back and forth between the app and the browser in which the tutorials are shown, by using Android’s built-in mechanism allowing to quickly switch between apps. Before doing the screen recording, turn on the option to see touch positions on your phone (you will find them in the developer’s options of your phone). Explain the different parts of the Help/Tutorials section, which is available through the “Help” button in your app.

Use your mother tongue throughout the video (either spoken or written). Show how you can use the Step by step or Intro projects to create a first game. Also explain all the other parts of the Help/Tutorial page, including how the web forum works, and record how to read forum articles, how to answer to them, and how to write and publish new ones (button “Discuss” on the bottom of the Help/Tutorials page in the app and on the sharing site, or whatever this button at the bottom of the Help/Tutorials page is named in your language). Also show in your video how long presses on bricks in scripts redirect to a page on the wiki where the brick is explained in more detail. Also show how to turn off and on again the showing of hints in the settings of Pocket Code.

Tags: Support, Tutorial, Video

Step-by-Step Activity Tutorial

We’re working on new free tutorials for our users. Find first impressions on https://catrobatblog.wordpress.com/education/tinkering-with-your-phone/

We want you to create a activity, similar to the ones on this website, to explain the physics engine. Create a game (no remix!) with 3 objects from our media library, bouncing around within the screen when shaking the device. The game should not contain any further functionality and the scripts need to be as simple as possible - find the optimal solution.

After you have created the game and uploaded it onto our sharing platform, describe it so that others get the knowledge how they can develop such a game on their own. Just like in the examples, create screenshots, explain it step by step and also provide links to example games using this functionality. In the end, a beginner should can understand how the physics engine works just by reading your explanation and reimplementing your project.

Put it all into a shared Google Doc and submit a link to it.

Tags: Support, Tutorial

Introduction for Translators

Catrobat is trying to reach contributors all over the world that are also helping to translate all services into their native language. Therefore, we provide a special platform for translators on https://translate.catrobat.org

Find out how this service works (See Task “Add and/or correct three translations”), how the app’s strings gets translated and what contributors have to keep in mind when using this tool. Write an description in your mother tongue (or a language you’re fluent and confident in), explaining how to become a translator and how to start. Try to keep it simple and easy to read.

Submit a shared Google Doc to us.

Tags: Translation, Community

Help another Student to Create a Game with Pocket Code

Every day users request help with their projects on different channels. It’s important for a vital open source community to handle such requests and help users/contributors. The main channels of communication therefore are our mailing list and the new chat channels on Discord. Join one of these channels and help another user to create together a great project!

Success criteria: Another user creates and then uploads a challenging and awesome Catrobat game with Pocket Code to our sharing site, after you help him or her to achieve it. The user must initially be a total newbie, and there should be many interactions between you and the newbie on the mailing list/web forum where you successfully and gently guide the user without solving the problems yourself.

Additionally create a shared Google doc (allowing comments for anyone with the link) linking to all your posts/channels and the resulting project uploaded by the other person to our sharing site, also available through https://share.catrob.at/, including the texts and images in the posts. Also include any other information that might help us evaluate your work related to this task. Structure that document so that it is easily understandable.

Find the Mailing List on: https://groups.google.com/forum/#!forum/pocketcode

Find the Chat on: https://catrob.at/dpc

Tags: Support, Community

Outreach/Research

Free Open Source Licenses, Attribution, Remixing, Credits, and Copyright (etc…)

When you upload a Catrobat program created with Pocket Code to our sharing platform, you have to agree to our Terms of Use and Service and the uploaded programs and media are subject to our http://catrob.at/licensesofuploads – Read and understand the referenced licenses. Also read up and research about remixing, copyright/author’s rights, artistic use, and fair use, both in your country as well as internationally. Create a shared Google doc (allowing comments for anyone with the link) that summarizes your finding in your mother tongue. Also add an annotated list of all sources that you used for this task. Structure that document so that it is easily understandable also for other users.

Tags: Research, Open Source, Creative Commons

Smartphones and Teenagers

Find out how many teens in different areas of the world own smartphones, and, where possible, how many have access to PCs and how many to tablets. Use data sources that are as recent as you can find. Where possible, differentiate between Android and iOS for the different regions (among teenagers!). If possible, differentiate between cities and rural areas. Make a sanity-check in your area to see if the numbers correspond. Extrapolate how many teenagers can be reached with Pocket Code on Android phones now, and in the near future on Android and iOS, versus how many can be reached when only traditional PCs or tablets can be used instead of phones.

Make a report including maps showing these numbers for different countries and/or regions of the world. Make a list of links to all sites from which you got the data, including from which year the data is. Put all of this in a shared Google doc (allowing comments for anyone with the link). Structure that document so that it is easily understandable.

The information has not to be complete in any way, but it needs to be true. I.e., it is more valuable for us to know what the situation regarding smartphones is in Lithuania among 13-14 year old city girls, than to have an overview over all Europe.

Tags: Research, Smartphone, Teenagers

Music Creation For Pocket Code Programs

Find ways to create music for Pocket Code programs

Rules and Instructions

-) Do some research find ways to create music for free. Build a Google doc or YouTube video describing the best ways to create music for Pocket Code.

-) Provide resources links and instructions and a full detailed description why its excellent for Pocket Code and why you should create sounds with that app or website : )

-) Try to find open source solutions or organizations that support CC0 (Creative Commons)

Tags: Creative Commons, Music, Community

Creative Commons Toolbox

Users might use different assets within their Pocket Code projects.

However, it is important to foster an open mindset and also to protect the young users from any copyright infringements.

Do some research on Creative Commons and how this impacts Pocket Code users’ projects.

Also research how different CC licenses may be joined/connected and how attributes must be provided.

Create a “Toolbox” in form of a shared Google Doc, explaining how Creative Commons works, what licenses exist and give concrete examples how users can find creative commons media and how they might use it for their projects.

Keep in mind that the primary target group of our services are teens - try to make your explanation suited for this specific group, making it easy for them to learn from your document.

Tags: Creative Commons, Community, Support

Clean Code Policy

Catrobat is driven forward by a large number of volunteer contributors, jointly developing our open source services. To make it as simple as possible for new developers to contribute, we have a clean code policy.

Task for you: Do some research on what “clean code” is, what principles it follows and what rules developers should follow. Furthermore, look up the Catroid Repository (https://github.com/Catrobat/Catroid) and find examples for clean code and explain why it is clean code.

Create a shared Google Doc, summing up you research on Clean Code, providing some simple guidelines for new developers and also pointing out examples from the existing Catroid Code.

Tags: Coding, Quality, Android

Quality Assurance

Report a Bug in Pocket Code

Identify and report a so-far unreported bug or issue in Pocket Code. Try to describe the bug in as much detail as possible. Include all details, e.g., your exact phone model, Android version (if you use a non-stock Android version, add the name and version of it), and the version of our app you tested (shown in the “About” menu entry). The bug must be 100% reproducible under the conditions you explain in your ticket. Try to identify the smallest possible circumstances under which the bug occurs and describe them. Make a screen recording of the bug’s occurrence on your phone, with a voice commentary in English about what you are doing. Before doing the screen recording, turn on the option in the developer’s option on your phone that allows to see the finger positions when the screen is touched. Report the bug with all details and a link to the video in a shared Google doc that you create by making a copy of http://catrob.at/bugreporttemplate (share it in such a way that anyone with the link can add comments) – for a moderately good example of a bug report, see, e.g., https://jira.catrob.at/browse/CAT-2569 – try to improve on this.

Tags: Bug, Android

Find a Bug on Catrobat’s Sharing Platform

Identify and report a so-far unreported bug or issue in Pocket Code’s sharing site https://share.catrob.at/. Try to describe the bug in as much detail as possible. Include all details, e.g., your exact phone model, Android version (if you use a non-stock Android version, add the name and version of it), and the time and date including the time zone during which you identified the bug. The bug must be 100% reproducible under the conditions you explain in your ticket. Try to identify the smallest possible circumstances under which the bug occurs and describe them. Make a screen recording of the bug’s occurrence on your phone, with a voice commentary in English about what you are doing. Before doing the screen recording, turn on the option in the developer’s option on your phone that allows to see the finger positions when the screen is touched. Report the bug with all details and a link to the video on https://jira.catrob.at/projects/WEB/ – for a moderately good example of a bug report, see, e.g., https://jira.catrob.at/browse/WEB-401 – try to improve on this.

Tags: Bug, Web

Add and/or Correct three Translations

Add and/or correct three translations of words and/or phrases in your mother tongue after registering on http://translate.catrobat.org/ for your mother tongue. Exception: English regional variants cannot be chosen. Note that the audience of our apps and services are teenagers, so use formulations and politeness levels similar to how they are used in other apps and/or websites made for teenagers, i.e., in most countries use informal language.


Before you start to translate, please make sure that you know where your translation will be placed, so that you can better understand the context of the translation. If you e.g. can't download/use the app, please translate parts of the websites. Take screenshots of the app (e.g. Pocket Code) or the website (
http://share.catrob.at) where the translation will be placed - you will also need these screenshots for your submission.


Create a shared Google doc (allowing comments for anyone with the link) showing screenshots of all edits you made on the translation website, together with links to the pages in the translation website, and also screenshots from our apps and services showing the exact place where the translated words or phrases occur in them, both in English as well as in your mother tongue (even if in the latter it is shown incorrectly or in English). In case you make a correction, shortly explain why your translation is better than the old one. Structure that document so that it is easily understandable.

http://translate.catrobat.org/

Tags: Translation, Web

Report Problematic Projects

After carefully reading our abbreviated terms of use as well as the long version of our terms of use and service, find a project on our sharing site that in your opinion should be removed, and report it using the report link on its page, explaining in detail in Pocket Code’s interface for reporting programs why you believe the program does not adhere to our terms of use or terms of use and service. Keep in mind that Catrobat’s predominant user group are teenagers, i.e., from 13-17.

Before you report the project, please copy the link to it and submit it as solution for this task.

Note: remixing another person's project is explicitly allowed.

Find all projects on https://share.catrob.at/

Tags: Community, Content

User Experience / Usability Improvement for
Pocket Code’s Sharing Site (
https://share.catrob.at/)

Suggest a meaningful new user interface feature that improves the usability or user experience of Catrobat’s sharing site https://share.catrob.at/. In case there is no ticket on https://jira.catrob.at/projects/WEB/ for your suggestion, create a new one. In case there already exists a ticket, add a comment to the ticket explaining your proposed solution in more detail, e.g., with additional text or images. Do not suggest features that are marked in jira as being already under development. For a moderately good example of a ticket, see, e.g., https://jira.catrob.at/browse/WEB-390 

Tags: Usability, User Experience, Web, Content

Design

Add Graphics for the Media Galleries

Design a graphical asset similar to the ones shown when adding a new sprite from the gallery, i.e., https://share.catrob.at/pocketcode/pocket-library/looks or https://share.catrob.at/pocketcode/pocket-library/backgrounds -- all contributed media must be licensed under the CC-SA-BY 4.0 license http://creativecommons.org/licenses/by-sa/4.0/

https://share.catrob.at/pocketcode/pocket-library/looks

Tags: Creative Commons, Graphics, Media, Content

Christmas Themed Pocket Family

Do you already know our Pocket Code Family characters?

Get them under CC0 License on https://share.catrob.at/pocketcode/pocket-library/looks .

Since Christmas season will start soon, we want you to take at least one of these character and make a christmas version out of it. Be creative and modify an existing character.

Make the background transparent, so that it can be easily included into games. Furthermore, please try to make it high resolutions, so that it is not looking pixelated when using it in full screen size. Submit a *.png version of your file.

All contributed media must be licensed under the CC-SA-BY 4.0 license http://creativecommons.org/licenses/by-sa/4.0/

Tags: Creative Commons, Graphics, Media, Content

Catrobat - Stickers!

An important resource for open source organizations are stickers. We love to have them on our computers, lunchboxes, bikes, just everywhere!

Catrobat just got a new logo and we want you to create a special sticker, that we will print and hand out to our community.

Design a 5 cm circle sticker in high resolution (at least 300 dpi), featuring our new Catrobat Logo. It shouldn’t be too boring, so get creative!

Make sure that all resources you use are CC0 and also put your file under CC0 license!

Tags: Print, Design

Create a Sound Effect

Our Media Library also provides various sound-assets that can be used within games. Create yourself (do not use any resources from the web) a sound effect that might be useful within games and provide one example game with Pocket Code. The quality should be as high as possible (no background noises, no simple microphone recording….).

Share the sound under CC0 license, so that we can also provide it to obequither users.

Tags: Creative Commons, Music

New Featured Project

On Catrobat’s Sharing platform users can upload their projects under an open license to share it with friends, other users, and the whole world.

To make it easier to find fun projects, we regularly feature user-created games directly on the main page of share.catrob.at with a special banner at the top.

Select a good new game that you think should be featured. Write a short explanation why you think this game is of interest for Pocket Code users. As main work, design a header image, that appeals to users and gives a first impression. The submitted file must be a *.png file with the given size of 1024x400 px. Look up the current feature images to get an idea how they look like and where they are placed.

Make sure just to use resources that are openly available and may be used for this purpose (please provide detailed information if you use graphics that have not been created by yourself, describe from where you’ve got them and under which license they are).

Tags: Design, Graphics, Content, Community

\ No newline at end of file diff --git a/copyright_policy.html b/copyright_policy.html deleted file mode 100644 index 4303da4..0000000 --- a/copyright_policy.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - Copyright Policy - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools

-

Home

-
- -
-

Copyright Policy

- -

Version 2.1, 13 January 2019

- -

- The Catrobat team respects the intellectual property of others, as well as of our users. - If you believe that your work has been copied in a way that constitutes copyright infringement, please send us an email. -

- -

- We will promptly process and investigate notices of alleged infringement and will take appropriate actions under the - Directive 2001/29/EC and - other applicable intellectual property laws. Upon receipt, the Catrobat team may act expeditiously to remove or disable - access to any material claimed to be infringing. Repeat infringers of third-party copyrights are subject to termination of our services in appropriate circumstances. -

- -

- In assessing whether or not a Catrobat user has violated your copyrights, please keep in mind that Catrobat is an educational - and not-for-profit initiative, seeking to aid young people's learning by providing the tools for them to learn and express themselves using digital technology. -

- -

- We hope you also see Catrobat not only as a good way of popularizing your creations but also as an opportunity - to do something good for young people's education. -

- -

- If you choose to make a copyright infringement complaint, please note that we may post your notification, - with personally identifiable information redacted, to a clearinghouse such as https://lumendatabase.org/. - Please also note that you may be liable for damages (including costs and attorneys' fees) if you materially misrepresent that an activity is infringing your copyright. -

- -
-
- - - - diff --git a/credits.html b/credits.html deleted file mode 100644 index 7aa2fee..0000000 --- a/credits.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - Catrobat Credits - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools

-

Home

-

- Contact
-

-
- -
-

Credits

-

The Catrobat development team includes:

- - Project Head and Founder
- Wolfgang Slany -
-
- - Product Owners
- Sarina Gursch, Michael Herold, Vesna Krnjic, Stefan Kutschera, Daniel Metzner, Patrick Ratschiller, Wolfgang Slany, Bernadette Spieler. - -
-
- Former Product Owners
- Annemarie Harzl, Christian Schindler, Matthias Müller. -
-
- - Designers
- Anja Petri, Mario Kolli, Martina Edelhofer, Maria Schrack, Melanie Kleindienst, Lisa Kehrer, Davor Kirbis, - Darjan Salaj, Amra Dzombic, Katharina Stadlmayr, Sebastian Gabl, and Johanna Stefanzl.
-
- - Active Senior Members (Developer)
- Thomas Schranz (Pocket Code Android), Thomas Hirsch (Pocket Code Android), Thomas Schwengler (Pocket Paint), - Robert Painsi (Pocket Code Android), Matthias Müller (Marketing), Bernadette Spieler (Catroid), - Christian Schindler and Dominik Augustin and Martin Pobaschnig (Infrastructure), Patrick Ratschiller and Markus Gombocz (DevOps), Jakob Fahrner and - Matthias Fuchs (Jenkins), Dorian Lux and Philipp Fleischhacker (Scratch-2-Catrobat Converter),Emanuel Moser and Stephan Schauberger (Catroweb), - Michael Herold and Theo Gasteiger and Stefan Painhapp (Pocket Code iOS). -
-
- - Alumni Senior Members (Developer)
- Sercan Akpolat, Ferdinand Knapitsch (Catroweb), Daniel Markart (Pocket Code Android), Peter Tielsch (Pocket Code Android), - Daniel Burtscher (Pocket Code Android), Christian Hofer (Catroweb), Roman Mauhart (Catroweb), - Stefan Mayer (Pocket Paint Android), Tobias Gritschacher (Catroweb), Othmar Ruprecht (Pocket Paint Android), - Maximilian Fellner (Pocket Paint Android), Bernhard Spitzer (Pocket Code Android), Vesna Krnjic (Usability), - Peter Treitler (Pocket Code Android), Alexander Gütler (Catroweb), - David Reisenberger (Pocket Code Android), Stephan Fellhofer (Pocket Code Android), Gerald Wagner (Drone), - Markus Hobl (Pocket Code Android), Thomas Kaufmann (Pocket Code Android, Jenkins), Jeton Arifi (HTML5), - Stefan Galler (Pocket Paint Android), Valentin Rock (WindowsPhone), Manuel Wallner (Pocket Code Android), - Patrick Koch (Pocket Code Android), Stefan Simon (Pocket Code Android), Franz Schreiner (Pocket Code Android) - Markus Hobisch (Pocket Code Android Drone, Jira), Florian Winkelbauer (Musicdroid), Marc Slavec (Pocket Code iOS), - Ralph Samer (Pocket Code iOS and Scratch to Catrobat Converter), Adrian Schnedlitz (Pocket Code Android Arduino, Jira), - Gregor Sitter (Catroweb), Marko Burazer (Catroweb), Christian Hartinger (Catroweb) and Paul Schreiner (Translations), - Stephan Fellhofer (Pocket Code Android, Jira), Andrej Knaus (Catroweb) and Eric Gergely (Catroweb), Annemarie Harzl (Management) - Christoph Heidenreich and Ajdin Vihric (Pocket Code Android), Wolfgang Wintersteller (HTML5), Peter Kapfer (Education) - and Michael Musenbrock (Jenkins). -
-
- - All Members
- Annemarie Harzl, Alexander Kalchauer, Othmar Ruprecht, Peter Treitler, Thomas Holzmann, Tom Spiss, - Stefan Hohenwarter, Nikolaus Koller, Tobias Gritschacher, Oliver Prentner, Sercan Akpolat, - Alexander Gütler, Peter Schmidl, Maximilian Fellner, Ferdinand Knapitsch, - Daniel Markart, David Reisenberger, Daniel Burtscher, Jörg Hofer, - Christian Hofer, Roman Mauhart, Stefan Mayer, Ainul Husna Abdul Muin, Jia Lin Chong, - Denise Hoo, Manuel Zoderer, Martin Oswald, Dietmar Maurer, Christian Lesjak, Christoph Woergoetter, - Safdar Zaman, Johannes Iber, Hans Peter Gugl, Florian Hubner, Christoph Kahr, David Kikelj, - Jakob Strauss, Pulkit Chouhan, Smiai Oussama, Boris Kanjer, Thomas Rosmarin, Stephan Fellhofer, - Alex Nicoara, Bernhard Trapp, Hans-Jürgen Schröttner, Raphael Sommer, Gerald Wagner, Fatin Ghazi, - Deena Mugien, Walter Tang, Thomas Loidolt, Christian Hartinger, Angelika More, Peter Tielsch, - Gerald Musser, Roland Dutzler, Philipp Taferner, Otto Touzil, Max Löffler, Florian Sumann, - Andreas Maureder, Manfred Knapp, Tobias Stumpfl, Markus Hobl, Andrea Höfler, Valentin Rock, - Herbert Christian Lierzer, Mario Kolli, Thomas Kaufmann, Michael Pletz, - Jeton Arifi, Matthias Traub, Patrick Koch, Robert Painsi, Daniel Fritzsch, Dominik Schleicher, - Ilija Simic, Majda Osmic, Marco Steger, Maximilian Sachs, Michael Münzer, - Michael Rieder, Peter Kapfer, Hannes Hasenauer, Gerhild Grinschgl, Andreas Frühwirt, - Christof Stromberger, Markus Schmid, Mattias Rauter, Stefan Simon, Stefan Oberacher, Vesna Krnjic, - Simge Sezgin, Artur Termenji, Samitha Priyanath Jayathilaka, Florian Schitter, Markus Höfer, - Petra Pupovac, Ingrid Reip, Patman Ghazi, Suemeyra Mutlu, Bernhard Ruttinger, Julia Schönhart, - Thomas Huber, Michael Rabko, Daniela Zierler, Lukas Krisper, Eberhard Ferner, Stefan Jaindl - Gerhard Neuhold, Rudolf Andreas Stumptner, Severin Holzer-Graf, Philipp Koncar, Sandra Fuchs, - Thomas Kugi, Arno Stauder, Tomislav Ausperger, Heimo Ernst Bischofter, Tobias Oblak, - Gerald Gsellmann, Norbert Spot, Sachi Alana Williamson, Saif Aldeen Alsaifi, Angelika Droisner, - Thomas Gruber, Hakan Özkan, Fabian Tschiatschek, Lukas Resch, Andreas Abraham, Michael Peitler, - Bianca Teufl, Daniel Franz Neuhold, Domenik Melcher, Elisabeth Heschl, - Matthias Sebastian Schlesinger, Rene Obendrauf, Rudolf Josef Wagner, Armin Hutzler, - Valentin Kassarnig, Johannes Singer, Stefan Pointner, Andreas Voraberger, Alexander Oberegger, - Florian Winkelbauer, Karl Koch, Lukas Prokop, Philipp Weissensteiner, David Kolb, Martin Burtscher, - Dominik Mößlang, Philipp Kremers, Dominik Widnig, Alexander Oberbucher, Christoph Pilz, - David Strohmaier, Ewald Moitzi, Gottfried Selenko, Markus Hobisch, Matthias Eichhaber, - Michael Koweindl, Samir Ramadani, Stefan Padureanu, Hedwig Höller, - Eva-Maria Trummer, Stefan Galler, Simone Lemmerer, Christopher Jelinek, Abdelbasset Amara, - Thomas Prem, Paul Melbinger, Maria Aumann, Rayna Nikolova, Hans Dieter Knaus, Franz Schreiner, - Peter Pranter, Jakob Unterkofler, Stefan Jaindl, Bernhard Spitzer, - Dominik Ziegler, Daniel Pail, Christine Pichler, Manuel Wallner, - Thomas Fuchs, Marco Meiser, Andreas Müller, Viktoria Schlaipfer, - Armend Zeqiraj, Stefan Neureiter, Thomas Kriechbaumer, - Andreas Hofbauer, Philipp Neidhöfer, Richard Schumi, Max Reinthaler, Max Schafzahl, - Daniel Neuhold, Florian Winkelbauer, Michael Stradner, Artur Knaus, Manuel Jelinek, - Martin Erb, Armin Wieser, Marko Burazer, Matthias Schlesinger, - Markus Hartmair, Christopher Immervoll, Christian M. Hofer, Elena Mashkina, - Roxane Koitz, Christian Burghard, Thomas Laubreiter, Namik Delilovic, Jasmin Salihovic, - Gregor Sitter, Mirhet Saracevic, Tatiyana Domanova, Roland Urbano, Patrick Trummer, Ajdin Vihric, - Rudolf Weißenbacher, Johannes Lüftenegger, Andreas Gladik, - Marc Slavec, Ralph Samer, Bernhard Winter, Daniel Ladenhauf, - Karl Koch, Theresa Egger, Sebastian Krell, Thomas Anderhuber, - Manuel Polzhofer, Adrian Schnedlitz, Andreas Voraberger, Stefan Pointner, - Andrej Müller, Tobias Ibounig, Johannes Kühnel, Bernd Baumann, Gerald Lohnauer, Thomas Kohl, - Thomas Mauerhofer, Daniel Ellmeier, Lukas Radacher, David Prott, Stephan Frühwirt, Christian Benkovic, - Alexander Wieland, Fabian Hartl, Patrik Maier, Claudio Kirchmair, Michael Herold, Jürgen Wurzinger, - Lukas Mayr, Nikolaus Tiesenhausen, Thomas Fötschl, Christian Reisinger, Thomas Schranz, - Phillip Goriup, Markus Nager, Philipp Pfleger, Andrew Deutschmann, - Matthias Müller, Wolfgang Wintersteller, - Alexander Oberbucher, Patrick Radkohl, Werner Arnus, Gerulf Binder, Martin Prinz, Marc Schober, - Darjan Salaj, Thomas Lienhart, Laura Bebek, Illya Boyko, Aiman Awwad, Michael Grebien, Anna Lickl, - Mario Lins, David Marogy, Manuel Haid, Christof Rabensteiner, - Bernadette Spieler, Patrick Radl, André Tropper, Benjamin Bristow, Christian Schindler, - Pascal Steiner, Bianca Jakobitsch, Samuel Sprung, Josef Filzmaier, - Christian Jung, Johannes Zenz, Michael Pittner, Philipp Eisner, - Sebastian Schrimpf, Zulfiqar Ali, Richard Aigner, Georg Schober, Stefan Bürscher, - Kirshan Kumar Luhana, Robert Riedl, - Amel Hamidovic, Adam Ujvari, David Wittenbrink, Thomas Hirsch, Lukas Fritz, - Marco Wallner, Florian Weißensteiner, Lukas Loibnegger, - Amra Dzombic, Wolfgang Karl, Paul Schreiner, Andrej Knaus, Michael Lang, Oliver Zott, - Mario Pagger, Markus Reiter-Haas, Thomas Gruber, Patrick Klampfl, - Denis Munter, Fabian Kofler, Sebastian Gabl, Tobias Striemitzer, Jochen Flachhuber, - Harald Schaffernak, Joachim Lesser, - David Niederkofler, Martin Kerschbaumer, Alexander Kargl, Eric Gergely, Dominik Lindenbauer, - Patrik Hutter, Gregor Liebisch, David Kienreich, Christoph Pozvek, Thomas Leh, - Manuel Schweiger, Reinhold Seiss, Stefan Reichnauer, Julia Viehberger, - Ines Vorraber, Lukas Pichler, Christian Leopold, - Benjamin Wullschleger, Clemens Stary, Dino Keskic, - Florian Schneider, Jakov Matic, Christian Huber, Peter Waldert, Jiaqi Ning, - Anja Reibenbacher, Matthias Fuchs, Thomas Koinig, Josef Kraxner, - Johanna Stefanzl, Patrizia Kamp, Kevin Haslinger, Nishant Thapliyal, - Pushkar Sharma, Abduqodiri Qurbonzoda, Nikolaus Steininger, Christopher Lamprecht, Kirshan Luhana, - Michael Musenbrock, Emanuel Konrad, Dominik Augustin, Martin Pobaschnig, Felicitas Fabricius, Stefan Painhapp, - Dorian Lux, Philipp Fleischhacker, Mattias Fankhauser, Rainer Lankmayr, Sandro Eitzinger, Christoph Breski, - David Löwens, Eduard Elsner, David Andrawes, Michael Tiefnig, Dea Jasini, Artjom Arustamov, Qun Xin Lin, - Fabio Gandolfi, Peter Bürscher, Stefanie Plasch, Lorenz Dirry, Michael Gombocz, Stefan Rinner, Thomas Reichel, - Patrick Andrawes, Khushal Uttam, Dev Sebastian, Markus Gombocz, Patrick Ratschiller, Benjamin Gaal, - Christian Sommerauer, Sebastian Peischl, Dardan Dermaku, David Moling, Florian Laßnig, Bakir Sabljica, - Julian Jautz, Markus Pozvek, Sebastian Weninger, Csongor Hegedüs, Sebastian Gollob, Anei Makovec, Edon Mucaj and Wolfgang Slany. -
-
- -

The Catrobat translators team for all languages besides English and German includes:

- Sercan Akpolat (Turkish, French), Ainul Husna Abdul Muin (Malay), Jia Lin Chong (Malay, Chinese - (Simplified Han)), Denise Hoo (Malay, Chinese (Traditional Han)), Alex Nicoara (Romanian, Russian), - Fatin Ghazi (Malay), Deena Mugien (Malay), Walter Tang (Malay), Kyoko Slany (Japanese), - Jintae Lee (Korean), Shinyoung Kim (Korean), - Farhan Obisat (Arabic), Ivan Venuti (Italian), Gary Green (British English), Benjamin Grant (Australian English), - Hulya Kara (Turkish), Jean Charpentier (French, France), Wijnand Baretta (Dutch), Sjoerd Dirk Meijer (Dutch), - Sander Latour (Dutch), Tatiyana Domanova (Russian), Xenia Beltran (Spanish), Yolanda Ursa (Spanish), - Márta Turcsányi-Szabó (Hungarian), Witold Kranas (Polish), B Maciek (Polish), K Lalinea (Polish), - Piotr Schmidtke (Polish), João Filipe Matos (Portuguese, Portugal), Andrej Müller (Slovenian), - Pascal Sengler (French, France), Hajnalka Torma (Hungarian), Aiman Awwad (Arabic), Voraya Satitpatanaphan (Thai), - Pabhasiri Mahatharadol (Thai), Kalpesh Surati (Gujarati), Sareh Choupani (Persian), Anton Stjernst (Swedish), - Alexei Nicoara (Romanian, Russian), Mirhet Saracevic (Croatian,Serbian), Jasmin Salihovic (Croatian, Serbian), - Arnan Roger Sipitakiat (Thai), Geuk Joong Bang (Korean), Jordi LLi-Beltrán (Spanish), - Kuang Hui Tseng (Traditional Chinese), Nguyen Phuong Thao (Vietnamese), Jamil Khan (Urdu). -
-
- -

Create@School app and "No one left behind (NOLB)" consortium members

- TU Graz: Wolfgang Slany, Bernadette Spieler, Anja Petri, Christian Schindler, Matthias Müller, - Elena Mashkina, Johanna Stefanzl, Peter Kapfer, Stefan Jaindl, Manuel Haid, Florian Weißensteiner, - Eric Gergeley, Andrej Knaus, Sebastian Gabl, Thomas Mauerhofer
- Inmark Spain: María Eugenia Beltrán, Yolanda Ursa, Sabina Guaylupo, Xianshu Zeng
- UPM Spain: Eugenio Gaeta, Gloria Cea Sánchez, Emir A. Bosques Rodriguez
- NTU: Andrew Burton, David Bown, Helen Boulton, Nicholas Shopland
- Hochschule der Medien Stuttgart: Patrick Münster, Christophe Strobbe, Andreas Stiegler
- ZED Spain: Teofilo Redondo, Paula Collazos, Fernando Pérez
- Game City: Jonathan Smith, Dom Martinovs, Rachel Barret
- -
-
- - - - diff --git a/discord-logo.png b/discord-logo.png deleted file mode 100644 index db0e70d..0000000 Binary files a/discord-logo.png and /dev/null differ diff --git a/facebook.png b/facebook.png deleted file mode 100644 index 8d760ee..0000000 Binary files a/facebook.png and /dev/null differ diff --git a/first_steps.html b/first_steps.html deleted file mode 100644 index 241f845..0000000 --- a/first_steps.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - First steps into Catrobat - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools
for smartphones, tablets,
and mobile browsers

-

Home

-
- -
-

First steps into Catrobat


- Hi,
the following lines should help you with your first steps into the Catrobat project.
-
10 January 2015

- -

Assuming you already know developer.catrobat.org your next steps should be: - -

    -
  1. Write some programs using Pocket Code and Pocket Paint, upload your Catrobat programs, and - check out our inspiration source, the Scratch project.
  2. -
  3. Visit us on GitHub
    - As you can see Catrobat is a very large project with a lot of sub-teams. So go ahead and look into them. - Each project should have a readme file so check that out too. There should be viable information for you in it.
  4. -
  5. If you want more information, visit us our - Google+ - Community named Catrobat. If you would like to work with us, please read on.
  6. -
  7. If you want to contribute to our project, please choose one of the sub-projects, you would like to work on. Once - you have chosen a project, we recommend that you checkout the project and play around with it a little.
  8. -
  9. Maybe you find a bug while trying out Catrobat? Awesome. Report it via GitHub. If you can’t find a bug, doesn’t - matter; seems that we have done too much the right way ;)
  10. -
  11. Now is the right time to check out the Issues on GitHub. First fork the project then choose an Issue you can fix --> - first write a regression test for it, and then only fix it.

    - We strictly use Test-Driven Development - and Clean Code (by Robert C. Martin), - so first read everything you can about these development methods. - Code developed in a different style will not be accepted.

  12. -
  13. You have fixed an Issue and written at least one test for it? Awesome. Ask for a review via a Pull-Request in Github.
  14. -
  15. It could take time some time until you hear from us.... In the meanwhile why not choose another Issue or - engage in the community - on Google+. Try to answer questions of visitors or pose questions yourself, if you have still have some.
  16. -
  17. Your Pull-Request has been accepted? Go back to 6.
  18. -
  19. There are no more Issues? Can't be! Go back to 5.
  20. - -
- -

- -
-
- - - - diff --git a/github.png b/github.png deleted file mode 100644 index 8b25551..0000000 Binary files a/github.png and /dev/null differ diff --git a/google-group.png b/google-group.png deleted file mode 100644 index dab0148..0000000 Binary files a/google-group.png and /dev/null differ diff --git a/google_play_pocket_code.png b/google_play_pocket_code.png deleted file mode 100644 index 73b4190..0000000 Binary files a/google_play_pocket_code.png and /dev/null differ diff --git a/google_play_pocket_paint.png b/google_play_pocket_paint.png deleted file mode 100644 index baeddf6..0000000 Binary files a/google_play_pocket_paint.png and /dev/null differ diff --git a/googleplus.png b/googleplus.png deleted file mode 100644 index a4ac8af..0000000 Binary files a/googleplus.png and /dev/null differ diff --git a/gsoc_2016_ideas_page.html b/gsoc_2016_ideas_page.html deleted file mode 100644 index bbe4fdd..0000000 --- a/gsoc_2016_ideas_page.html +++ /dev/null @@ -1,589 +0,0 @@ - - - - - - Ideas Page - - - - - - -
-
-

Catrobat

-

- A visual programming language -
- and set of creativity tools -
- for smartphones, tablets, -
- and mobile browsers -

-

- Home -

-

- Developers' Home -

-

- First steps into Catrobat -

-

- Find Pocket Code on Google Play -

-

- -

-
- -
-

Ideas Page for Google Summer of Code 2016

-
- Welcome, -
- we officially present our project ideas for this year's Google Summer of Code.
-
- 09 February 2016

- -

- General knowledge prerequisites for all projects -
- JUnit and Robotium for test-driven development on Android devices (Pocket Code and Pocket Paint), Phpunit and Selenium for test-driven development of Web-related projects, Git (revision control) for all projects
-

- - -

-

Overview:

- -

- -

-

Projects

- - Title: Raspberry Pi Feature extension -
- Brief explanation and expected results: -

-

    -
  1. use GPIO pins: set pin, read pin, set PWM values
  2. -
  3. Extend Raspberry Pi Features -
      -
    • sensors: allow to attach several sensors which can be enabled/configured within the preferences (I2C, onewire bus, thermometer, microphone, ...)
    • -
    • actors: allow to attach several (more complex) actors and configure them via preferences (IR-sender, ...)
      - -> see sensor/actor examples
    • -
    • play sounds on RaspberryPi
    • -
    • run user-defined scripts on RaspberryPi
    • -
    • encrypted communication (TLS)
    • -
    • allow to use multiple RPi's
    • -
    • attach a camera on a RaspberryPi, add commands to take a photo and use it within Pocket Code
    • -
    • attach a display on a RaspberryPi, make it available in Pocket Code
    • -
    • add a discovery protocol to the RPi: Avahi/Zeroconf/Bonjour
    • -
    • use HDMI output of RaspberryPi (similar to chromecast project).
    • -
    -
  4. -
  5. Demo application: build a small Robot using Raspberry Pi (including a tutorial)
  6. -
-

- Mentor: Roland Urbano -
-
- - Title: Social Media Features -
- Brief explanation and expected results: -

- List of diverse social media features: -

    -
  1. "Upload & share" of Pocket Code programs (existing upload functionality + user-defined post on Facebook/Google+ with link to the program)
  2. -
  3. Social Challenging System: After "Upload & Share" functionality a challenging system can be build: Add a possibility to challenge friends with games directly created in Pocket Code (e.g. with a highscore displayed by Show-/Hide-Variable Bricks) via in-app notifications. This should include a link to the uploaded program and a short text.
  4. -
  5. Create a possibility to add looks and sounds from flickR (Creative Commons content), Picasa, Facebook (via Facebook Graph API) and Instagram.
  6. -
  7. Likes & Sharing of programs on the Pocket Code website (pocketcode.org) (UX guidelines already existing).
  8. -
  9. Add more social media platforms: e.g. Twitter, Instagram, WhatsApp (depending on the social media platform-related activities of Pocket Code's target group, which is currently being analyzed).
  10. -
  11. Facebook & Google+-Login for iOS
  12. -
-

- Mentor: Annemarie Harzl -
-
- - Title: Pocket Code Refactoring UI -
- Brief explanation and expected results: -

- The feature/brickUI branch is waiting to get implemented. It will improve our usage of Android, removes a lot of code, eases new brick creating and also any adaption (and fixes) in bricks will be more quickly and less error-prone.
- In detail:
- This feature branch separates the bricks from the UI. The whole logic will be located in the fragments, adapts classes and in the ViewProviders of the bricks. All checkboxes will be replaced by checkable layout and therefore the test classes have to change as well. Especially all brick related tests must be refactored and it is recommended to change them to espresso tests.
- Currently there are a lot of JIRA tickets waiting to get fixed and implemented. Fixing refactoring tickets will fix other bugs and ease testing automatically, improving the overall quality. Choosing a proper Student and Mentor is essential. - - The existing JIRA tickets
-

    -
  • recommend test refactoring or implementation of missing test classes
  • -
  • concern with performance and code quality issues or inconsistancies
  • -
  • clean up and fixes e.g. packages and certain files like format of XML files
  • -
  • include checkstyle rules for naming conventions, code formatting issues etc.
  • -
-

- Mentor: Robert Painsi -
-
- - Title: Groups & Scenes in Pockte Code -
- Brief explanation and expected results: -

- - Object grouping -

Object grouping is a feature to structure one’s Pocket Code program at object level. The purpose of introducing object grouping is to keep them together and make the object view more concise and overseeable. The depths of groups is limited to 1 which means there no nested groups (subgroups) are possible. A group is like an object but it can be expanded and collapsed to either show its containing objects or hide them. A group looks like an object with the only difference that it has an expand/collapse widget. The group’s icon is inherited from the first object in the list of containing objects. The selected group could be coloured in a different way.

- Scenes -

The introduction of “scenes” in Pocket Code should ease the creation of large programs by abstraction of semantically coupled objects including code, looks and sounds into independent sub units. This makes programming of different scenes (levels) of a game insofar easier that only those backgrounds and objects which are used in this particular scene (level) are active, can be accessed by scripts and are subject to execution. A scene can be seen as an independent Pocket Code program. A Pocket Code program containing scenes can be seen as a collection of independent Pocket Code programs (scenes) where a smooth transition is possible during program execution

-

- Mentor: Christian Schindler -
-
- - Title: Pocket Code Usability improvements -
- Brief explanation and expected results: -

- To create a better user experience and improve the navigation in Pocket Code, some usability improvements should be implemented in the project. The main points of these improvements refer to the quality of the navigation in the Pocket Code app, programming with Pocket Code, other points for representation and new Bricks. - Navigation: -

    -
  • remain at the same place in the menu (e.g. script view, list of objects/programs, ...) after having switched to some other place or deleting an element of the list
  • -
  • rename the current program
  • -
  • graphical hints/toasts, like a long press dialog to show the opportunity to use long press and find more functionality
  • -
  • swipe gesture to switch between program overview and current program or to switch between scripts and hints
  • -
  • change the behaviour of short-/longpress on bricks for moving a brick or opening the brick menu
  • -
- - Programming: -
    -
  • send variables within messages to improve the interaction between objects
  • -
  • re-organization of the control bricks to separate events from other control bricks (improve the overview of the bricks)
  • -
  • moving an "if-statement" should move the whole if-block
  • -
  • showing also the value of a local variable on the stage
  • -
  • set the color and size of the shown variable on the stage
  • -
- - Representation: -
    -
  • remove the colon after variable names
  • -
  • possibility to show long comments within the note brick
  • -
  • show project details like description, author, screen resolution, ...
  • -
  • increase the limit of the length of a text that should be shown at the stage
  • -
- - New Bricks and Loops
- - When working with pupils/students in our workshops it has been shown that some more features are required in Pocket Code to improve the experience with Pocke Code. - Therefore new bricks should be implemented in the project: -
    -
  • wait until / repeat until
  • -
- With these bricks its easier to create loops or sleeps with a termination condition. - This could be essential e.g. for making games, where you often have to wait or repeat something until a condition occurs. - -
    -
  • if then (without else)
  • -
- - Create a separate if-brick without an else brick, like we know it from common programming languages. - This brick increases the overview of the bricks, especially with some encapsulated if-conditions. - -
    -
  • switch to previous look
  • -
- - Like the brick "next look" there should be a brick "previous look" to switch also backwards in the list with the different looks for an object. - -
    -
  • switch backdrop to ___
  • -
- - With this brick it's possible to change the backdrop without using a broadcast-message from an object to the background. -

- Mentor: Anja Petri -
-
- - Title: Feature Completeness (Scratch) -
- Brief explanation and expected results: -

- There are still several bricks and features which are available in Scratch, but not in Pocket Code. First, These features and bricks are needed to have an more improved programming experience and second in order to have a working Scratch2Catrobat programs converter. // The following features and bricks will be part of this project: -

- Pen/Stamp:
- - Pocket Code is missing the pen bricks from Scratch. The aim of this project is to implement these missing bricks. Pen blocks in Scratch 2.0 are used to draw something on the screen, much like in Turtle graphics. There are eleven bricks in this category. Pen bricks allow to take various actions:- Stamp the sprite - Put the pen down - Release the pen // One example of a one sprite one script project is a simple drawing program. See http://wiki.scratch.mit.edu/wiki/Pen_Blocks -

-

- Cloning:
- - Cloning in Scratch 2.0 is a feature that allows a sprite to create a clone, or duplicate, of itself, while the project is running. This can be useful in tower defense games, for example, for a wave of objects. Clones of a sprite will be the same as the original, or parent sprite, but as a separate instance (see http://wiki.scratch.mit.edu/wiki/Cloning). 3 additional bricks are required - these bricks are "create a clone", "delete clone" and as script brick "when I start as clone", just like in Scratch. -

-

- Object collision / with color / movement:
- - To detect collisions between object is an essential game element - every shooter, race or skill game needs this feature. - There are three different kinds of collision detections planned: -

    -
  • (touches) with other object: like in Scratch: Brick "touching finger/edge/object",
  • -
  • object collision (touches) with certain color e.g. like in Scratch: Brick "touching color___",
  • -
  • Camera look in combination with movement, extension: camera onsprite/onstage (see Scratch)
  • -
-

-

- Ask Brick
- - Possibility to have a text input field in state. The user can reply to this answer via the text input field. After that this answer is stored in a program variable (like in Scratch, Brick: "Ask____" + answer) -

-

- Missing Bricks
- - To ensure brick completeness with Scratch the following bricks are missing: -

    -
  • Move Brick: "go to ____" - finger/object
  • -
  • Sensing Brick: "distance to ____" - finger/object
  • -
  • Sensing Brick: timer + reset timer (timer is a variable in FE)
  • -
  • Sensing Brick: current (minute, month, date,….)
  • -
  • Look Brick: change/set color
  • -
  • Move Brick: set rotation style: don't rotate, left-right, all-around
  • -
-

-

- Mentor: Bernadette Spieler and Thomas Hirsch -
-
- - - Title: HTML5 Player Release -
- Brief explanation and expected results: -

- HTML5 Player first release. -

    -
  • Testing Sprites, RenderingImage, Canvas GameEngine, Device
  • -
  • Find and fix issues with Sprite positioning on the canvas
  • -
  • Support for device sensors, testing
  • -
  • Testing User Interface
  • -
  • Testing Sensor Bricks for upcoming catrobat releases
  • -
  • Handle compatibility issues with certain audio formats
  • -
-

- Mentor: Annemarie Harzl -
-
- - Title:Remixes Web -
- Brief explanation and expected results: -

- Feature to split remixed programs into their components. -

    -
  • In Pocket Code, a remixed program is the result of two parent programs which were used by a student to craft a hybrid version of these two programs.
  • -
  • The aim of this project is to properly split the result of the remix process into its two parent programs.
  • -
  • Analyze components
  • -
  • Match contained objects with the ones of the original programs
  • -
  • Split remix apart
  • -
  • Testing
  • -
-

- Mentor: Marko Burazer -
-
- - Title: Gamepad / Overlay -
- Brief explanation and expected results: -

- The idea behind this feature is that the the user can create a game or app with additional gamepad controls. While playing their game an overlay gamepad is used to control the movements. To minimize view obstruction by the overlay joy-pad, it would only be visible if the user taps screen. The joy-pad location would be determined by each tap and the following gesture (e.g.: swipe up) would be taken as the movement. -
- When the screen is not tapped the joy-pad would be almost transparent. -

- Mentor: Thomas Schranz -
-
- - Title: Screen touched (Single Finger) & Multi-touch finger positions -
- Brief explanation and expected results: -

- New sensor variable is to be developed indicating if a finger currently touching the display and representing x- and y-position of the finger currently touching the display. -
- The sensor names are: -

    -
  • is_finger_touching
  • -
  • finger_x
  • -
  • finger_y
  • -
- If more than one finger is touching the display the is_finger_touching is true until ALL fingers are removed from the display. If more than one finger is touching the display the x and y coordinates of the finger which hit the surface last will be stored in finger_x and finger_y -
- Implement multitouch recognition and the use of current finger positions as sensor values. Furthermore basic gesture recognition (e.g.: swipe up) could also be implemented allowing the users to create more complex and fun games and apps. -

- Mentor: Matthias Müller -
-
- - - Title: Expert Mode for Pocket Code -
- Brief explanation and expected results: -

- Experts or people that are spending a lot of time in Pocket Code or with larg projects will benefit from the following options: -
- Bricks 2D
- - This feature is a “Mission Control” view mode. Each object has a set of scripts which can only be scrolled through at the moment. This list can easily get long and very difficult to overview. A two finger pinch inward gesture (zoom out) would be used to enable this view, where all the scripts would be displayed side by side on one screen. By tapping anywhere or a two pinch outward gesture (zoom in) would take the user back to the original view. Fluid animations would ensure a smooth look. - -
- Comment out
- - Each object has a set of scripts that define its behaviour. This “comment out” feature would allow to disable a script and make it visually distinguishable from the active ones. This would mean that the users would no longer have to delete a script if they would want to temporarily disable it. - -
- Debug Mode
- - When pausing the game a new “enable debug mode” button would display a set of useful information. This includes variable values, sensor data and the momentarily executed scripts. Additionally a step by step code execution could be implemented. -

- Mentor: David Marogy -
-
- - - - Title: Pocket Code - Integrate S2C -
- Brief explanation and expected results: -

- The ScratchToCatrobat converter is one of our most important undertakings and exists to fill the gap between the well known Scratch system and our Pocket Code project. - It empowers kids to run their self-made Scratch projects on their own phone. Our converter service is hosted on one of our servers that provides a very simplistic web interface for our users. -
- In order to convert a Scratch program users have to perform the following steps: -

    -
  1. search for a program on the Scratch website
  2. -
  3. visit the webpage of our converter server on their phone/tablet device
  4. -
  5. enter the URL or project ID of the Scratch project
  6. -
  7. Download the converted Catrobat program and open it with Pocket Code
  8. -
- This workflow is very cumbersome/tedious for users and requires using at least two different apps (browser and Pocket Code) which leads to unwanted media disruptions. -
- Tasks for this project: -
    -
  • integrate Scratch search (with Autocomplete) into our Android Pocket Code app
  • -
  • list of all converted programs (app)
  • -
  • progress view for currently converted programs (app)
  • -
  • websocket client (communicates with our converter web service) (app)
  • -
  • websocket service (server)
  • -
  • Google Authentication (used to identify users and to store & share converted programs with other Android devices) (server & app)
  • -
-

- Mentor: Wolfgang Slany -
-
- - - - Title: Small Sumo Drone -
- Brief explanation and expected results: -

- The goal for this project is to provide functionality and integration of the Parrot Airborne Drone for the Catrobat project. The most important parts include the connection to the drone, the transmission of the controls as well the visual data transmission. -
The basic structures for the drone support on the application side is already given by the previous work. The challenge will be to create a clean interface for the communication between application and drone. - -
After the project it should be possible to control a Airborne Drone in the same way as the already implemented AR.Drone2.0. This includes the basic movement as takeoff and land, gain and loose altitude, change direction in which the drone is heading and the actual movements (forward, backward and to the sides). - -
Each of this movements should be completely customizable through one individual Catroid Brick. Furthermore the video transmission of the drone should be displayable anywhere on the screen in different sizes. -

- Mentor: Markus Hobisch -
-
- - - Title: HTML5 Player - Compatibility / Feature Completeness (Scratch) -
- Brief explanation and expected results: -

- The HTML5 Player uses a costom JSON project format that was design to be compatible to both, the original pocket code as well as the current scratch file format. - Most of the features (differences) between PocketCode and Scratch are already part of our current HTML5 players design. - There are still several bricks and features which are available in Scratch, but not in Pocket Code. First, These features and bricks are needed to have an more improved programming experience and second in order to have a working Scratch2Catrobat programs converter. -
- The following features and bricks will be part of this project: -

- Server (PHP):
- Unzip and convert/parse a Scratch project file into a HTML5 project file. - Add serverside DTOs for bricks currently not supported. -

-

- Client (javascript):
- Extend the look object to provide PocketCode/Scratch compatibility. - Override the current Sprite object to generate Scratch based redering output (sprite positioning, direction, brightness, filters) if not implemented yet.
- Add missing bricks (described below) in cooperation with the PocketCode team working on the same stories in PocketCode: -

-

- Pen/Stamp:
- Pocket Code is missing the pen bricks from Scratch. The aim of this project is to implement these missing bricks. Pen blocks in Scratch 2.0 are used to draw something on the screen, much like in Turtle graphics. There are eleven bricks in this category. Pen bricks allow to take various actions:- Stamp the sprite - Put the pen down - Release the pen // One example of a one sprite one script project is a simple drawing program. See http://wiki.scratch.mit.edu/wiki/Pen_Blocks -

-

- Cloning:
- Cloning in Scratch 2.0 is a feature that allows a sprite to create a clone, or duplicate, of itself, while the project is running. This can be useful in tower defense games, for example, for a wave of objects. Clones of a sprite will be the same as the original, or parent sprite, but as a separate instance (see http://wiki.scratch.mit.edu/wiki/Cloning). 3 additional bricks are required - these bricks are "create a clone", "delete clone" and as script brick "when I start as clone", just like in Scratch. -

-

- Object collision / with color / movement:
- To detect collisions between object is an essential game element - every shooter, race or skill game needs this feature. - There are three different kinds of collision detections planned: - - (touches) with other object: like in Scratch: Brick "touching finger/edge/object", - object collision (touches) with certain color e.g. like in Scratch: Brick "touching color___", - Camera look in combination with movement, extension: camera onsprite/onstage (see Scratch)

-

- Ask Brick
- Possibility to have a text input field in state. The user can reply to this answer via the text input field. After that this answer is stored in a program variable (like in Scratch, Brick: "Ask____" + answer) -

-

- Missing Bricks
- To ensure brick completeness with Scratch the following bricks are missing: -

    -
  • Move Brick: "go to ____" - finger/object
  • -
  • Sensing Brick: "distance to ____" - finger/object
  • -
  • Sensing Brick: timer + reset timer (timer is a variable in FE)
  • -
  • Sensing Brick: current (minute, month, date,….)
  • -
  • Look Brick: change/set color
  • -
  • Move Brick: set rotation style: don't rotate, left-right, all-around
  • -
-

-

- Mentor: Christopher Immervoll -
-
- - - Title: HTML5 Player/Project browser: UI Extensions -
- Brief explanation and expected results: -

- Extend the current HTML5 Player to provide several new UI features: -

    -
  • Search/browse/load projects within our player application
  • -
  • Store latest projects executed using a HTML5 local store
  • -
  • Provide a quick start (home screen) icon for mobile to launch our player directly
  • -
  • Provide a menu or buttons to select UI language
  • -
  • Provide a menu or button as well as logic to switch to full screen (mobile)
  • -
  • Extend the Page object to provide a mobile alike navigation
  • -
  • Write a visual (HTML, css) represention for existing bricks so users can also browse the projects code (read only)
  • -
-

- Mentor: Thomas Hirsch -
-
- - Title: HTML5 Player: Rendering + Physics -
- Brief explanation and expected results: -

- Our player currently makes use of the fabricJs library to render sprites to our viewport. - We only use fabricJs to draw sprites and handle click/tab events- therefor the wohle framework is a huge overhead (even if custom compiled). - Our application was already designed to replace this library to enable individual caching logic on sprites and looks. -

    -
  • make a desition on how to replace the fabricJs library with an individual rendering engine (design)
  • -
  • replace fabricJs and
  • -
  • write/rewrite all required test cases
  • -
- Physics is going to be release soon and there is currently no support: -
    -
  • Extend the serverside code (PHP)
  • -
  • Override the current sprite object to get a physics enabled sprite object based on the PocketCode (java) implementation
  • -
  • Implement missing bricks
  • -
  • Implement unit tests for all extensions made
  • -
-

- Mentor: Paul Schreiner -
-
- -

- Your own project ideas ... -
-

- Please do not hesitate to bring forward your own ideas and discuss them with the Catrobat team members at #catrobat on Freenode or by contacting us via catrobat@googlegroups.com! -

-

- - -
-
- - - - - diff --git a/gsoc_2017_ideas_page.html b/gsoc_2017_ideas_page.html deleted file mode 100644 index 3139c23..0000000 --- a/gsoc_2017_ideas_page.html +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - Ideas Page - - - - - - -
-
-

Catrobat

-

- A visual programming language -
- and set of creativity tools -
- for smartphones, tablets, -
- and mobile browsers -

-

- Home -

-

- Developers' Home -

-

- First steps into Catrobat -

-

- Find Pocket Code on Google Play -

-

- -

-
- -
-

Ideas Page for Google Summer of Code 2017

-
- Welcome, -
- we officially present our project ideas for this year's Google Summer of Code.
-
- 08 February 2017

- -

- General knowledge prerequisites for all projects -
- JUnit and Robotium for test-driven development on Android devices (Pocket Code and Pocket Paint), Phpunit and Selenium for test-driven development of Web-related projects, Git (revision control) for all projects
-

- - -

-

Overview:

- -

- -

-

Projects

- - Title: HTML5 Physics Engine -
- Brief explanation and expected results: -

PocketCode provides several code bricks for physics-enabled sprites: -

    -
  • SetPhysicsObjectTypeBrick
  • -
  • SetVelocityBrick
  • -
  • RotationSpeedLeftBrick
  • -
  • RotationSpeedRightBrick
  • -
  • SetGravityBrick
  • -
  • SetMassBrick
  • -
  • SetBounceFactorBrick
  • -
  • SetFrictionBrick
  • -
  • WhenCollisionBrick
  • -
- - A basic implementation of the bricks is already available (setter, getter) but these values are currently not supported (ignored). - The physics engine will take care of these settings and render the physics states parallel to our current rendering engine supporting the same interfaces. - The engine should work on desktop and mobile browsers. - Some tasks you will have to accomplish: -
    -
  • Work on the specification together with your mentor
  • -
  • Calculate vertices from images
  • -
  • Replace the current look object with a physics object (physics sprite)
  • -
  • Calculate physics states of all physics objects per rendering frame
  • -
  • Rewrite existing code where conflicts occur between rendering engines (ifOnEdgeBounce, rotationType, whenCollision, ..)
  • -
  • Unit- & integration- testing (several devices, browsers, ..)
  • -
  • ...
  • -
- - -

- Desired Outcome: HTML5 Player supporting all physics bricks
- Mentor: Matthias -

-


- - Title: iOS: Implementation of missing Bricks and Sensors -
- Brief explanation and expected results: -

- - In order to be able to support Catrobat Language version 0.991 it is necessary to implement a set of missing Bricks and Sensors.
- - New Bricks: -

    -
  • CameraBrick
  • -
  • ChooseCameraBrick
  • -
  • IfThenLogicBeginBrick
  • -
  • RepeatUntilBrick
  • -
  • WhenTouchDownBrick
  • -
- - New Sensors: -
    - -
  • screen_touch_x
  • -
  • screen_touch_y
  • -
  • screen_touch_x(1)
  • -
  • screen_touch_y(1)
  • -
  • screen_is_touched(1)
  • -
  • last_screen_touch_index
  • -
  • color
  • -
- - Tasks your have to accomplish: -
    -
  • Create data models for new Bricks
  • -
  • Implement serialization and deserialization
  • -
  • Implement Brick visualization and related UI actions
  • -
  • Implement new logic in Player Engine
  • -
  • Write unit & integration tests
  • -
- - -

- Desired Outcome: Support of all Bricks and Sensors for Catrobat Language version 0.991 (except physics bricks)
- Mentor: Michael -

-


- - Title:Catroid-Core: Refactoring Code -
- Brief explanation and expected results: -

- Refactor code to improve: -

    -
  • readability
  • -
  • maintainability
  • -
  • testability
  • -
  • PMD, CPD, Findbugs and LINT checking
  • -
- Architectural changes to -
    -
  • comply with Android guidelines
  • -
  • comply with software design patterns
  • -
  • enforce testability and introduce and enforce the use of MOCKing
    -
  • give architectural overview as documentation for future developments with tangible examples
    -
- -

- Desired Outcome: Slimmer, maintainable, clean code compliant, more stable, more robust, Pocket Code version using architectural Patterns rather than Antipatterns
- Mentor: Christian -

-


- - Title: Catroid-Core: Refactoring Ui Tests -
- Brief explanation and expected results: -

-

    -
  • Transition from Robotium to Espresso framework for the GUI-tests and therefor getting rid of unnecessary waits
  • -
  • Get rid of Polidea testrunner
  • -
  • Get rid of redundant, flaky and broken tests
  • -
  • Create meaningful tests compliant with clean code rules
  • -
  • Get rid of reflections
  • -
  • Get rid of reflections in tests to introduce and enforce the use of MOCKing
  • -
  • Setting up proper gradle tasks and jenkins integration
  • -
  • Create guidelines as documentation in confluence how to test in this project with tangible examples
  • -
-

- Desired Outcome: Refactored, slimmer test harness using Espresso instead of Robotium and introduce and enforce the use of Mocking framework
- Mentor: Thomas -

-


- - - Title: Catroid-Core: Refactoring Unit Tests -
- Brief explanation and expected results: -

-

    -
  • Review of existing JUnit tests and splitting them in two groups, actual Unit tests and Integration tests
  • -
  • Re-implement subset of UiTests that do not require a Ui as integration/unit tests
  • -
  • Get rid of Polidea testrunner
  • -
  • Get rid of redundant, flaky and broken tests
  • -
  • Create meaningful tests compliant with clean code rules
  • -
  • Get rid of reflections
  • -
  • Get rid of reflections in tests to introduce and enforce the use of MOCKing
  • -
  • Setting up proper gradle tasks and jenkins integration
  • -
  • Create guidelines as documentation in confluence how to test in this project with tangible examples
  • -
-

- Desired Outcome: Refactored, slimmer and more robust JUnit tests, introduction of a new test group of integration tests (technically based on JUnit), and enforce the use of Mocking framework
- Mentor: Wolfgang -

-


- - - Title:Catroid-Core: Refactor/Introduce Flavoring (Flavoring NEW) -
- Brief explanation and expected results: -

-

    -
  • Meaningful, stable, robust, way to activate additional unique features in Pocket Code which are not the core functionality like, e.g., education features needed for school courses (Dashboard, Analytics)
  • -
  • Feature de/activation must have an impact on the size of the APK - in terms of footprint of the resulting APK, the less flavor features are activated the smaller the footprint
  • -
-

- Desired Outcome: Working flavoring as a base for integration of Pocket Paint and other functionality beside the core Pocket Code functionality
- Mentor: Bernadette -

-


- - Title: Pocket Code - Pocket Paint: Integrate Pocket Paint AS a Flavor into Pocket Code -
- Brief explanation and expected results: -

-

    -
  • Pocket Paint should be a flavor of Pocket Code. This makes sense to integrate Pocket Paint into Pocket Code (no need to install both anymore). But it also allows to publish Pocket Paint still as a standalone app in the Google Playstore, as until now.
  • -
  • Pocket Paint should be integrated into Pocket Code in a way that it can be set to be build as a standalone APK and also published as such in the Google Playstore.
  • -
  • The footprint must be according the used features - smaller than with activated Pocket Code.
  • -
-

- Desired Outcome: Make Pocket Paint a flavor of Pocket Code
- Mentor: Annemarie -

-


- - - - Title: UX Redesign of Pocket Code -
- Brief explanation and expected results: -

-

    -
  • Redesign GUI for Pocket Code - look and feel as it was done in Pocket Paint the last year
  • -
  • Detailed Guideline for the Redesign, in respect of material design, will be provided
  • -
-

- Desired Outcome: Redesign of all GUI Elements according the current Android and the worked out UX guidelines
- Mentor: Sebastian -

-


- - - Title: iOS: Create your own Bricks - User Bricks -
- Brief explanation and expected results: -

- User Bricks provide the functionality to create custom scripts which allow one to reuse user-defined functionality across objects without duplicating Bricks. This is the Catrobat-equivalent to "Custom Blocks" in Scratch.
- Tasks you have to accomplish: -

    -
  • Create data model -
  • Implement serialization and deserialization -
  • Provide a user interface to create and edit User Bricks -
      -
    • Each User Bricks consists of a header and a number of normal Bricks
    • -
    • The header of a User Brick can contain text and variables which can be used within the User Brick
    • -
  • -
  • Integrate in Player Engine
  • -
  • Write unit & integration tests
  • -
-

- Desired Outcome: User should have the possibility to create custom scripts which can be reused without duplicating Bricks
- Mentor: TBA -

-


- - - Title: HTML5: UserBricks (Scripts + CallUserScript) -
- Brief explanation and expected results: -

Parser: Parsing the user scripts (early version) is already available in our backend (PHP). There may be the need of customization the parser and adding unit tests for the backend. -Client: -

    -
  • load the userScripts into our gameEngine
  • -
  • brick logic for calling the scripts
  • -
  • adjusting parser/formula objects to execute code in a new scope (e.g., using script parameters instead of local/global variables)
  • -
  • extend the sprite cloning brick to clone the user scripts as well if necessary
  • -
  • make sure the stopScriptBrick is handled correctly when placed inside a userScript
  • -
  • unit + integration testing (several platforms, browsers, ..)
  • -
-

- Desired Outcome: HTML5 Player supporting user defined scripts and the brick calling theses scripts
- Mentor: TBA -

-

-


- - - Title: Pocket Code: Inclusion of Firebase -
- Brief explanation and expected results: -

-

    -
  • Integrate Firebase Funnels feature to track success rate of login, etc.
  • -
  • Integrate Firebase FCM (Firebase Cloud Messaging) feature so we can
  • -notify our user of cool coding events. -
  • Improve manual bug reporting to also report defects which doesn't -cause the app to crash.
  • -
  • Fix Firebase crash reports.
  • -

- Desired Outcome: Firebase implemented in Catroid and producing useful output
- Mentor: Robert -

-

-


- -

- Your own project ideas ... -
-

- Please do not hesitate to bring forward your own ideas and discuss them with the Catrobat team members at #catrobat on Freenode or by contacting us via catrobat@googlegroups.com! -

-

- - -
-
- - - - - diff --git a/gsoc_2018_ideas_page.html b/gsoc_2018_ideas_page.html deleted file mode 100644 index 002fef3..0000000 --- a/gsoc_2018_ideas_page.html +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - Ideas Page - - - - - - -
-
-

Catrobat

-

- A visual programming language -
- and set of creativity tools -
- for smartphones, tablets, -
- and mobile browsers -

-

- Home -

-

- Developers' Home -

-

- First steps into Catrobat -

-

- Find Pocket Code on Google Play -

-

- -

-
- -
-

Ideas Page for Google Summer of Code 2018

-
- Welcome, -
- we officially present our project ideas for this year's Google Summer of Code.
-
- 29 Jan 2018

- -

- General knowledge prerequisites for all projects -
- JUnit, Robotium and Espresso for test-driven development on Android devices (Pocket Code and Pocket Paint), basic knowledge in app development (Android or iOS, depending on the project) and of course Git (revision control) for all projects. Also please check that you have sufficient hardware (e.g. a Android/iOSsmartphone for testing) for the development, since we can't provide you any for the coding period.
-

- -

- General information about the ideas -
- These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g. new feautes, extensions,...) that are related to the project and you're interested in :) We do have many senior-contributors who would be happy to mentor such a project ;) Don't be shy and check out the last point on the list: Your idea!
-

- - -

-

Overview:

- -

- -

-

Projects

- - Title: Include Paintroid into Pocket Code -
- Brief explanation and expected results: -

Make Pocket Paint a subproject of Pocket Code: Currently Pocket Paint is an individual app on Google Play. However, since it is primarily used in connection with Pocket Code, it makes sense to merge these two apps into one. Instead of being an individual app, we want it to be included into Pocket Code - keeping the same functionality, but improving the User Experience for the user. Several challenges occur that will have to be considered for this project: How do modularize the code to make keep it maintable and keep a good performance? How to test it properly? How to resolve issues that result from the fact that these have been two different projects in the past? And also are there parts of the code that might be refactored during this process easily? -

- More Information:
-
  • Pocket Paint should get integrated into Pocket Code
  • The final outcome should be a subproject similar to Pocket Music
  • Remove any memory hogs (singletons, unecessary static variables)
  • Merge activites which offer functionality already present in Pocket Code (e.g. language selection)
  • Adapt namespaces
  • Refactor unit and integration tests
  • Move resources and assets (Reuse if possible)
  • Integrate strings from crowdin, avoid duplication if possible
-

-


- - Title: Testing, Testing, Testing -
- Brief explanation and expected results: -

increased code coverage, consolidated and more stable test setup, production code refactored with a focus on better testability -

- Desired Outcome:
- More Information:
- - Code coverage wise theres a lot of work to do. The recent frontend refactoring that switched big portions of the ui to now utilize android recycler view only comes with a rather basic set of tests, more tests have to be put in place here.
- - Theres quite a lot of room for improvement when it comes to testable code, eg. encapsulating storage handling, problems that arise due to handing context deeper and deeper into classes that should not need it in the first place, etc. Those should be refactored and tests cleaned up accordingly.
- - Also going hand in hand with the task above, refactoring the existing test utilities (especially with unit tests) to enforce a more object oriented approach towards testing. (Historically in this project tests were almost exclusively treated as if one could only use an imperative approach for writing tests)
- - Unit and Espresso test sets are currently running on our Jenkins instances, but a few subsets of tests are currently not part of any automated run, eg. device tests, sensor test box tests, etc. Jenkins jobs for those subsets should be written, the existing test annotations can be used, and all jobs should be consolidated. -

-


- - Title: Refactoring Part 2: Bricks -
- Brief explanation and expected results: -

UI and Interpreter are completely separate. UI adheres to Material Design Guidelines. -

- More Information:
-In GSoC 17 the UI was refactored, however, the Bricks are still unchanged. The Bricks as a visual representation of the LibGdx actions should be completely separate. Standalone APKs would then finally be independent from the UI.
he storage handling and the hierarchy suffered greatly when Scenes were introduced, this has to be changed. The internal structure of scripts is horrific → lists with dependencies and duplicate cross references. A solution would be to implement
a tree structure instead (but could also be something else). Broadcasting is currently being refactored, but integration is still an open and hot topic. -

-


- - Title: iOS: Devices Sensors and Code Refactoring -
- Brief explanation and expected results: -

Match iOS sensor ranges with Android specification. The student needs to come up with a design to enforce testability and the use of Mocking -

- More Information:
-Devices Sensors and Code Refactoring

The Pocket Code app makes use of a variety of device sensors like inclination, compass, loudness, face detection and much more.

On both, the Android and the beta version of iOS, called "Catty", these sensors are widely used in a large number of user-built programs.

Current Situation:

The Android version of Pocket Code and Catty are currently handling sensors in a different way resulting in a varying interpretation of sensor values (e.g. differing ranges of values). Additionally, many sensors get initialised with a differing default value.

Due to these deviations, many Catrobat programs behave differently depending on whether executed on the Android or Catty version.

Planned Improvements:

Catty should be refactored so that the handling of sensors, the conversion of ranges and the initialisation happens in a synchronized, highly performant and more-readable way.

Additionally, a suitable test framework for sensors needs to be introduced. The student needs to come up with a design to enforce testability and enforce the use of Mocking.


-

-


- - Title: Robotic arm for testing device sensors -
- Brief explanation and expected results: -

A Framework for automated testing of Device's sensor with a Roboarm connected to Jenkins

- More Information:
-

Include a Roboarm (e.g.such one available from Conrad) into the automatic Jenkins test pipeline to test following sensors: -

    -
  • accelleration
  • -
  • magnetic sensor
  • -
  • Proximity sensor
  • -
  • Inclination x/y/z
  • -
-The robotic arm is to be interfaced with a Raspberry Pi. An Android testdevice is to be mounted on the robotic arm in a way, that it can be easily unmounted, that it has working USB Connection to the Jenkins, to upload the testsuite and run the tests. A REST-ful service has to be implemented which runs on the Raspberry Pi which takes commands to move the robotic arm in a way which is needed for testing the sensors in the device. The server mus be accessible via the network and accept command from the tests running on the device. Tests for this device test suite for the aforementioned sensors are to be written, that the device can be moved with the robotic arm and the sensor data can be read out and compared to expected values. A jenkins test job has to be implemented to run the sensor-tests on the device. -

-


- - Title: Scratch compatibility - Color Collision -
- Brief explanation and expected results: -

Bricks for Collisions: Object-with-Color: object with color in backgorund or other sprite; Color-with-Color: define a color of a sprte colliding with another color -

- More Information:
-

-For collision detection it should be possible to define a color that an object collides with either in the backgorund or in any other sprite on the screen. Next step is to detect that a certain color of the sprites collides with a certain color in backgorund or in any other sprite. Here must be paid attention to the position of the layer the sprite is rendered to in terms of visibility of the color which is to be tested for collision with the sprite. E.G., if a color which is to be tested for collision is already coverd by a sprite NOT containing this color, the sprite which tests for collision is to be rendered above this aforementioned sprite - no collission is to be detected. Another case must be considered, if the the sprite checking for collision with color is covered by another sprite NOT contining the color, and another sprite contining the color is renderd above both of them - no collission is to be detected. In Detail there are more cases as such which musst be carefully determined and tested, that the color collision works the same like in Scratch. -

    -
  • UI feature to select colors (sprite or a background)
  • -
  • implementation to behave like Scratch color collision
  • -
  • run-time optimization/scalability: it must be possible to check for collision with colors with an arbitrary number of objects rendered to the screen
  • -
-

-


- - Title: Scratch compatibility - Missing Bricks -
- Brief explanation and expected results: -

Since Catrobat got inspired by Scratch and other visual programming languages, we also want to provide similar features, to make it young users as easy as possible to switch between those. Thus, certain features, beside the color collision, still need to be implemented in Pocket Code. -

- More Information:
-

-

    -
  • Timer Sensor: Implement a Timer value as sensor, that starts when the program starts and also include a new brick to reset this timer to 0.
  • -
  • Set Volume for Sprites: Currently the "set volume brick" sets the volume for the whole app. However, it would have a huge benefit if you could also set the volume for certain sprites too.
  • -
  • Volume-Sensor Value: As mentioned above it should be possible to set the volume individually for each sprite. But, as an extension it afterwards should also be possible to access this volume as sensor-value from other sprites.
  • -
  • Show/Hide List: Currently there is just the Show/Hide Variable Brick. Similar to that it should be also possible for lists.
  • -
  • Extend "Distance to": Currently "Distance to" in the formular editor just allows you to get the distance to the last touch-position on the screen. This feature should be extened by also adding the possibility to get the distance to another object (you may select in the formula editor)
  • -
  • Delete everything from list: Implement a special brick that deletes all elements from a list. Do not just use a loop therefore, try to find a fast and elegant solution to achieve this.
  • -

-


- - Title: Google Blockly integration -
- More Information:
-

-Google Blockly is a library for building visual programming editors.
-Google Blockly is increasingly being used as a platform for visual programming languages such as Scratch 3.0, AppInventor, and code.org. Especially the actively developed Scratch 3.0 instantiation is very congruent with Catrobat, since Catrobat was initially modeled after Scratch.
-Current Situation:
-Catrobat bricks used in scripts that are manipulated in the IDE part of Catroid (Android code base of Pocket Code and its flavors) and Catty (iOS code base of Pocket Code and its flavors), as well as the script preview on the sharing platform of Catrobat (Catroweb), all use our own visualizer. They display the scripts in a linear way, without the typical C and E nested bricks as known from Scratch and Blockly.
-Planned Improvements:
-We want to use the Scratch variant of Blockly to display Catrobat scripts and bricks in a webview. In a first step, the passive script preview on the sharing platform of Catrobat (Catroweb) should use Blockly instead of our current code base. One important issue that needs to be addressed is to use the correctly translated strings (localization, including for right to left languages such as Arabic). In a next step, this visualization of bricks shall also be used in a webview in Catroid and Catty, as an alternative way to display scripts and blocks, on an infinite virtual plane. For the two apps, it should be possible to switch back and forth between the read-only Blockly view and our current view of the scripts. Another important consideration needs to be that we want to be able to keep important the Blockly/Scratch 3.0 code repeatedly indefinitely in the future in order to be able to incorporate bug- and security fixes as well as feature enhancements.

-


- -

- Your own project ideas ... -
-

In the last year we made the experience that you have many great ideas and knowledge! Catrobat is currently still focusing on refactoring and we're aware that there are many ways how to improve performance, reduce memory usage, make our services more stable and of course the code easier to maintain. We're sure you do have ideas how to achieve this, although we maybe never heard of this approach before -> that's the great thing about Open Source! And well, that's also the experience we made at last year's GSoC - and we liked it!

But also new features or extensions for iOS and Android are welcome to be introduced to us. Help us to spread coding and Open Source!
- Please do not hesitate to bring forward your own ideas and discuss them with our community on our mailing-list: catrobat@googlegroups.com! -

-

- - -
-
- - - - - diff --git a/gsoc_2019_ideas_page.html b/gsoc_2019_ideas_page.html deleted file mode 100644 index 60ab69c..0000000 --- a/gsoc_2019_ideas_page.html +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - Ideas Page - - - - - - -
-
-

Catrobat

-

- A visual programming language -
- and set of creativity tools -
- for smartphones, tablets, -
- and mobile browsers -

-

- Home -

-

- Developers' Home -

-

- First steps into Catrobat -

-

- Find Pocket Code on Google Play -

-

- Find Pocket Code on the App Store -

-

- -

-
- -
-

Ideas Page for Google Summer of Code 2019

-
- Welcome, -
- we officially present our project ideas for this year's Google Summer of Code.
-
- Last Updated: 6 Feb 2019

- -

- General knowledge prerequisites for all projects -
- JUnit, Robotium and Espresso for test-driven development on Android devices (for Catroid Development), basic knowledge in app development (Android or iOS, depending on the project) and of course Git (revision control) for all projects. Also please check that you have sufficient hardware (e.g. a Android/iOSsmartphone for testing) for the development, since we can't provide you any for the coding period.
-

- -

- General information about the ideas -
- These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g. new feautes, extensions,...) that are related to the project and you're interested in :) We do have many senior-contributors who would be happy to mentor such a project ;) Don't be shy and check out the last point on the list: Your idea!
-

-

- Please find the mandatory template for the application and additional information on this shared Google Doc. -

- -

-

Overview:

- -

- -

-

Projects

- - Title: Coding Tutorial Game -
- Brief explanation and expected results: -

Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language.

- More Information:
-

- Tutorial games are available for many computer games, but extremely rarely for learning programming, and then are usually playable in a few minutes and not very exciting. A great exception for teenagers is Nintendo's tutorial game in "Wario Ware: Do It Yourself." Another example tutorial game for coding designed especially for girls is the one with WonderWoman. -

-

- If you have your own original idea about a tutorial game, please feel free to suggest it. Note that the focus in GSoC should be on the design and on coding. -

-

- You will create a tutorial game tailored specifically for younger teenage girls (13-14), allowing them to learn how to code apps with Luna&Cat on their own phones, without a PC or tablet. The focus of the project is on the conception, the design, as well as the development and testing of the tutorial game. -

-

- This game will serve as a coding tutorial game for a new flavor of our popular app Pocket Code with has the name “Luna&Cat”. Luna&Cat is a customized version for teenage girls (see our new themed webview with example/featured games: https://share.catrob.at/luna/). The Android version of Luna&Cat will become available on Google Play by March 2019. The tutorial game must be extremely engaging and motivating for this challenging target group of younger female teenagers. It should NOT be boring, so NO "chocolate-covered broccoli" game! At the same time, it should teach coding on small smartphone screens. Average duration of playing the entire tutorial game on the phone should be around 90 to 150 minutes. It should cover 60 - 80% of the functionality of Luna&Cat, the integrated paint editor, and the Catrobat sharing platform (note that prioritization is necessary --- not everything is equally important). -

-

- The coding tutorial game will be integrated into the app and will be freely available on popular app stores around the world. Note that the tutorial game will be published under Catrobat’s licenses as described in detail on https://catrob.at/licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0. The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses (e.g., you can also use graphics from our media library or Luna and Cat as main characters). -

-

- In summary, this GSoC coding tutorial game should become an incredibly awesome, challenging & amazing tutorial game that supports younger female teenagers in a playful way to learn coding Catrobat apps. -

-

- In your GSoC application, please add a link to a proof of concept for such a game that you have created on your phone using Pocket Code (or Luna&Cat, if already available). Also describe shortly your ideas for the story of the coding tutorial game you want to develop in your GSoC project. - - Mentor contact: bernadette.spieler@catrobat.org -

-

-


- - Title: Awesome Demo Game Project -
- Brief explanation and expected results: -

Spend the whole GSoC time developing one huge game using the Pocket Code IDE app, i.e., programming in the Catrobat visual coding language. -

- More Information:
- - - -

The game must be playable both on a phone as well as when cast from the phone to a smart TV.

- -

The game should be strongly inspired by a hugely popular recent 2D game. I am thinking “The Binding of Isaac” or its Rebirth variant, but your own suggestions of other popular games might be even better, and are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games.

- -

If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on ttps://catrob.at/licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0.

- -

The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses.

- -

The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion.

- -

In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code.

- -

In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be payable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project.

- -

Boyakasha!

- -

Mentor contact: wolfgang@catrobat.org

-

-


- - Title: Testing Efficiency Catroid -
- Brief explanation and expected results: -

Although the test-coverage and execution of Catroid got incredigly improved, there is still refactoring and new tests needed to guarantee the best test coverage possible -

- More Information:
-

If you look up previous years' Catrobat-GSoC-projects, you'll find various projects to rewrite tests and introduce Espresso Tests. This was an important step that helped to get a good basis for future work. Wheras new features are already implemented with "good" tests, many old tests still don't work as expected, don't cover all needed cases, are unnecessary or include dependencies that lead to a certain flakiness in test execution (i.e. they influence the order they need to be executed). As GSoC project we would like you to refactor these still open issues and also introduce a new testing-structure, making it possible to characterize tests and enable developers to test on certain levels (e.g. IDE, just specific features, extensions, etc.). Therefore, as part of this GSoC project you will define these levels together with the community, collaborate with the Jenkins-Contributors to automate these levels and finally implement it as part of your refactoring. So once again, as for the last years' GSoC projects: for Catroid testing never ends ;) -

-

- -


- - Title: iOS: Scenes -
- Brief explanation and expected results: -

Serialization of the Scenes for different levels in a Pocket Code program -

- More Information:
-

The introduction of “scenes” in Pocket Code should ease the creation of large programs by abstraction of semantically coupled objects including code, looks and sounds into independent sub units. This makes programming of different scenes of a game insofar easier that only those backgrounds and objects which are used in this particular scene are active, can be accessed by scripts and are subject to execution.Scenes can be seen as an independent Pocket Code program (like different levels in a Game/Program).

-
    -
  • Implementation of a functionality to group objects into so called „Scenes“
  • -
  • Implementation of the new logic, data models and the UI
  • -
  • Unit and Integration Tests
  • -
-
- - Title: iOS: Features -
- Brief explanation and expected results: -

ASupport of all Bricks for Catrobat Language version 0.992 (except physics bricks and extensions like Lego)

- More Information:
-

In order to be able to support Catrobat Language version 0.992 it is necessary to implement a set of missing Bricks.
New Bricks:

-
    -
  • WhenConditionBrick
  • -
  • AskBrick
  • -
  • ClearBackgroundBrick
  • -
  • CloneBrick
  • -
  • ComeToFrontBrick
  • -
  • DeleteThisCloneBrick
  • -
  • GoToBrick
  • -
  • PenDownBrick
  • -
  • PenUpBrick
  • -
  • PlaySoundAndWaitBrick
  • -
  • SetBackgroundAndWaitBrick
  • -
  • SetPenColorBrick
  • -
  • SetPenSizeBrick
  • -
  • SetTextBrick
  • -
  • StampBrick
  • -
  • StopScriptBrick
  • -
  • WhenBackgroundChangesBrick
  • -
  • WhenClonedBrick
  • -
-The robotic arm is to be interfaced with a Raspberry Pi. An Android testdevice is to be mounted on the robotic arm in a way, that it can be easily unmounted, that it has working USB Connection to the Jenkins, to upload the testsuite and run the tests. A REST-ful service has to be implemented which runs on the Raspberry Pi which takes commands to move the robotic arm in a way which is needed for testing the sensors in the device. The server mus be accessible via the network and accept command from the tests running on the device. Tests for this device test suite for the aforementioned sensors are to be written, that the device can be moved with the robotic arm and the sensor data can be read out and compared to expected values. A jenkins test job has to be implemented to run the sensor-tests on the device. -

-Tasks you have to accomplish:

-
    -
  • Create data models for new Bricks
  • -
  • Implement serialization and deserialization
  • -
  • Implement Brick visualization and related UI actions
  • -
  • Implement new logic in Player Engine
  • -
  • Write unit & integration tests
  • -
-

-


- -

- Your own project ideas ... -
-

In the last year we made the experience that you have many great ideas and knowledge! Catrobat is currently still focusing on refactoring and we're aware that there are many ways how to improve performance, reduce memory usage, make our services more stable and of course the code easier to maintain. We're sure you do have ideas how to achieve this, although we maybe never heard of this approach before -> that's the great thing about Open Source! And well, that's also the experience we made at last year's GSoC - and we liked it!

But also new features or extensions for iOS and Android are welcome to be introduced to us. Help us to spread coding and Open Source!
- Please do not hesitate to bring forward your own ideas and discuss them with our community on our mailing-list: catrobat@googlegroups.com! -

-

- - -
-
- - - - - diff --git a/gsoc_2020_ideas_page.html b/gsoc_2020_ideas_page.html deleted file mode 100644 index 2ef925a..0000000 --- a/gsoc_2020_ideas_page.html +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - Ideas Page - - - - - - -
-
-

Catrobat

-

- A visual programming language -
- and set of creativity tools -
- for smartphones, tablets, -
- and mobile browsers -

-

- Home -

-

- Developers' Home -

-

- First steps into Catrobat -

-

- Find Pocket Code on Google Play -

-

- Find Pocket Code on the App Store -

-

- -

-
- -
-

Ideas Page for Google Summer of Code 2020

-
- Welcome, -
- we officially present our project ideas for this year's Google Summer of Code.
-
- Last Updated: 17 Feb 2020

- -

- General information about the ideas -
- These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g. new features, extensions,...) that are related to the project and you're interested in. We do have many senior-contributors who would be happy to mentor such a project. Don't be shy and check out the last point on the list: Your idea!
-

- -

- General knowledge prerequisites for all projects -

    -
  • Knowledge in the usage of git
  • -
  • Basic knowledge in the concepts of software testing and test-driven development
  • -
  • Basic knowledge in app development (for Android and iOS projects)
  • -
  • Java, JUnit, Robotium and Espresso for Android development
  • -
  • Swift and Objective C for iOS development
  • -
  • Also please check that you have the proper hardware for the development (e.g. a Android/iOS smartphone for testing, Mac for iOS development) -
-

- -

- Your application -
- Please find the mandatory template for the application and additional information on this shared Google Doc. -

- -
- -

-

Overview:

- -

- -

-

Projects

- -
-

Awesome Demo Game Project

-

Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. The game must be playable both on a phone as well as when cast from the phone to a smart TV.

- -

The game should be strongly inspired by a hugely popular recent 2D game, your own suggestions of popular games are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games.

- -

If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on https://catrob.at/licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0.

- -

The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses.

- -

The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion.

- -

In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code.

- -

In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be playable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project.

- -

Boyakasha!

- -

Mentor contact: wolfgang@catrobat.org

-

-


- -

iOS: Landscape mode

-

Users of the iOS implementation of Pocket Code should be able to choose between a landscape and a portrait mode when creating a new project, just like in the Android implementation of Pocket Code:

-
    -
  • According to this choice, the whole stage should be in a landscape or portrait orientation.
  • -
  • In order to enable this, changes need to be done in the UI, the persistence level and most importantly, a lot of sensors (both for the device and for the objects) need to be translated according to the given orientation.
  • -
  • The student needs to come up with a design to enforce testability and enforce the use of mocking.
  • -
- -
- -

iOS: Integrate Google Sign-In and add tagging for projects

-

Users of Pocket Code should be able to sign-in and upload their projects both with their Catrobat accounts and with their Google accounts. In order to accomplish this, at least the following tasks have to be accomplished:

-
    -
  • The authentication providers and the project upload have to be refactored and a suitable test framework needs to be introduced.
  • -
  • The student needs to come up with a design to enforce testability and enforce the use of mocking and API client testing with fixtures.
  • -
  • Additionally, similar to the Android implementation of Pocket Code, the user should be able to choose between a predefined set of tags (e.g., Game, Animation, Art, Experimental) prior to upload their own projects. Again, the upload functionality needs to be refactored to enforce testability and API client testing with fixtures.
  • -
- -
- -

Android: Redesign landing page for Pocket Code

-

The first page of Pocket Code should be redesigned so that parts of the community page are shown, e.g., featured projects, most recent projects, including "My projects":

-
    -
  • New UI for the first page of Pocket Code
  • -
  • Fetch projects using the API from the share
  • -
  • For legacy users who are only updating, i.e., who have had Pocket Code already installed: After the first time the app is executed after the update, show the legacy users a selection option with screenshots of the old and new interface, and ask whether they want to continue using the old, or whether they want to try the new interface.
  • -
- -
- -

Android: Separate and modularize interpreter and IDE in Pocket Code (refactoring)

-

Modularize Pocket Code so that we end up with one separate module for each the IDE and the Interpreter:

-
    -
  • In Pocket Code the IDE is seen as the interface for creating/editing projects, as well as the Pocket Code Community
  • -
  • The Interpreter is responsible for interpreting and executing Catrobat projects. So basically that’s where the action happens. The user created projects gets executed in this module.
  • -
- -

This projects includes planning on how to split up the code base to modularize Pocket Code and come up with a step-by-step refactoring:

-
    -
  • Planning Interfaces to communicate in a more generic way
  • -
  • Building Wrappers around classes where functionality lies in Background for easier Refactoring
  • -
  • Begin of detailed Refactoring
  • -
- -
- -

Web: Redesign and refactoring of the share platform

-

Redesign the user-profile and user-project pages:

-
    -
  • Develop a cleaner more modern design
  • -
  • Improve performance (e.g., caching for code statistics, remix graph, ...)
  • -
  • Adding detail pages for scratch projects (prepare/download)
  • -
  • Adding Studios
  • -
  • Adding more social features
  • -
- -

Redesign the search engine:

-
    -
  • Increase precision and performance
  • -
  • Include Scratch projects
  • -
- -

Improving the media library:

-
    -
  • Adding a search feature (also in the API)
  • -
  • Improve performance by pagination
  • -
  • Download whole media packages (Looks + Scripts + Sounds)
  • -
- -
- -

Web: Implement new OAuth Provider and refactor Google Sign-In

-

The current OAuth provider is outdated and should be refactored:

-
    -
  • Implement new OAuth2 Provider for Symfony (preferably HWIOAuthBundle)
  • -
  • The authentication providers have to be refactored and suitable tests need to be written
  • -
  • Additionally, the currently used Social Login Provider needs to be refactored/thrown out and documented thoroughly
  • -
  • Optionally, expanding social logins to other platforms, e.g., Facebook, GitHub etc.
  • -
- -
- -

DevOps: Automated Deployment Chain

-

The overall idea is to make it possible for the Product Owner to release an APK of a certain release candidate to the production channel of Google including all necessary steps of signing and aligning the APK.

-

The workflow to do so shall be kicked off by a Product Owner who logs into the Jenkins and starts a release-job, which:

-
    -
  • builds the release candidate in DEBUG version
  • -
  • runs all RELEASE-relevant tests on this DEBUG version
  • -
  • when it is OK, a RELEASE version is built - the signing and aligning of this artifact takes place in a secure sandbox which is NOT easily accessible from the outside
  • -
  • after previous step the signed and aligned APK is once again tested with the RELEASE-relevant tests to ensure the release-version DOES NOT BREAK any functionality covered by the release-relevant tests
  • -
  • when the release-relevant tests with the RELEASE-APK ran green, the APK is automatically deployed in conjunction with its Metadata (prepare by the initial Jenkins job (there exists a working POC)) to the Google Play release-channel
  • -
- -

Remark: There are several options for doing so: E.g., a dedicated Jenkins slave for building, signing, aligning the RELEASE APK; a small virtual machine (externally inaccessible) hosting a web-service which either fetches the RELEASE built be Jenkins, signs and aligns it and uploads it back to Jenkins which in turn uses Fastlane to release it to Google Play OR any other APP-Store; OR the web-service triggers the Jenkins instance on this particular server to build, sign and align and deploy it to the Google release channel....).

-

Part of the GSoC project is to find a viable AND SECURE way do achieve this tasks in the Catrobat infrastructure internally and not with external tools. The keys MUST NOT LEAVE the Catrobat environment and MUST be stored on an externally inaccessible server.

-
- -

Web: Refactoring of test system and alternative API testing

-

The test system needs to be refactored and split up to speed up testing processes with the already existing docker container.

-
    -
  • Tests need to be split up in more sections/test suits so that we can execute them in parallel using our docker container
  • -
  • The underlying FeatureContextFiles need to be refactored, cleaned, adapted where necessary and code duplications need to be removed
  • -
  • Since we are on our way to introduce APIv2, it is a good time to check if our current Testsuite (Behat) is adequately equipped to extensively test our new API. If not an alternative should be found and implemented (in accordance with the rest of the team)
  • -
- -
- -

DevOps: Fully virtualization of the CI & CD

-

The overall idea is to fully virtualize the Jenkins setup and to streamline all jobs for that the development team has the most benefits and can easily incorporate the jobs into their workflow.

-

The only physically remaining server will be the server with the hardware-testing box and the robot-arm for physically testing devices' sensors and actors, e.g., speaker, flashlight, vibration, micro, gyroscope, magnetic sensor, proximity, etc. It will be also a part of the GSoC project to create a meaningful test-suite which is incorporated in various scenarios like - smoke tests and regression tests and probably release tests.

-

Reasons:

-
    -
  • The current Jenkins hardware in the team room is physically accessible by various people and cannot be safeguarded.
  • -
  • The new hardware (dedicated physical server) can be partitioned with VMWare virtual machines to resemble a useful setup.
  • -
  • The hardware resources of the new server outperfom the current setup.
  • -
  • The Jobs must be refactored to match the increased requirements to usability of the development team.
  • -
  • The virtualization must be conducted in regard off the Automation of the deployment pipeline.
  • -
- -
- -

Embroidery Robot Programming

-

Spend the whole GSoC time developing huge Embroidery Designs using the Pocket Code IDE app, i.e., programming in the Catrobat visual coding language:

-
    -
  • If you have your own original idea about an embroidery design, please feel free to suggest it.
  • -
  • Note, however, that the focus in GSoC should be on coding.
  • -
  • This GSoC project’s Embroidery Design should become an incredibly awesome & amazing demo design that showcases what kind of mind-boggling embroidery designs can be created with Pocket Code.
  • -
- -
- -

- Your own project ideas ... -
-

- In the last year we made the experience that you have many great ideas and knowledge! Catrobat is currently still focusing on refactoring and we're aware that there are many ways how to improve performance, reduce memory usage, make our services more stable and of course the code easier to maintain. We're sure you do have ideas how to achieve this, although we may have never heard of this approach before -> that's the great thing about Open Source! And well, that's also the experience we made at last year's GSoC - and we liked it!

-

- Also new features or extensions for iOS and Android are welcome to be introduced to us. Help us to spread coding and Open Source!
- Please do not hesitate to bring forward your own ideas and discuss them with our community on our mailing-list: catrobat@googlegroups.com! -

-

- - -
-
- - - - diff --git a/gsoc_2021_ideas_page.html b/gsoc_2021_ideas_page.html deleted file mode 100644 index f7fa38d..0000000 --- a/gsoc_2021_ideas_page.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - Ideas Page - - - - - - -
-
-

Catrobat

-

- A visual programming language -
- and set of creativity tools -
- for smartphones, tablets, -
- and mobile browsers -

-

- Home -

-

- Developers' Home -

-

- First steps into Catrobat -

-

- Find Pocket Code on Google Play -

-

- Find Pocket Code on the App Store -

-

- -

-
- -
-

Ideas Page for Google Summer of Code 2021

-
- Welcome, -
- we officially present our project ideas for this year's Google Summer of Code.
-
- Last Updated: 17 Feb 2021

- -

- General information about the ideas -
- These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g., new features, extensions, ...) that are related to the project and in which you're interested in. We do have many senior contributors who would be happy to mentor such a project. Don't be shy and check out the last point on the list: Your idea!
-

- -

- General knowledge prerequisites for all projects -

    -
  • Knowledge in the usage of Git and GitHub
  • -
  • Basic knowledge in the concepts of software testing (e.g., test doubles) and test-driven development
  • -
  • Basic knowledge in app development (for Android and iOS projects)
  • -
  • Java, JUnit, Mockito, Robotium and Espresso for Android development
  • -
  • Swift and Objective C for iOS development
  • -
  • Also please check that you have the proper hardware for the development (e.g., a Android/iOS smartphone for testing, Mac for iOS development) -
-

- -

- Your application -
- Please find the mandatory template for the application and additional information on this shared Google Doc. -

- -
- -

-

Overview:

- -

- -

-

Projects

- -
-

Awesome Demo Game Project

-

Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. The game must be playable both on a phone as well as when cast from the phone to a smart TV.

- -

The game should be strongly inspired by a hugely popular recent 2D game, your own suggestions of popular games are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games.

- -

If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on https://catrob.at/licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0.

- -

The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses.

- -

The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion.

- -

In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code.

- -

In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be playable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project.

- -

Boyakasha!

-

-


- -

Pocket Code for Android: Support for Particle Physics in Catrobat

-

The current version of Pocket Code doesn't have support for particle physics. This project proposes to implement a particles system (using libGDX particles library) which would allow the addition of smoke, fire, and other such particle effects in the games! The visibility, position, type, and other such properties of the particles could be controlled using the new "particles" bricks that will be added as part of the project!

- -
- -

Pocket Code for Android: Search functionality for bricks in Pocket Code

-

In the current version of Pocket Code, users have to manually click and scroll through all brick categories and bricks to find and add the desired brick to their project. Therefore a brick search functionality will be implemented which enables the user to search through all available bricks in all brick categories. The matching bricks will be shown to the user and can be added to the project. This will provide a more improved programming flow for users of all skill groups. If there's time, a similar search & complete feature can also be added for reporter functions and sensors, and even variable or look names in the formula editor.

- -
- -

Pocket Code for Android: HMS API Machine Learning and AI support

-

We need to support the HMS APIs where other APIs are not available. This concerns all computer vision (pose, face, hand, image, OCR etc), speech, and general machine learning APIs. Additionally, it might also be of interest for other services such as geolocation and/or augmented reality APIs.

- -
- -

Pocket Code for Android: Room integration

-

Since the migration to Android Architecture Components has already started, the goal of this project is to integrate Room instead of SQLiteDatabase as a better approach for data persistence. This idea involves the following challenges:

-
    -
  • Initially, all the API responses need to be cached in order to reduce the number of connections to the server (especially Featured Projects and the Categories displayed on the main screen)
  • -
  • To continue, the structure of the projects (JSON instead of XML) needs to be improved
  • -
  • Showing and caching the user projects (local/on-server-stored projects) in the Projects screen which will give the user the control to modify/delete his projects from one place
  • -
  • Kotlin will be the only used language -- no more Java!
  • -
- -
- -

Pocket Code for Android: Merge Feature

-

Design and develop a feature for the Android version of Pocket Code that allows to merge two user projects into one, without duplicating scripts, objects, sounds etc that already exist in both projects. Similar to git merge, but for Catrobat user projects. Repeatedly merging the same project into itself should not increase the project's size. Think about how to handle different screen resolutions, orientations, etc, or how to treat conflicting variable names, correctly update remix graph data, etc.

- -
- -

Pocket Code for Android: Refactoring and rewriting production code and tests to Kotlin

-

The current code base of Pocket Code is 8.8% in Kotlin and rest in Java. This project proposes to refactor and rewrite most of production code and tests to Kotlin, implementing all the modern features designed specifically to streamline mobile development resulting in safer and more maintainable code for future development.

- -
- -

Pocket Paint for Android: Hide the top and bottom bars, and make the drawing surface full screen by default

-

Currently Menus and Options are shown by default in top and bottom bars, and the default zoom is smaller than the screen's drawing surface, resulting in lost space on the sides of the image. The goal is to have the already existing full screen functionality active by default and find an intuitive way to show menus only by fading in and out depending on whether the finger leaves or touches the screen.

- -
- -

Pocket Paint for Android: Refactoring tests and functionality to Kotlin

-

Several parts of the project have already been refactored to use Kotlin, but there are still large parts that should be refactored, and reworked to use Kotlin instead of Java.

- -
- -

Pocket Paint for Android: Erase background tool (make it transparent more easily)

-

The goal of this idea is to create a new tool that allows the user to select an area and erase the parts of the drawing surface outside the area, see similar tools in many picture manipulation programs.

- - -
- -

Pocket Paint for Android: Add a feature that allows a user to see a zoomed in view of the area beneath his finger while drawing

-

Currently Pocket Paint only has the basic brush and the spray can. The goal is to add additional brush options such as a watercolor brush, rubbing around existing color. Also, when drawing a little bit faster, the drawing line should be slightly smoothed. When drawing slowly, it should however be possible to draw without smoothing of the lines. Also, add an option in the brush settings that allows to turn off (and on again) antialiasing, independently of the width of the brush. Currently, antialiasing is only turned off if the width is set to 1.

- -
- -

Pocket Paint for Android: Additional brush options

-

Currently Paintroid only has the basic brush and the spray can. The goal is to add additional brush options such as a watercolor brush, rubbing around existing color. Also, when drawing a little bit faster, the drawing line should be slightly smoothed. When drawing slowly, it should however be possible to draw without smoothing of the lines. Also, add an option in the brush settings that allows to turn off (and on again) antialiasing, independently of the width of the brush. Currently, antialiasing is only turned off if the width is set to 1.

- -
- -

Pocket Code for iOS: Support for Catrobat Language version 0.994 - 0.99992

-

The iOS version of Pocket Code is currently supporting projects with a Catrobat Language up to version 0.993. Compared to Pocket Code for Android, this is a very old language version, released a few years ago. Hence, projects created with newer versions of Pocket Code for Android can not be opened and used on iOS. To take one step further into supporting the newest Catrobat Language versions, this project proposal is intended to implement the language versions 0.994 to 0.99992. This would allow Pocket Code for iOS to interpret tens of thousands more projects. In order to accomplish this, at least the following tasks have to be considered:

-
    -
  • The Android version of Pocket Code needs to be compiled for all different language versions in order to create sample XMLs for regression testing.
  • -
  • The XML parser needs to be adapted so that Pocket Code for iOS can interpret those XML versions.
  • -
  • The XML serializer needs to be adapted so that Pocket Code for iOS complies to Catrobat language version 0.99992.
  • -
  • Starting from language version 0.99992 all nested Bricks (e.g., Bricks of an "If Brick") will be stored as a tree structure. This involves major refactoring in the data model and the parser/serializer.
  • -
  • This task requires a lot of reverse engineering work since there is no XML schema available for those language versions
  • -
  • The focus of this project proposal should be on building up regression tests.
  • -
- -
- -

Unified Catrobat Language Brick Syntax

-

The goal is to develop a standalone Brick Library (own library/repository; mutually understandable by all major projects in the organization, which utilize the Catrobat Language and its bricks) as need for functionality in Catblocks and Catroweb.

-

Other objectives of this project are the streamlining of brick construction via Construction Patterns, which in turn will massively improve testability, maintainability of code and usability (on the programmers side, it will be easier to implement new bricks, and harder to make mistakes while doing so) and synchronizing Cross-Team Brick changes/updates and new bricks can easily be propagated throughout the whole organizational structure (with just 1x git pull) as well.

-

This includes the creation of a new Brick Definition Format, the transcription of all existing Bricks into the new Format, "teaching" the new format to Catblocks and Designing an Example Brick Creation Pattern for Pocket Code for Android for a first set of bricks as an extendable Proof of Concept.

- -
- -

Embroidery Robot Programming

-

Spend the whole GSoC time developing huge Embroidery Designs using the Pocket Code IDE app, i.e., programming in the Catrobat visual coding language:

-
    -
  • If you have your own original idea about an embroidery design, please feel free to suggest it.
  • -
  • Note, however, that the focus in GSoC should be on coding.
  • -
  • This GSoC project’s Embroidery Design should become an incredibly awesome & amazing demo design that showcases what kind of mind-boggling embroidery designs can be created with Pocket Code.
  • -
- -
- -

- Your own project ideas ... -
-

In the last year we made the experience that you have many great ideas and knowledge! Catrobat is currently still focusing on refactoring and we're aware that there are many ways how to improve performance, reduce memory usage, make our services more stable and of course the code easier to maintain. We're sure you do have ideas how to achieve this, although we may have never heard of this approach before -> that's the great thing about Open Source! And well, that's also the experience we made at last year's GSoC - and we liked it!

-

Also new features or extensions for iOS and Android are welcome to be introduced to us. Help us to spread coding and Open Source!

-

Please do not hesitate to bring forward your own ideas and discuss them with our community on our mailing-list: catrobat@googlegroups.com!

-

- - -
-
- - - - diff --git a/gsoc_2022_ideas_page.html b/gsoc_2022_ideas_page.html deleted file mode 100644 index a7f05bd..0000000 --- a/gsoc_2022_ideas_page.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - Ideas Page - - - - - - -
-
-

Catrobat

-

- A visual programming language -
- and set of creativity tools -
- for smartphones, tablets, -
- and mobile browsers -

-

- Home -

-

- Developers' Home -

-

- First steps into Catrobat -

-

- Find Pocket Code on Google Play -

-

- Find Pocket Code on the App Store -

-

- -

-
- -
-

Ideas Page for Google Summer of Code 2022

-
- Welcome, -
- we officially present our project ideas for this year's Google Summer of Code.
-
- Last Updated: 15 March 2022

- -

- General information about the ideas -
- These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g., new features, extensions, ...) that are related to the project and in which you're interested in. We do have many senior contributors who would be happy to mentor such a project. Don't be shy and check out the last point on the list: Your idea!
-

- -

- General knowledge prerequisites for all projects -

    -
  • Knowledge in the usage of Git and GitHub
  • -
  • Basic knowledge in the concepts of software testing (e.g., test doubles) and test-driven development
  • -
  • Basic knowledge in app development (for Android and iOS projects)
  • -
  • Java, JUnit, Mockito, Robotium and Espresso for Android development
  • -
  • Swift and Objective C for iOS development
  • -
  • Also please check that you have the proper hardware for the development (e.g., a Android/iOS smartphone for testing, Mac for iOS development) -
-

- -

- Your application -
- Please find the mandatory template for the application and additional information on this shared Google Doc. -

- -
- -

-

Overview:

- -

- -

-

Projects

- -
-

Paintroid landing page (350 hour)

-

A landing page similar to catroid, where you can see all your saved pictures.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 350 hours
  • -
  • Difficulty level: medium
  • -
- - -

Paintroid Smudge Tool (175 hour)

-

Extension of the existing smudge tool. It was part of a GsoC Project last year, but was too complicated to finish PAINTROID-292 - Smudge tool [READY FOR DEVELOPMENT}

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 175 hours
  • -
  • Difficulty level: hard
  • -
- -

Embroidery Designer Inspect Tool (175 or 350 hour)

-

An inspection tool for embroidery projects that allows you to get important information about the project, view the embroidery more closely and thus edit it better. In a larger version of the project, first steps can be taken to easily touch-up stiches in order to make small corrections before saving an embroidery robot control file.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 175 or 350 hours (to be discussed with us in advance)
  • -
  • Difficulty level: hard
  • -
- -

Catroid Editor for Userdefined Bricks (175 hour)

-

An editor for user-defined bricks, to be able to modify them after they have been created.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 175 hours
  • -
  • Difficulty level: easy
  • -
- -

Pocket Code for Android: Undo/redo functionality in Catroid (175 or 350 hour)

-

In the current version of Catroid, there are a few places where the immediately previously executed step can be undone, thus avoiding a need for an interaction with the user to ask whether, e.g., an object should really be deleted. There are still many places and interactions where this single-step undo has not been implemented. The aim of this project is to add more such single-step undo operations where they are still missing. Depending on the size of the project, and if there is time, these single-step undo operations shall be step by step replaced by a standard undo-redo feature.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 175 or 350 hours (to be discussed with us in advance)
  • -
  • Difficulty level: medium
  • -
- -

Pocket Paint for Android: Hide the top and bottom bars, and make the drawing surface full screen by default (350 hour)

-

Currently Menus and Options are shown by default in top and bottom bars, and the default zoom is smaller than the screen's drawing surface, resulting in lost space on the sides of the image. The goal is to have the already existing full screen functionality active by default and find an intuitive way to show menus only by fading in and out depending on whether the finger leaves or touches the screen.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 350 hours
  • -
  • Difficulty level: medium
  • -
- -

Pocket Paint for Android: Refactoring tests and functionality to Kotlin (175 or 350 hour)

-

Several parts of the project have already been refactored to use Kotlin, but there are still parts that should be refactored, and reworked to use Kotlin instead of Java.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 175 or 350 hours (to be discussed with us in advance)
  • -
  • Difficulty level: medium
  • -
- -

Pocket Code for Android: Refactoring tests and functionality to Kotlin (175 or 350 hour)

-

Several parts of the project have already been refactored to use Kotlin, but there are still parts that should be refactored, and reworked to use Kotlin instead of Java.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 175 or 350 hours (to be discussed with us in advance)
  • -
  • Difficulty level: medium
  • -
- -

Pocket Paint for Android: Erase background tool (make it transparent more easily) (175 hour)

-

The goal is to create a new tool that allows the user to select an area and erase the parts of the drawing surface outside the area, see similar tools in many picture manipulation programs.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 175 hours
  • -
  • Difficulty level: medium
  • -
- -

Pocket Paint for Android: Add a feature that allows a user to see a zoomed in view of the area beneath his finger while drawing (175 hour)

-

The goal is to create a new feature that allows a user to see a zoomed in view of the area beneath his/her finger while drawing, to allow for easier fine manipulation. The magnifying glass should be round, drag-and-droppable, move automatically way to another place (up or down) if the user's finger approaches it by drawing, have a default magnifying level of 3x, and there shall be some setting where one can turn it off (or on again) and change the magnification level. When no finger touches the drawing surface, the magnifying glass shall fade away.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 175 hours
  • -
  • Difficulty level: hard
  • -
- -

Merge Feature for Catroid (350 hour)

-

Design and develop a feature for the Android version of Pocket Code that allows to merge two user projects into one, without duplicating scripts, objects, sounds etc that already exist in both projects. Similar to git merge, but for Catrobat user projects. Repeatedly merging the same project into itself should not increase the project's size. Think about how to handle different screen resolutions, orientations, etc, or how to treat conflicting variable names, correctly update remix graph data, etc.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 350 hours
  • -
  • Difficulty level: hard
  • -
- -

Awesome Demo Game Project (175 hour)

-

Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. The game must be playable both on a phone as well as when cast from the phone to a smart TV.

-

The game should be strongly inspired by a hugely popular recent 2D game, your own suggestions of popular games are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games.

-

If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on https://catrob.at/licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0.

-

The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses.

-

The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion.

-

In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code.

-

In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be playable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project.

-

Boyakasha!

-

-

    -
  • Required Skills: Coding Basics, PocketCode
  • -
  • Possible Mentors: Yash Punia, Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 175 hours
  • -
  • Difficulty level: easy
  • -
-
- -

Awesome Demo Game Project (350 hour)

-

Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. The game must be playable both on a phone as well as when cast from the phone to a smart TV.

-

The game should be strongly inspired by a hugely popular recent 2D game, your own suggestions of popular games are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games.

-

If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on https://catrob.at/licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0.

-

The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses.

-

The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion.

-

In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code.

-

In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be playable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project.

-

Boyakasha!

-

-

    -
  • Required Skills: Coding Basics, PocketCode
  • -
  • Possible Mentors: Yash Punia, Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 350 hours
  • -
  • Difficulty level: easy
  • -
-
- -

- Your own project ideas ... (175 or 350 hour) -
-

In the last year we made the experience that you have many great ideas and knowledge! Catrobat is currently still focusing on refactoring and we're aware that there are many ways how to improve performance, reduce memory usage, make our services more stable and of course the code easier to maintain. We're sure you do have ideas how to achieve this, although we may have never heard of this approach before -> that's the great thing about Open Source! And well, that's also the experience we made at last year's GSoC - and we liked it!

-

Also new features or extensions for iOS and Android are welcome to be introduced to us. Help us to spread coding and Open Source!

-

Please do not hesitate to bring forward your own ideas and discuss them with our community on our mailing-list: catrobat@googlegroups.com!

-

-
    -
  • Required Skills: Kotlin, Java, Android-Development, iOS-Development, Agile Development<
  • -
  • Possible Mentors: Yash Punia, Michael Herold, Stefan Kutschera, Vesna Krnjic, Wolfgang Slany
  • -
  • Expected size of project: 175 or 350 hours (to be discussed with us in advance)
  • -
  • Difficulty level: easy to hard
  • -
- - -
-
- - - - diff --git a/gsoc_2023_ideas_page.html b/gsoc_2023_ideas_page.html deleted file mode 100644 index b179046..0000000 --- a/gsoc_2023_ideas_page.html +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - Ideas Page - - - - - - -
-
-

Catrobat

-

- A visual programming language -
- and set of creativity tools -
- for smartphones. -

-

- Home -

-

- Developers' Home -

-

- First steps into Catrobat -

-

- Find Pocket Code on Google Play -

-

- Find Pocket Code on the App Store -

-

- -

-
- -
-

Ideas Page for Google Summer of Code 2023

-
- Welcome, -
- we officially present our project ideas for this year's Google Summer of Code.
-
- Last Updated: 20 March 2023

- -

- General information about the ideas -
- These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g., new features, extensions, ...) that are related to the project and in which you're interested in. We do have many senior contributors who would be happy to mentor such a project. Don't be shy and check out the last point on the list: Your idea!
-

- -

- General knowledge prerequisites for all projects -

    -
  • Knowledge in the usage of Git and GitHub
  • -
  • Basic knowledge in the concepts of software testing (e.g., test doubles) and test-driven development
  • -
  • Basic knowledge in app development (for Android and iOS projects)
  • -
  • Java, JUnit, Mockito, Robotium and Espresso for Android development
  • -
  • Swift and Objective C for iOS development
  • -
  • Also please check that you have the proper hardware for the development (e.g., a Android/iOS smartphone for testing, Mac for iOS development) -
-

- -

- Your application -
- Please find the mandatory template for the application and additional information on this shared Google Doc. -

- -
- -

-

Overview:

- -

- -

-

Projects

- -
-

Awesome Demo Game Project (175 hour)

-

Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. The game must be playable both on a phone as well as when cast from the phone to a smart TV.

-

The game should be strongly inspired by a hugely popular recent 2D game, your own suggestions of popular games are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games.

-

If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on https://catrob.at/licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0.

-

The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses.

-

The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion.

-

In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code.

-

In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be playable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project.

-

Boyakasha!

-

-

    -
  • Required Skills: Coding Basics, PocketCode
  • -
  • Possible Mentors: Yash Punia, Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
  • -
  • Expected size of project: 175 hours
  • -
  • Difficulty level: tbd
  • -
-
- -

Awesome Demo Game Project (350 hour)

-

Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. The game must be playable both on a phone as well as when cast from the phone to a smart TV.

-

The game should be strongly inspired by a hugely popular recent 2D game, your own suggestions of popular games are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games.

-

If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on https://catrob.at/licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0.

-

The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses.

-

The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion.

-

In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code.

-

In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be playable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project.

-

Boyakasha!

-

-

    -
  • Required Skills: Coding Basics, PocketCode
  • -
  • Possible Mentors: Yash Punia, Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
  • -
  • Expected size of project: 350 hours
  • -
  • Difficulty level: tbd
  • -
-
- - - - - - -

Embroidery Designer Inspect Tool (175 or 350 hour)

-

An inspection tool for embroidery projects that allows you to get important information about the project, view the embroidery more closely and thus edit it better. In a larger version of the project, first steps can be taken to easily touch-up stiches in order to make small corrections before saving an embroidery robot control file.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
  • -
  • Expected size of project: 175 or 350 hours
  • -
  • Difficulty level: tbd
  • -
- -

Catroid Editor for Userdefined Bricks (175 hour)

-

An editor for user-defined bricks, to be able to modify them after they have been created.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
  • -
  • Expected size of project: 175 hours
  • -
  • Difficulty level: tbd
  • -
- -

Pocket Code for Android: Undo/redo functionality in Catroid (175 or 350 hour)

-

In the current version of Catroid, there are a few places where the immediately previously executed step can be undone, thus avoiding a need for an interaction with the user to ask whether, e.g., an object should really be deleted. There are still many places and interactions where this single-step undo has not been implemented. The aim of this project is to add more such single-step undo operations where they are still missing. Depending on the size of the project, and if there is time, these single-step undo operations shall be step by step replaced by a standard undo-redo feature.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
  • -
  • Expected size of project: 175 or 350 hours
  • -
  • Difficulty level: tbd
  • -
- - - -

Pocket Paint for Android: Refactoring tests and functionality to Kotlin (175 or 350 hour)

-

Several parts of the project have already been refactored to use Kotlin, but there are still parts that should be refactored, and reworked to use Kotlin instead of Java.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
  • -
  • Expected size of project: 175 or 350 hours
  • -
  • Difficulty level: tbd
  • -
- -

Pocket Code for Android: Refactoring tests and functionality to Kotlin (175 or 350 hour)

-

Several parts of the project have already been refactored to use Kotlin, but there are still parts that should be refactored, and reworked to use Kotlin instead of Java.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
  • -
  • Expected size of project: 175 or 350 hours
  • -
  • Difficulty level: tbd
  • -
- -

Pocket Paint for Android: Erase background tool (make it transparent more easily) (175 hour)

-

The goal is to create a new tool that allows the user to select an area and erase the parts of the drawing surface outside the area, see similar tools in many picture manipulation programs.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
  • -
  • Expected size of project: 175 hours
  • -
  • Difficulty level: tbd
  • -
- - - -

Merge Feature for Catroid (350 hour)

-

Design and develop a feature for the Android version of Pocket Code that allows to merge two user projects into one, without duplicating scripts, objects, sounds etc that already exist in both projects. Similar to git merge, but for Catrobat user projects. Repeatedly merging the same project into itself should not increase the project's size. Think about how to handle different screen resolutions, orientations, etc, or how to treat conflicting variable names, correctly update remix graph data, etc.

-
    -
  • Required Skills: Kotlin, Java, Android-Development, Agile Development
  • -
  • Possible Mentors: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
  • -
  • Expected size of project: 350 hours
  • -
  • Difficulty level: tbd
  • -
- -

Project converter in Dart from Catrobat to Godot (175 or 350 hour)

-

- Implement a prof-of-concept converter from Catrobat projects to Godot for Android or iOS in Dart. - Only parts need to be implemented, not the full feature set. -

-
    -
  • Required Skills: Dart, Godot, Test Driven Development, Clean Code
  • -
  • Possible Mentors: Wolfgang Slany
  • -
  • Requirement: self-organized work
  • -
  • Expected size of project: 175 or 350 hours (your choice)
  • -
  • Difficulty level: advanced
  • -
- -

Reimplement Catroid's Formula Editor in Flutter (175 or 350 hour)

-

- Reimplement Catroid's Formula Editor in Flutter. - Only parts need to be implemented, not the full feature set. -

-
    -
  • Required Skills: Flutter, Test Driven Development, Clean Code
  • -
  • Possible Mentors: Wolfgang Slany
  • -
  • Requirement: self-organized work
  • -
  • Expected size of project: 175 or 350 hours (your choice)
  • -
  • Difficulty level: advanced
  • -
- -

Reimplement the Catrobat Community feature of Catroid in Flutter (175 or 350 hour)

-

- Reimplement the Catrobat Community feature of Catroid in Flutter. - Only parts need to be implemented, not the full feature set. -

-
    -
  • Required Skills: Flutter, Test Driven Development, Clean Code
  • -
  • Possible Mentors: Wolfgang Slany
  • -
  • Requirement: self-organized work
  • -
  • Expected size of project: 175 or 350 hours (your choice)
  • -
  • Difficulty level: advanced
  • -
- -

Reimplement parts of Catroid's IDE GUI in Flutter (175 or 350 hour)

-

- Reimplement remaining parts of Catroid's IDE GUI in Flutter. - Not included would be the representation and manipulation of scripts, the - formula editor, the paint editor, the Catrobat community features, or the stage. - Also, only parts need to be implemented, not the full feature set. -

-
    -
  • Required Skills: Flutter, Test Driven Development, Clean Code
  • -
  • Possible Mentors: Wolfgang Slany
  • -
  • Requirement: self-organized work
  • -
  • Expected size of project: 175 or 350 hours (your choice)
  • -
  • Difficulty level: advanced
  • -
- -

Add LLM-based AI programming support for users (175 or 350 hour)

-

- Add support for an LLM (large language model) based on tools such as GPT-4 to support AI-based - programming support for our users. This support could range from proposing - code from text prompts, help in correcting bugs or other issues, finding a good architecture - or meaningful names, writing Catrobat language tests for one's code, proposing - extensions, proposing project ideas, explaining downloaded code, providing translations - of variable or message names etc from downloaded projects of other users, proposing - image and sound resources based on the context and text prompts, explaining - basic or more advanced concepts needed to realize projects, e.g., simple concepts such as - variables and loops, or more complex ones such as software design patterns or testing - strategies. Only parts need to be implemented, not the full feature set. The API key can be - assumed to be provided by the user and may need to be entered into the settings of our - apps. The initial prompt will have to detail the Catrobat context to the used LLM, and - will be provided by the Catrobat team. -

-
    -
  • Required Skills: Kotlin, Test Driven Development, Clean Code
  • -
  • Possible Mentors: Wolfgang Slany
  • -
  • Requirement: self-organized work
  • -
  • Expected size of project: 175 or 350 hours (your choice)
  • -
  • Difficulty level: advanced
  • -
- -

- Your own project ideas ... (175 or 350 hour) -
-

In the last year we made the experience that you have many great ideas and knowledge! Catrobat is currently still focusing on refactoring and we're aware that there are many ways how to improve performance, reduce memory usage, make our services more stable and of course the code easier to maintain. We're sure you do have ideas how to achieve this, although we may have never heard of this approach before -> that's the great thing about Open Source! And well, that's also the experience we made at last year's GSoC - and we liked it!

-

Also new features or extensions for iOS and Android are welcome to be introduced to us. Help us to spread coding and Open Source!

-

Please do not hesitate to bring forward your own ideas and discuss them with our community on our mailing-list: catrobat@googlegroups.com!

-

-
    -
  • Required Skills: Kotlin, Java, Android-Development, iOS-Development, Agile Development<
  • -
  • Possible Mentors: Yash Punia, Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
  • -
  • Expected size of project: 175 or 350 hours
  • -
  • Difficulty level: tbd
  • -
- - -
-
- - - - diff --git a/gsod_2021.html b/gsod_2021.html deleted file mode 100644 index 1487303..0000000 --- a/gsod_2021.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - Project Proposal - - - - - - - -
-
-

Catrobat

-

- A visual programming language -
- and set of creativity tools -
- for smartphones, tablets, -
- and mobile browsers -

-

- Home -

-

- Developers' Home -

-

- First steps into Catrobat -

-

- Find Pocket Code on Google Play -

-

- Find Pocket Code on the App Store -

-

- -

-
- -
-

Project proposal for Google Season of Docs 2021

-
- Welcome, -
- we officially present our project idea for this year's Google Season of Docs.
-
- Last Updated: 11 March 2021

- -

- About Catrobat -
- Catrobat (first released in 2010 as Catroid, now Pocket Code) aims to provide teenagers and adults a - solution to learn coding, to be creative and be prepared for the digital future of our world, as simple - logical processes, creative solutions and easily understandable connections are essential in the world - of tomorrow. -
- Our vision is to provide young people with the chance to include these principles in their - everyday digital-life. We believe that free, age-based and motivating software, which can be used - directly by teenagers or in education, is essential in order to prepare the next generation for their - future. -

- -

- The project -
- The goal of this project is to update a part of the educational resources provided on the Catrobat Wiki. The main goal of the project is to update the - Wikis educational documentation, to increase the educational value of the content and make it more - accessible for a wide audience (from kids to young adults). -
- The documentation should provide introductions into basic and advanced programming concepts. Through - updating the documentation, we want - to give the users, as well as the creators, a well structured basis & overview for a well documented - educational wiki page. -
- Therefore the main focus of the project will be to update the Wikis how-tos - section. The project should also focus on other essential parts (e.g. tutorials, FAQ, etc.) to not only - increase the educational value, but also the user and creator friendliness. -

- -
- -

-

Scope

-
    -
  • - Examine the the existing state of the documentation based on these factors -
      -
    • - Educational quality -
    • -
    • - User Friendliness -
    • -
    • - Structure -
    • -
    -
  • -
  • - Evaluate the missing programming concepts -
  • -
  • - Update / Create the educational material -
  • -
  • - Incorporate feedback -
  • -
-

-

- The project is estimated to need between 4 - 6 months, with a work load of 6hr/week, depending on the - current state of the documentation. For this task it would be ideal if the technical writer has a - background in education to create the resources. -

- -

- Measuring the project success -
- The current state of the documentation provides little educational value and is hard to navigate for the - users. After updating the documentation the educational value of the documentation will increase and it - should be easier to navigate through the educational resources. Through updating the structure of the - page and the how-tos section we will provide the users with a place where they can easily find the - needed information for simple tasks as well as more complex problems. -
- We consider this project to be a - success if we evaluate the usability and educational value, measured through surveys, of the to have - increased. The many possibilities and the already existing content will boost the process of the - project. Through a technical writer, the how-tos, among others, can be prepared in a meaningful way, - especially for the young adults. A simple navigation, as well as educational materials, form the - foundation for using the visual programming language Catrobat in a playful and easy way. -

- -

- -

Milestones

-
    -
  • Evaluate the current state of the How-Tos
  • -
      Compare the existing documentation to a list of essential programming concepts
    -
  • Update the existing documentation
  • -
      -
    • Add missing concepts
    • -
    • Provide a clear structure for the examples
    • -
        Provide needed programming concepts
      -
    • Provide good examples / use cases
    • -
    - -
  • - Quality control -
      -
    • Check for errors
    • -
    • Incorporate feedback
    • -
    • Evaluate state of the How-Tos
    • -
    -
  • -
-

-

-

Budget

- - - - - - - - - - - - - - - - - - - - - - - -
Budget itemAmmountNote / JustificationRunning total
Technical writer audit, update and quality control of the educational materials9000 $
estimation based on a 6hr/week ~60$/hr
9000 $
10 Logo T-Shirts with shipping
300 $

9300 $
-

-

- Additional information -
- Catrobat regularly participates in the Google Summer of Code and this is our first participation in the - Google Season of Docs. -
- Within the framework of this project, it would finally be possible to provide a wide range of - documentation. This first experience with a technical writer can be a basis for our how-tos. This being - our first time working with a technical writer, we will make sure to provide optimal support and - integration into the Catrobat workflow. -

- -
-
- - - - - \ No newline at end of file diff --git a/images/CodingJam2021.jpg b/images/CodingJam2021.jpg deleted file mode 100644 index 163a9c9..0000000 Binary files a/images/CodingJam2021.jpg and /dev/null differ diff --git a/images/CreateAtSchool-logo.png b/images/CreateAtSchool-logo.png deleted file mode 100644 index 83b527e..0000000 Binary files a/images/CreateAtSchool-logo.png and /dev/null differ diff --git a/images/appdesign_banner19.png b/images/appdesign_banner19.png deleted file mode 100644 index 60abbbf..0000000 Binary files a/images/appdesign_banner19.png and /dev/null differ diff --git a/images/banner.png b/images/banner.png deleted file mode 100644 index 80ad227..0000000 Binary files a/images/banner.png and /dev/null differ diff --git a/images/catrobat_text_below.png b/images/catrobat_text_below.png deleted file mode 100644 index 327b788..0000000 Binary files a/images/catrobat_text_below.png and /dev/null differ diff --git a/images/gci_banner.png b/images/gci_banner.png deleted file mode 100644 index 71668a7..0000000 Binary files a/images/gci_banner.png and /dev/null differ diff --git a/images/gci_banner_new_catrobat_logo.png b/images/gci_banner_new_catrobat_logo.png deleted file mode 100644 index 3bd8b76..0000000 Binary files a/images/gci_banner_new_catrobat_logo.png and /dev/null differ diff --git a/images/logostitch.png b/images/logostitch.png deleted file mode 100644 index 5920b46..0000000 Binary files a/images/logostitch.png and /dev/null differ diff --git a/images/project_stitch.png b/images/project_stitch.png deleted file mode 100644 index 98bf15d..0000000 Binary files a/images/project_stitch.png and /dev/null differ diff --git a/imprint.html b/imprint.html deleted file mode 100644 index 0b1711f..0000000 --- a/imprint.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - Imprint - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools

-

Home

-
- -
-

Imprint

- -

Version 2.5, 4.3.2021

- -

All Services are provided by the non-profit free/libre open source Catrobat project under the umbrella of the International Catrobat Association – Verein zur Förderung freier Software (Graz, Austria).

- -

Contact:

-

- Catrobat
- Herrengasse 3
- A-8010 Graz
- Austria (European Union)
-
- E-mail: contact@catrobat.org
- Phone number: +1 (650) 427-9594 -

- -
-
- - - - diff --git a/index.html b/index.html deleted file mode 100644 index d2cc6c2..0000000 --- a/index.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - Catrobat - - - - - - - -
-
- - Catrobat logo -

- -

A visual programming language
and set of creativity tools

- -

- Main website
-   ⇢ News section -

- -

- Get Pocket Code
for Android on Google Play

-   ⇢ QR-code to Google Play
-   ⇢ How to install and start
-   ⇢ Known issues (report new!)

- - All our apps on Google Play -

- -

- Get Pocket Code
for iPhones on the App Store

-

- -

- Get Pocket Code
on the Huawei AppGallery

-

- -

- Discord
- YouTube
- Google group
- Facebook
- Twitter
-

- -

- First steps into Catrobat
- Source code: Visit us on GitHub
- Project statistics (Open HUB) -

- -

- Credits
- Special Thanks!
- Licenses
- Privacy Policy
- Copyright Policy
- Terms of Use and Service
- Imprint -

- -

- -

- -
- -
-

Welcome to the developers' website of
the free/libre open source non-profit Catrobat project!

- -

- Catrobat is a visual programming language and set of creativity tools. -

- -

- Through Catrobat, we promote computational thinking skills as well as the - free/libre and open source software philosophy in a fun and engaging way - on a worldwide scale. -

- - - -

- Catrobat and the software developed by the Catrobat team are - inspired by the Scratch programming system - developed by the Lifelong Kindergarten Group at the MIT Media Lab. - - Catrobat itself is an independent free/libre open source software (FOSS/FLOSS) non-profit project. -

- -

- Pocket Code - allows to create and execute Catrobat - programs on Android and iOS smartphones. -

- -

- Catrobat programs written or Catrobat projects - created on one platform can be directly run on all - other platforms as well and can be shared via a our - sharing site. - Uploaded Catrobat programs are AGPLed to - allow learning, remixing, and sharing them freely. -

- -

- The Android smartphone - version of Pocket Code - can be found on Google Play. -

- -

- The iPhone - version of Pocket Code - can be found on iTunes. -

-

- See this YouTube video for some - sample applications that can be made with the public Android versions of the Catrobat tools. -

- -

- We are striving to develop our software in an uncompromising Test-Driven way (even for the hardware parts) - along with other agile methods such as Ping-Pong-Pair-Programming, - Collective Code Ownership, Continuous Integration, Robert C. Martin's Clean Code method, plus several - others such as Simple Design, altogether aiming at ensuring a clear, believably correct, and - 100% up-to-date documentation as well as high quality code. We use Specification by Example - (also called Behaviour Driven Development) to some extent to ensure that the natively implemented interpreters - execute Catrobat programs in exactly the same way on all supported platforms. -

- -
- -
- - - diff --git a/index.md b/index.md new file mode 100644 index 0000000..094dd75 --- /dev/null +++ b/index.md @@ -0,0 +1,28 @@ +--- +title: Home +layout: home +nav_order: 1 +--- + +## Welcome to the developers website of the Catrobat project! + +Catrobat is a visual programming language and set of creativity tools. + +Through Catrobat, we promote computational thinking skills and the free/libre and open-source software philosophy in a fun and engaging way worldwide. + + + +Catrobat and the software developed by the Catrobat team are inspired by the Scratch programming system developed by the Lifelong Kindergarten Group at the MIT Media Lab. Catrobat is an independent free/libre open-source software (FOSS/FLOSS) non-profit project. + +Pocket Code allows the creation and executes Catrobat programs on Android and iOS smartphones. + +Catrobat programs written or Catrobat projects created on one platform can be directly run on all other platforms as well. Interested people can share catrobat projects via our [sharing site]. Uploaded Catrobat programs are AGPLed to allow free learning, remixing, and sharing. + +[Download Pocket Code for iOS](https://catrob.at/PCios){: .btn } +[Download Pocket Code for Android](https://catrob.at/pc){: .btn } + +We strive to develop our software in an uncompromising Test-Driven way (even for the hardware parts). We are using agile methods such as Ping-Pong-Pair-Programming, Collective Code Ownership, Continuous Integration, Robert C. Martin’s Clean Code method and several others such as Simple Design, aiming to ensure a precise, believably correct, and 100% up-to-date documentation as well as high-quality code. We use specification by example (also called Behaviour Driven Development) to some extent to ensure that the natively implemented interpreters execute Catrobat programs in the same way on all supported platforms. + +{% include socials.html %} + +[sharing site]: https://share.catrob.at/ diff --git a/javascripts/scale.fix.js b/javascripts/scale.fix.js deleted file mode 100644 index 87a40ca..0000000 --- a/javascripts/scale.fix.js +++ /dev/null @@ -1,17 +0,0 @@ -var metas = document.getElementsByTagName('meta'); -var i; -if (navigator.userAgent.match(/iPhone/i)) { - for (i=0; i - - - - - Catrobat License AGPL Additional Term Exception - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools

-

Home

-
- -
-

Additional Term Exception - under section 7 of the GNU Affero General Public License, version 3, for the parts of the Catrobat system necessary for running a Catrobat Program

-
Version 2.1, 13 January 2019

-

Copyright © 2009 Free Software Foundation, Inc. https://fsf.org -
Copyright © 2010-2019 Catrobat https://www.catrobat.org/

-

This "Additional Term" exception for the "Parts of the Catrobat System Necessary for Running a Catrobat Program" is an additional permission under section 7 of the GNU Affero General Public License, version 3 ("AGPLv3"). It applies to parts of the Catrobat system bearing a notice placed by the copyright holder stating that these parts are governed by AGPLv3 along with this Additional Term.

-

When you use code that was developed by the Catrobat team to compile a stand-alone application of a Catrobat Program, the Catrobat system combines portions of the Parts of the Catrobat System Necessary for Running a Catrobat Program and the Catrobat Program which you provided, in form of a stand-alone application. The purpose of this Additional Term is to allow compilation of a non-AGPL (including proprietary) program to use, in this way, the Parts of the Catrobat System Necessary for Running a Catrobat Program.

-

0. Definitions.

-

A file is an "Independent Module" if it either requires the Parts of the Catrobat System Necessary for Running a Catrobat Program for execution after a Compilation Process, or makes use of an interface provided by the Parts of the Catrobat System Necessary for Running a Catrobat Program, but is not otherwise based on the Parts of the Catrobat System Necessary for Running a Catrobat Program.

-

"Parts of the Catrobat System Necessary for Running a Catrobat Program" mean a version of the parts of the Catrobat system necessary for running a Catrobat Program, with or without modifications.

-

"AGPL-compatible Software" is software whose conditions of propagation, modification, and use would permit combination with those parts of the Catrobat system that are governed by version 3 (or a specified later version) of the GNU Affero General Public License (AGPL).

-

"Catrobat Program Stand-Alone Application" refers to output from any part of the Catrobat system starting from a given Catrobat Program for a real or virtual target processor architecture, in executable form or suitable for input to an assembler, compiler, interpreter, loader, linker and/or execution phase. Notwithstanding that, Catrobat Program Stand-Alone Application does not include data in any format that is used as a compiler intermediate representation, or used for producing a compiler intermediate representation.

-

The "Compilation Process" transforms code entirely represented in non-intermediate languages designed for human-written code, and/or in Virtual Machine code, e.g., Java or Dalvik-compatible byte code, into a Catrobat Program Stand-Alone Application. Thus, for example, use of source code generators and preprocessors need not be considered part of the Compilation Process, since the Compilation Process can be understood as starting with the output of the generators or preprocessors.

-

A Compilation Process is "Eligible" if it is done using the Catrobat system, alone or with other AGPL-compatible software, or if it is done without using any work based on the Catrobat system. For example, using non-AGPL-compatible Software to optimize any intermediate representations for the Catrobat system would not qualify as an Eligible Compilation Process.

-

1. Grant of Additional Permission.

-

You have permission to propagate a Catrobat Program Stand-Alone Application formed by combining the Parts of the Catrobat System Necessary for Running a Catrobat Program with Independent Modules, even if such propagation would otherwise violate the terms of AGPLv3, provided that the Catrobat Program Stand-Alone Application was generated by Eligible Compilation Processes. You may then convey such a combination under terms of your choice, consistent with the licensing of the Independent Modules.

-

2. No Weakening of the Catrobat system's Copyleft.

-

The availability of this Additional Term does not imply any general presumption that third-party software is unaffected by the copyleft requirements of the licenses of the Catrobat system.

-

Note: The wording of above text closely follows the text of https://www.gnu.org/licenses/gcc-exception.html and is used with permission of the Free Software Foundation.

-
-
- - - - diff --git a/licenses.html b/licenses.html deleted file mode 100644 index 36cf62b..0000000 --- a/licenses.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - Licenses of the Catrobat System - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools

-

Home

-
- -
-

Licenses of the Catrobat system


- The following licenses, terms, and conditions apply to your use of the Catrobat system: -
Version 3.7, 13 January 2019

- -

All source code of software constituting the Catrobat system, e.g., the integrated development environments (with all associated parts such as tutorial programs) and the interpreters and compilers for the Catrobat programming language, the image editing programs, the source code of software we wrote to run the Catrobat websites and other Internet resources, and all our own source code related to the Catrobat system, are free software: you can redistribute them and/or modify them under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version when it becomes available.

- -

The names and logos of the Catrobat project and subprojects are copyrighted by and trademarks of the Catrobat project and cannot be used in derivative work. You are however allowed to use the names and logos of Catrobat, Catroid, Catty, Pocket Code, Paintroid, Pocket Paint, and other names and logos of software created by the Catrobat team in non-derivative work such as, e.g., books, brochures, or descriptive web pages. We do ask to include a note that either says "Catrobat is developed by the free/libre open source non-profit Catrobat project https://www.catrobat.org/" or "Catrobat makes it easy to create your own interactive stories, games, and animations --- and share your creations with others. As you create and share Catrobat projects, you learn to think creatively, reason systematically, and work collaboratively. All parts of the Catrobat system are developed by the free/libre open source non-profit Catrobat project https://www.catrobat.org/. They are available as free/libre open source software on GitHub".

- -

For the parts of the Catrobat system necessary for running a Catrobat program, e.g., the interpreters, the GNU Affero General Public License is supplemented by an additional permission under section 7 of version 3 of the License. This exception allows you to convey a runtime version of a program or project written in the Catrobat programming language, for which you otherwise legally hold the necessary rights, in combination with the parts of the Catrobat system necessary for running that Catrobat program, under terms of your choice, consistent with the licensing of the independent parts of the corresponding Catrobat program.

- -

Please note that this is only possible either when you are the sole creator of the program including all its parts such as graphics, texts, sounds, etc, or in case you licensed the parts of other programs on which your program is based upon, including any additional material and/or possible trademarks etc, in such a way that you are allowed to convey the resulting software under your chosen terms in consistence with these third-party materials. This additional permission is similar to the additional permission for GCC (see the corresponding Rationale and FAQ page for the exception for GCC for more information). If the work thus created has an interactive user interface, it must display a note in a screen shown when the user presses an "About" menu button or a similar way to convey such a message that says "This work was created using programs developed by the free/libre open source non-profit Catrobat project. Catrobat makes it easy to create your own interactive stories, games, and animations --- and share your creations with others. As you create and share Catrobat projects, you learn to think creatively, reason systematically, and work collaboratively. Catrobat is available as free/libre open source software on GitHub and is distributed by the Catrobat project under the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version when it becomes available. For the parts of the Catrobat system necessary for running a Catrobat program (also called Catrobat "projects" created by our users), e.g., the Catrobat Interpreter, the GNU Affero General Public License is supplemented by an additional permission under section 7 of version 3 of the License. This exception allows to convey a runtime version of a Catrobat program, for which you otherwise legally hold the necessary rights, in combination with the parts of the Catrobat system necessary for running that Catrobat program, under terms of your choice, consistent with the licensing of the independent parts of the corresponding Catrobat program.". The same notice must also be added by you as text in or along any documents you distribute together with your runtime version of the program. Please consult our Catrobat License Additional Term page for the precise legal formulation of the additional permission under section 7 of version 3 of the GNU Affero General Public License. For clarification, note that this additional permission does not apply to projects you upload to Catrobat's website. Please consult our Terms of Use and Service and our Licenses of uploaded Catrobat projects for the precise legal terms and conditions that apply to a project you upload to Catrobat's sharing site.

- -

Please also note that by using or visiting any website (including any software that we created which either runs directly on our servers, or alternatively runs client-side, e.g., in your browser, but is served by our servers) or products (including all our online services provided by software that we created which are offered through our servers), all executables we offer on any markets or the web (including, e.g., the Google Play App Store, Apple's iTunes App Store, Amazon's App Store, etc), data feeds, and services provided to you on, from, or through the Catrobat project (collectively the "Service"), you signify your agreement to (1) Catrobat's terms and conditions (the "Terms of Use and Service", found at https://catrob.at/touas), (2) Catrobat's privacy notice (found at https://catrob.at/privacypolicy), and (3) Catrobat's Community Guidelines (found at https://catrob.at/tou). If you do not agree to any of these terms, the Catrobat privacy notice, or the Community Guidelines, please do not use the Service.

- -

All non-software artefacts of the Catrobat system created by us, such as, e.g., text, graphics, photos, sounds, music, videos, audiovisual combinations, interactive features, and other materials are available under the Creative Commons Attribution-ShareAlike 4.0 International Public License (CC BY-SA 4.0), the only exceptions being the names and logos of the Catrobat project (including, e.g., Catrobat, Catroid, Catty, Pocket Code, Paintroid, Pocket Paint), which are copyrighted by and trademarks of the Catrobat project and cannot be used in derivative work. See https://creativecommons.org/licenses/by-sa/4.0/ for a human-readable summary of the Creative Commons Attribution-ShareAlike 4.0 International Public License.

- -

Catrobat additionally contains third party code and resources as follows:

- -

libGDX: <https://libgdx.badlogicgames.com>
License information: Apache 2 License <https://github.com/libgdx/libgdx/blob/master/LICENSE>
Copyright © 2011-2012 See <https://github.com/libgdx/libgdx/tree/master/gdx>

- -

XStream: <https://x-stream.github.io/>
License information: <https://x-stream.github.io/license.html>
Copyright © 2003-2006, Joe Walnes
Copyright (c) 2003-2006, Joe Walnes, Copyright (c) 2006-2015 XStream Committers
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of XStream nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- -

Toolbar custom icons 1.0 facilities from Gentleface custom icon design: <https://gentleface.com/free_icon_set.html>
License information: Creative Commons Attribution-NonCommercial 3.0: <https://creativecommons.org/licenses/by-nc-nd/3.0/>
Copyright © 2006-2011 Gentleface.

- -

MINDdroid: <https://github.com/NXT/LEGO-MINDSTORMS-MINDdroid>
-Copyright © 2010/11 Guenther Hoelzl, Shawn Brown
-Copyright © 2010/11 LEGO System A/S, Aastvej 1, DK-7190 Billund, Denmark
-MINDdroid is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-MINDdroid is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-See the GNU General Public License for more details <https://www.gnu.org/licenses/>

- -

Sparrow: <https://github.com/Gamua/Sparrow-Framework>
-Simplified BSD License
-Copyright 2013 Gamua. All rights reserved.

- -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- -

    -
  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. -
  3. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  4. -
- -THIS SOFTWARE IS PROVIDED BY GAMUA "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GAMUA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- -The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Gamua.

- -

Java HTTP Request Library: <https://kevinsawicki.github.io/http-request/>
-Copyright (c) 2011 Kevin Sawicki.

- -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions:

- -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software.

- -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE.

- -

FlowLayout (part 1):
<https://code.google.com/p/devoxx-schedule/source/.../FlowLayout.java>
-Copyright 2010 Romain Guy
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.

- -

FlowLayout (part 2):
<https://github.com/ApmeM/android-flowlayout>
-Copyright (c) 2011, Artem Votincev (apmem.org)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of the apmem.org nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL ARTEM VOTINCEV BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -

- -

Parrot AR.Drone Open API:
<https://developer.parrot.com/>
-Copyright (C) 2007-2011, PARROT SA, all rights reserved.
-
-Licensed under Parrot AR.Drone Development License v2.1
-
-DISCLAIMER
-
-The APIs is provided by PARROT and contributors "AS IS" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall PARROT and contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. -

- -

PNGJ
<https://github.com/leonbloy/pngj>
-Copyright (C) 2009-2015, Hernán J. González
-
-Licensed under Apache License Version 2.0
-
-DISCLAIMER
-
-Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -

- -

TapTargetView
<https://github.com/KeepSafe/TapTargetView>
-Copyright 2016 Keepsafe Software Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at
-
-https://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -

- - - -

Check back here from time-to-time, because we are always trying to improve our licenses.

- -

Please mail any suggestions regarding these licenses to legal@catrobat.org.

- -
-
- - - - diff --git a/licenses_of_uploaded_catrobat_programs.html b/licenses_of_uploaded_catrobat_programs.html deleted file mode 100644 index 47b6ee0..0000000 --- a/licenses_of_uploaded_catrobat_programs.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - Licenses of uploaded Catrobat programs - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools

-

Home

-
- -
-

Licenses of uploaded Catrobat programs

- -

By uploading and sharing a Catrobat program (also called a Catrobat project) via one of our apps, you accept and agree to put this work under the following licenses and terms of use and service:

- -

- Please mail any suggestions regarding these licenses to webmaster@catrobat.org. -

- -

Version: 1.4, 13 January 2019

-
-
- - - - diff --git a/mail.jpg b/mail.jpg deleted file mode 100644 index 2c526c3..0000000 Binary files a/mail.jpg and /dev/null differ diff --git a/pages/credits/contributors.md b/pages/credits/contributors.md new file mode 100644 index 0000000..b875ef2 --- /dev/null +++ b/pages/credits/contributors.md @@ -0,0 +1,190 @@ +--- +title: Contributors +nav_order: 1 +layout: home-with-socials +parent: Credits +--- + +## The Catrobat development team + +We would like to acknowledge and thank the following individuals and organizations for their contributions to this app + + + +## Project Head and Founder + +
+ + + + + + + + + + + + + +
NameContribution
{% person_output site.data.contributors.project_head %}Created initial concept and design
+
+ +{% if site.data.contributors.project_managers.size > 0 %} + +## Project Managers + +

+{% assign sortedList = site.data.contributors.project_managers | sort: 'lastname' %} +{% for person in sortedList %} +{% assign penultimate = forloop.length | minus: 1 %} + {% if forloop.index == penultimate %} + {% person_output person %} and + {% elsif forloop.last %} + {% person_output person %} + {% else %} + {% person_output person %}, + {% endif %} +{% endfor %} +

+{% endif %} + +{% if site.data.contributors.product_owners.size > 0 %} + +## Product Owners + +

+{% assign sortedList = site.data.contributors.product_owners | sort: 'lastname' %} +{% for person in sortedList %} +{% assign penultimate = forloop.length | minus: 1 %} + {% if forloop.index == penultimate %} + {% person_output person %} and + {% elsif forloop.last %} + {% person_output person %} + {% else %} + {% person_output person %}, + {% endif %} +{% endfor %} +

+{% endif %} + +{% if site.data.contributors.coordinators.size > 0 %} + +## Team Coordinators + +

+{% assign sortedList = site.data.contributors.coordinators | sort: 'lastname' %} +{% for person in sortedList %} +{% assign penultimate = forloop.length | minus: 1 %} + {% if forloop.index == penultimate %} + {% person_output person %} and + {% elsif forloop.last %} + {% person_output person %} + {% else %} + {% person_output person %}, + {% endif %} +{% endfor %} +

+{% endif %} + +{% if site.data.contributors.senior_developers.size > 0 %} + +## Senior Developers + +

+{% assign sortedList = site.data.contributors.senior_developers | sort: 'lastname' %} +{% for person in sortedList %} +{% assign penultimate = forloop.length | minus: 1 %} + {% if forloop.index == penultimate %} + {% person_output person %} and + {% elsif forloop.last %} + {% person_output person %} + {% else %} + {% person_output person %}, + {% endif %} +{% endfor %} +

+{% endif %} + +{% if site.data.contributors.designers.size > 0 %} + +## Designers + +

+{% assign sortedList = site.data.contributors.designers | sort: 'lastname' %} +{% for person in sortedList %} +{% assign penultimate = forloop.length | minus: 1 %} + {% if forloop.index == penultimate %} + {% person_output person %} and + {% elsif forloop.last %} + {% person_output person %} + {% else %} + {% person_output person %}, + {% endif %} +{% endfor %} +

+{% endif %} + +{% if site.data.contributors.contributors.size > 0 %} + +## All Contributors + +

+{% assign sortedList = site.data.contributors.contributors | sort: 'lastname' %} +{% for person in sortedList %} + {% if forloop.last == false %} + {% person_output person %}, + {% else %} + {% person_output person %} and {% person_output site.data.contributors.project_head %} + {% endif %} +{% endfor %} +

+{% endif %} + +## Translators + +

+{% assign sortedList = site.data.contributors.translators | sort: 'language' %} +{% for language in sortedList %} + {{ language.language }}: + {% assign sortedList2 = language.people | sort: 'lastname' %} + {% for person in sortedList2 %} + {% assign penultimate = forloop.length | minus: 1 %} + {% if forloop.index == penultimate %} + {% person_output person %} and + {% elsif forloop.last %} + {% person_output person %} + {% else %} + {% person_output person %}, + {% endif %} + {% endfor %} +
+{% endfor %} +

+ +## Create@School app and "No one left behind (NOLB)" consortium members + +{% for entry in site.data.contributors.createAtSchoolNOLBMembers %} +

+ {{ entry.university.name }}: + {% assign sortedList2 = entry.people | sort: 'lastname' %} + {% for person in sortedList2 %} + {% assign penultimate = forloop.length | minus: 1 %} + {% if forloop.index == penultimate %} + {% person_output person %} and + {% elsif forloop.last %} + {% person_output person %} + {% else %} + {% person_output person %}, + {% endif %} + {% endfor %} +

+{% endfor %} + +
+ +Finally, we would like to express our gratitude to our users for their support and feedback. Your input has been invaluable in making this app better. diff --git a/pages/credits/index.md b/pages/credits/index.md new file mode 100644 index 0000000..a742a0b --- /dev/null +++ b/pages/credits/index.md @@ -0,0 +1,6 @@ +--- +layout: home-with-socials +title: Credits +nav_order: 3 +has_children: true +--- diff --git a/pages/credits/special-thanks.md b/pages/credits/special-thanks.md new file mode 100644 index 0000000..70a4746 --- /dev/null +++ b/pages/credits/special-thanks.md @@ -0,0 +1,85 @@ +--- +title: Special Thanks +layout: home-with-socials +nav_order: 2 +parent: Credits +--- + +## The Catrobat team would like to give special thanks to: + +Mitchel Resnick and his Lifelong Kindergarten group at the MIT Media Lab as well as all others who were involved in the development of the Scratch programming language, in particular John Maloney, as well as the Scratch online community site, in particular Andrés Monroy-Hernández, which serve as our main inspiration source, and who gave us helpful feedback on our project as well as continuous encouragements. Also Christopher Marten-Ellis Graves, who's Master's Thesis on Multi-Touch Programming in Scratch inspired us on how to implement multi-touch support in Catrobat. + +And of course to the Scratch community as a whole! + +Alan Kay, for eToys and the Dynabook. Since we consider Catrobat to be the younger sister of Scratch, eToys would have to be one of our ancestors :-) + +Robotix Education, who greatly supports Catrobat in many ways! + +Samsung, who sponsored the Coding-for-Kids Roadshow in 2016 and 2017, and sponsored the Galaxy Game Jam we conducted in 2016. + +The children and teenagers that participated in our usability tests! + +Graz University of Technology, in particular the Institute of Software Technology, for extensive support w.r.t. the infrastructure needed for the development of Catrobat. + +CURE - Center for Usability Research & Engineering, in particular Peter Wolkerstorfer, for help on improving the usability of Catrobat for children. + +The students from Wolfgang Slany's lectures and courses at Graz University of Technology. + +Kenji Tanaka, who greatly supports us in our marketing and organizational efforts. + +Jens Mönig, the creator of the BYOB extension of Scratch, and also of the Snap! visual programming language, also for inspiration, great feedback on our project, as well as continuous encouragements. + +Mario Zechner, for help and support on his libgdx library for Android, as well as help and support w.r.t. OpenGL for Android. + +Universiti Teknologi Petronas for supporting 6 of our team members, Ainul Husna Abdul Muin, Jia Lin Chong, Denise Hoo, Fatin Ghazi, Deena Mugien, and Walter Tang, each for 6 months. + +HEC - Higher Education Commission Pakistan for supporting our team member Safdar Zaman for three years. + +The free software foundation, in particular Luigi Bai, for extensive help w.r.t. to free and open source licenses for children, as well as Richard Stallman (himself!) for letting us adapt and reuse the text of the GCC Runtime Library Exception for Catrobat. + +Google, in particular Carol Smith and Chris DiBona, for accepting Catroid (the Android version of Catrobat) as a Google Summer of Code 2011 and 2012 mentoring project and funding four students in 2011 and eight students in 2012 in this program, and also for Android itself as well as for the free software and infrastructure we use in our project. + +The Google team in Boston for promoting Catrobat and Pocket Code on Google Play for Education, donating hardware, and for pushing us to give our best. + +Graz International Bilingual School's (GIBS) pupils, teachers (in particular Imelda Görög, Heinz Knasar, Florian Lassnig, and Patricia Raposo), as well as parents of pupils, for lots of cooperation and work together with our team, in classes, with Google, in electives, and with students from Graz University of Technology and Fachhochschule Joanneum. + +Github for allowing us to use its infrastructure to host our repositories and developer pages. + +Microsoft Austria for supporting us with four Nokia Lumia 800 Windows Phone 7 devices. + +The TouchDevelop team at Microsoft Research for supporting us with 25 Nokia Lumia 710 Windows Phone 7 devices. + +Keith Andrews for supporting us w.r.t. usability engineering. + +Peter Söser from the Institute of Electronics at Graz University of Technology for help with the development of electronic circuit boards for our Arduino controlled robots. + +Catherine Rollier, Seppo Gründler and Konrad Baumann for cooperating with all things related to the improvement of the design, the user experience, as well as many other aspects of our project. + +Albert Wiltsche from the Institute of Architecture and Media for the help with the design and execution of our 3D-Print. + +Paulo Lataguia as the winner of the DesignCrowd competition for the Pocket Code icon + +Graphic designer Vipul "VIPS" Kolambe from kunda design as the winner of the DesignCrowd competition for the 2013-2018 Catrobat logo + +Neal Stephenson, for the inspiration to this project through his novel "The Diamond Age: Or, A Young Lady's Illustrated Primer: a Propædeutic Enchiridion in which is told the tale of Princess Nell and her various friends, kin, associates, &c." + +Atlassian for allowing us to use their software under an Open source license. + +JetBrains for allowing us to use their software under an Open source license. + +Slack for allowing us to use their services as a nonprofit organization. + +BrowserStack for allowing us to use their services as an open source organization. + +Parkside for supporting the local team of students at TU Graz. + +All of you, thank you very much for helping to make +Catrobat great!!! + +In case we forgot to mention you here, please forgive us and immediately contact us so that we can add you. Thank you! + +Discord +YouTube +Google group +Facebook +Twitter diff --git a/pages/development/first-steps.md b/pages/development/first-steps.md new file mode 100644 index 0000000..4afec8b --- /dev/null +++ b/pages/development/first-steps.md @@ -0,0 +1,32 @@ +--- +title: First steps into Catrobat +layout: home-with-socials +nav_order: 1 +parent: Development +--- + +## Your first steps into Catrobat + +The following lines should help you with your first steps into the Catrobat project. + +1. Write some programs using Pocket Code and Pocket Paint, upload your Catrobat programs and check out our inspiration source, the Scratch project. +2. Visit us on GitHub - As you can see, Catrobat is an extensive project with a lot of sub-teams. So go ahead and look into them. Each project should have a readme file, so check that out too. There should be viable information for you in it. +3. If you want to contribute to our project, please choose one of the sub-projects you want to work on with us. +4. Once you have selected a project, check it out and play around with it. +5. You might find a bug while trying out Catrobat. Awesome. Report it via GitHub. If you can’t find a bug, it doesn’t matter; it seems that we have done too much the right way ;) +6. Now is the right time to check out the Issues on GitHub. First, fork the project, then choose an Issue you can fix, but write a regression test for it first, and only then fix it. + +We strictly use Test-Driven Development and Clean Code (by Robert C. Martin). Read everything you can about these development methods. Code developed in a different style will not be accepted. + +### Pull Request Review + +- Have you fixed an Issue and written **at least one** test for it? +- Hopefully the pipeline does also pass **without errors**? + +🤞 Awesome! + +Open a new pull request via GitHub. +It could take time until you hear from us. In the meanwhile, why don't you choose another Issue? + +- Has your pull request been accepted? Go back to 6. +- Are there no more Issues? It can't be! Go back to 5. diff --git a/pages/development/google-summer-of-code/2016.md b/pages/development/google-summer-of-code/2016.md new file mode 100644 index 0000000..6df9e84 --- /dev/null +++ b/pages/development/google-summer-of-code/2016.md @@ -0,0 +1,415 @@ +--- +title: 2016 +layout: home-with-socials +nav_order: 2 +parent: Google Summer Of Code +grand_parent: Development +--- + +# Ideas Page for Google Summer of Code 2016 +{: .no_toc } + +We are thrilled to share our carefully curated project ideas for this year's Google Summer of Code. + +## Idea Overview +{: .no_toc .text-delta } + +- TOC +{:toc} + +## General Knowledge Prerequisites for all Projects +{: .no_toc } + +- Knowledge in the usage of Git and GitHub +- Basic knowledge in the concepts of software testing (e.g., test doubles) and test-driven development +- Basic knowledge in app development (for Android and iOS projects) +- Java, JUnit, Mockito, Robotium and Espresso for Android development +- Swift and Objective C for iOS development +- Also please check that you have the proper hardware for the development (e.g., a Android/iOS smartphone for testing, Mac for iOS development) + +## Project Descriptions +{: .no_toc } + +### Raspberry Pi Feature extension + +**Brief explanation and expected results:** + +1. use GPIO pins: set pin, read pin, set PWM values +2. Extend Raspberry Pi Features + - sensors: allow to attach several sensors which can be enabled/configured within the preferences (I2C, onewire bus, thermometer, microphone, ...) + - actors: allow to attach several (more complex) actors and configure them via preferences (IR-sender, ...) -> see sensor/actor examples + - play sounds on RaspberryPi + - run user-defined scripts on RaspberryPi + - encrypted communication (TLS) + - allow to use multiple RPi's + - attach a camera on a RaspberryPi, add commands to take a photo and use it within Pocket Code + - attach a display on a RaspberryPi, make it available in Pocket Code + - add a discovery protocol to the RPi: Avahi/Zeroconf/Bonjour + - use HDMI output of RaspberryPi (similar to chromecast project). +3. Demo application: build a small Robot using Raspberry Pi (including a tutorial) + +**Possible Mentors:** + +- Roland Urbano + +### Social Media Features + +**Brief explanation and expected results:** + +List of diverse social media features: + +1. "Upload & share" of Pocket Code programs (existing upload functionality + user-defined post on Facebook/Google+ with link to the program) +2. Social Challenging System: After "Upload & Share" functionality a challenging system can be build: Add a possibility to challenge friends with games directly created in Pocket Code (e.g. with a highscore displayed by Show-/Hide-Variable Bricks) via in-app notifications. This should include a link to the uploaded program and a short text. +3. Create a possibility to add looks and sounds from flickR (Creative Commons content), Picasa, Facebook (via Facebook Graph API) and Instagram. +4. Likes & Sharing of programs on the Pocket Code website (pocketcode.org) (UX guidelines already existing). +5. Add more social media platforms: e.g. Twitter, Instagram, WhatsApp (depending on the social media platform-related activities of Pocket Code's target group, which is currently being analyzed). +6. Facebook & Google+-Login for iOS + +**Possible Mentors:** + +- Annemarie Harzl + +**Brief explanation and expected results:** + +The feature/brickUI branch is waiting to get implemented. It will improve our usage of Android, removes a lot of code, eases new brick creating and also any adaption (and fixes) in bricks will be more quickly and less error-prone. + +In detail: +This feature branch separates the bricks from the UI. The whole logic will be located in the fragments, adapts classes and in the ViewProviders of the bricks. All checkboxes will be replaced by checkable layout and therefore the test classes have to change as well. Especially all brick related tests must be refactored and it is recommended to change them to espresso tests. + +Currently there are a lot of JIRA tickets waiting to get fixed and implemented. Fixing refactoring tickets will fix other bugs and ease testing automatically, improving the overall quality. Choosing a proper Student and Mentor is essential. The existing JIRA tickets + +- recommend test refactoring or implementation of missing test classes +- concern with performance and code quality issues or inconsistancies +- clean up and fixes e.g. packages and certain files like format of XML files +- include checkstyle rules for naming conventions, code formatting issues etc. + +**Possible Mentors:** + +- Robert Painsi + +### Groups & Scenes in Pocket Code + +**Brief explanation and expected results:** + +**Object grouping:** + +Object grouping is a feature to structure one’s Pocket Code program at object level. The purpose of introducing object grouping is to keep them together and make the object view more concise and overseeable. The depths of groups is limited to 1 which means there no nested groups (subgroups) are possible. A group is like an object but it can be expanded and collapsed to either show its containing objects or hide them. A group looks like an object with the only difference that it has an expand/collapse widget. The group’s icon is inherited from the first object in the list of containing objects. The selected group could be coloured in a different way. + +**Scenes:** + +The introduction of “scenes” in Pocket Code should ease the creation of large programs by abstraction of semantically coupled objects including code, looks and sounds into independent sub units. This makes programming of different scenes (levels) of a game insofar easier that only those backgrounds and objects which are used in this particular scene (level) are active, can be accessed by scripts and are subject to execution. A scene can be seen as an independent Pocket Code program. A Pocket Code program containing scenes can be seen as a collection of independent Pocket Code programs (scenes) where a smooth transition is possible during program execution + +**Possible Mentors:** + +- Christian Schindler + +### Pocket Code Usability improvements + +**Brief explanation and expected results:** + +To create a better user experience and improve the navigation in Pocket Code, some usability improvements should be implemented in the project. The main points of these improvements refer to the quality of the navigation in the Pocket Code app, programming with Pocket Code, other points for representation and new Bricks. + +**Navigation:** + +- remain at the same place in the menu (e.g. script view, list of objects/programs, ...) after having switched to some other place or deleting an element of the list +- rename the current program +- graphical hints/toasts, like a long press dialog to show the opportunity to use long press and find more functionality +- swipe gesture to switch between program overview and current program or to switch between scripts and hints +- change the behaviour of short-/longpress on bricks for moving a brick or opening the brick menu + +**Programming:** + +- send variables within messages to improve the interaction between objects +- re-organization of the control bricks to separate events from other control bricks (improve the overview of the bricks) +- moving an "if-statement" should move the whole if-block +- showing also the value of a local variable on the stage +- set the color and size of the shown variable on the stage + +**Representation:** + +- remove the colon after variable names +- possibility to show long comments within the note brick +- show project details like description, author, screen resolution, ... +- increase the limit of the length of a text that should be shown at the stage + +**New Bricks and Loops:** + +When working with pupils/students in our workshops it has been shown that some more features are required in Pocket Code to improve the experience with Pocke Code. Therefore new bricks should be implemented in the project: + +- wait until / repeat until + +With these bricks its easier to create loops or sleeps with a termination condition. This could be essential e.g. for making games, where you often have to wait or repeat something until a condition occurs. + +- if then (without else) + +Create a separate if-brick without an else brick, like we know it from common programming languages. This brick increases the overview of the bricks, especially with some encapsulated if-conditions. + +- switch to previous look + +Like the brick "next look" there should be a brick "previous look" to switch also backwards in the list with the different looks for an object. + +- switch backdrop to \_\_\_ + +With this brick it's possible to change the backdrop without using a broadcast-message from an object to the background. + +**Possible Mentors:** + +- Anja Petri + +### Feature Completeness (Scratch) + +**Brief explanation and expected results:** + +There are still several bricks and features which are available in Scratch, but not in Pocket Code. First, These features and bricks are needed to have an more improved programming experience and second in order to have a working Scratch2Catrobat programs converter. // The following features and bricks will be part of this project: + +**Pen/Stamp:** + +Pocket Code is missing the pen bricks from Scratch. The aim of this project is to implement these missing bricks. Pen blocks in Scratch 2.0 are used to draw something on the screen, much like in Turtle graphics. There are eleven bricks in this category. Pen bricks allow to take various actions:- Stamp the sprite - Put the pen down - Release the pen // One example of a one sprite one script project is a simple drawing program. See + +**Cloning:** + +Cloning in Scratch 2.0 is a feature that allows a sprite to create a clone, or duplicate, of itself, while the project is running. This can be useful in tower defense games, for example, for a wave of objects. Clones of a sprite will be the same as the original, or parent sprite, but as a separate instance (see ). 3 additional bricks are required - these bricks are "create a clone", "delete clone" and as script brick "when I start as clone", just like in Scratch. + +**Object collision / with color / movement:** + +To detect collisions between object is an essential game element - every shooter, race or skill game needs this feature. There are three different kinds of collision detections planned: + +- (touches) with other object: like in Scratch: Brick "touching finger/edge/object", +- object collision (touches) with certain color e.g. like in Scratch: Brick "touching color\_\_\_", +- Camera look in combination with movement, extension: camera onsprite/onstage (see Scratch) + +**Ask Brick:** + +Possibility to have a text input field in state. The user can reply to this answer via the text input field. After that this answer is stored in a program variable (like in Scratch, Brick: "Ask\_\_\_\_" + answer) + +**Missing Bricks:** + +To ensure brick completeness with Scratch the following bricks are missing: + +- Move Brick: "go to \_\_\_\_" - finger/object +- Sensing Brick: "distance to \_\_\_\_" - finger/object +- Sensing Brick: timer + reset timer (timer is a variable in FE) +- Sensing Brick: current (minute, month, date,….) +- Look Brick: change/set color +- Move Brick: set rotation style: don't rotate, left-right, all-around + +**Possible Mentors:** + +- Bernadette Spieler +- Thomas Hirsch + +### HTML5 Player Release + +**Brief explanation and expected results:** + +**HTML5 Player first release.** + +- Testing Sprites, RenderingImage, Canvas GameEngine, Device +- Find and fix issues with Sprite positioning on the canvas +- Support for device sensors, testing +- Testing User Interface +- Testing Sensor Bricks for upcoming catrobat releases +- Handle compatibility issues with certain audio formats + +**Possible Mentors:** + +- Annemarie Harzl + +### Remixes Web + +**Brief explanation and expected results:** + +Feature to split remixed programs into their components. + +- In Pocket Code, a remixed program is the result of two parent programs which were used by a student to craft a hybrid version of these two programs. +- The aim of this project is to properly split the result of the remix process into its two parent programs. +- Analyze components +- Match contained objects with the ones of the original programs +- Split remix apart +- Testing + +**Possible Mentors:** + +- Marko Burazer + +### Gamepad / Overlay + +**Brief explanation and expected results:** + +The idea behind this feature is that the the user can create a game or app with additional gamepad controls. While playing their game an overlay gamepad is used to control the movements. To minimize view obstruction by the overlay joy-pad, it would only be visible if the user taps screen. The joy-pad location would be determined by each tap and the following gesture (e.g.: swipe up) would be taken as the movement. +When the screen is not tapped the joy-pad would be almost transparent. + +**Possible Mentors:** + +- Thomas Schranz + +### Screen touched (Single Finger) & Multi-touch finger positions + +**Brief explanation and expected results:** + +New sensor variable is to be developed indicating if a finger currently touching the display and representing x- and y-position of the finger currently touching the display. +The sensor names are: + +- is_finger_touching +- finger_x +- finger_y + +If more than one finger is touching the display the is_finger_touching is true until ALL fingers are removed from the display. If more than one finger is touching the display the x and y coordinates of the finger which hit the surface last will be stored in finger_x and finger_y +Implement multitouch recognition and the use of current finger positions as sensor values. Furthermore basic gesture recognition (e.g.: swipe up) could also be implemented allowing the users to create more complex and fun games and apps. + +**Possible Mentors:** + +- Matthias Müller + +### Expert Mode for Pocket Code + +**Brief explanation and expected results:** + +Experts or people that are spending a lot of time in Pocket Code or with larg projects will benefit from the following options: + +**Bricks 2D:** + +This feature is a “Mission Control” view mode. Each object has a set of scripts which can only be scrolled through at the moment. This list can easily get long and very difficult to overview. A two finger pinch inward gesture (zoom out) would be used to enable this view, where all the scripts would be displayed side by side on one screen. By tapping anywhere or a two pinch outward gesture (zoom in) would take the user back to the original view. Fluid animations would ensure a smooth look. + +**Comment out:** + +Each object has a set of scripts that define its behaviour. This “comment out” feature would allow to disable a script and make it visually distinguishable from the active ones. This would mean that the users would no longer have to delete a script if they would want to temporarily disable it. + +**Debug Mode:** + +When pausing the game a new “enable debug mode” button would display a set of useful information. This includes variable values, sensor data and the momentarily executed scripts. Additionally a step by step code execution could be implemented. + +**Possible Mentors:** + +- David Marogy + +### Pocket Code - Integrate S2C + +**Brief explanation and expected results:** + +The ScratchToCatrobat converter is one of our most important undertakings and exists to fill the gap between the well known Scratch system and our Pocket Code project. It empowers kids to run their self-made Scratch projects on their own phone. Our converter service is hosted on one of our servers that provides a very simplistic web interface for our users. +In order to convert a Scratch program users have to perform the following steps: + +1. search for a program on the Scratch website +2. visit the webpage of our converter server on their phone/tablet device +3. enter the URL or project ID of the Scratch project +4. Download the converted Catrobat program and open it with Pocket Code + +This workflow is very cumbersome/tedious for users and requires using at least two different apps (browser and Pocket Code) which leads to unwanted media disruptions. +Tasks for this project: + +- integrate Scratch search (with Autocomplete) into our Android Pocket Code app +- list of all converted programs (app) +- progress view for currently converted programs (app) +- websocket client (communicates with our converter web service) (app) +- websocket service (server) +- Google Authentication (used to identify users and to store & share converted programs with other Android devices) (server & app) + +**Possible Mentors:** + +- Wolfgang Slany + +### Small Sumo Drone + +**Brief explanation and expected results:** + +The goal for this project is to provide functionality and integration of the Parrot Airborne Drone for the Catrobat project. The most important parts include the connection to the drone, the transmission of the controls as well the visual data transmission. + +The basic structures for the drone support on the application side is already given by the previous work. The challenge will be to create a clean interface for the communication between application and drone. + +After the project it should be possible to control a Airborne Drone in the same way as the already implemented AR.Drone2.0. This includes the basic movement as takeoff and land, gain and loose altitude, change direction in which the drone is heading and the actual movements (forward, backward and to the sides). +Each of this movements should be completely customizable through one individual Catroid Brick. Furthermore the video transmission of the drone should be displayable anywhere on the screen in different sizes. + +**Possible Mentors:** + +- Markus Hobisch + +### HTML5 Player - Compatibility / Feature Completeness (Scratch) + +**Brief explanation and expected results:** + +The HTML5 Player uses a costom JSON project format that was design to be compatible to both, the original pocket code as well as the current scratch file format. Most of the features (differences) between PocketCode and Scratch are already part of our current HTML5 players design. There are still several bricks and features which are available in Scratch, but not in Pocket Code. First, These features and bricks are needed to have an more improved programming experience and second in order to have a working Scratch2Catrobat programs converter. +The following features and bricks will be part of this project: + +**Server (PHP):** + +Unzip and convert/parse a Scratch project file into a HTML5 project file. Add serverside DTOs for bricks currently not supported. + +**Client (javascript):** + +Extend the look object to provide PocketCode/Scratch compatibility. Override the current Sprite object to generate Scratch based redering output (sprite positioning, direction, brightness, filters) if not implemented yet. +Add missing bricks (described below) in cooperation with the PocketCode team working on the same stories in PocketCode: + +**Pen/Stamp:** + +Pocket Code is missing the pen bricks from Scratch. The aim of this project is to implement these missing bricks. Pen blocks in Scratch 2.0 are used to draw something on the screen, much like in Turtle graphics. There are eleven bricks in this category. Pen bricks allow to take various actions:- Stamp the sprite - Put the pen down - Release the pen // One example of a one sprite one script project is a simple drawing program. See + +**Cloning:** + +Cloning in Scratch 2.0 is a feature that allows a sprite to create a clone, or duplicate, of itself, while the project is running. This can be useful in tower defense games, for example, for a wave of objects. Clones of a sprite will be the same as the original, or parent sprite, but as a separate instance (see ). 3 additional bricks are required - these bricks are "create a clone", "delete clone" and as script brick "when I start as clone", just like in Scratch. + +**Object collision / with color / movement:** + +To detect collisions between object is an essential game element - every shooter, race or skill game needs this feature. There are three different kinds of collision detections planned: (touches) with other object: like in Scratch: Brick "touching finger/edge/object", object collision (touches) with certain color e.g. like in Scratch: Brick "touching color\_\_\_", Camera look in combination with movement, extension: camera onsprite/onstage (see Scratch) + +**Ask Brick:** + +Possibility to have a text input field in state. The user can reply to this answer via the text input field. After that this answer is stored in a program variable (like in Scratch, Brick: "Ask\_\_\_\_" + answer) + +**Missing Bricks:** + +To ensure brick completeness with Scratch the following bricks are missing: + +- Move Brick: "go to \_\_\_\_" - finger/object +- Sensing Brick: "distance to \_\_\_\_" - finger/object +- Sensing Brick: timer + reset timer (timer is a variable in FE) +- Sensing Brick: current (minute, month, date,….) +- Look Brick: change/set color +- Move Brick: set rotation style: don't rotate, left-right, all-around + +**Possible Mentors:** + +- Christopher Immervoll + +### HTML5 Player/Project browser: UI Extensions + +**Brief explanation and expected results:** + +Extend the current HTML5 Player to provide several new UI features: + +- Search/browse/load projects within our player application +- Store latest projects executed using a HTML5 local store +- Provide a quick start (home screen) icon for mobile to launch our player directly +- Provide a menu or buttons to select UI language +- Provide a menu or button as well as logic to switch to full screen (mobile) +- Extend the Page object to provide a mobile alike navigation +- Write a visual (HTML, css) represention for existing bricks so users can also browse the projects code (read only) + +**Possible Mentors:** + +- Thomas Hirsch + +### HTML5 Player: Rendering + Physics + +**Brief explanation and expected results:** + +Our player currently makes use of the fabricJs library to render sprites to our viewport. We only use fabricJs to draw sprites and handle click/tab events- therefor the wohle framework is a huge overhead (even if custom compiled). Our application was already designed to replace this library to enable individual caching logic on sprites and looks. + +- make a desition on how to replace the fabricJs library with an individual rendering engine (design) +- replace fabricJs and +- write/rewrite all required test cases + +Physics is going to be release soon and there is currently no support: + +- Extend the serverside code (PHP) +- Override the current sprite object to get a physics enabled sprite object based on the PocketCode (java) implementation +- Implement missing bricks +- Implement unit tests for all extensions made + +**Possible Mentors:** + +- Paul Schreiner + +### Your own Project Ideas + +Please do not hesitate to bring forward your own ideas and discuss them with the Catrobat team members at #catrobat on Freenode or by contacting us via ! diff --git a/pages/development/google-summer-of-code/2017.md b/pages/development/google-summer-of-code/2017.md new file mode 100644 index 0000000..512b4ef --- /dev/null +++ b/pages/development/google-summer-of-code/2017.md @@ -0,0 +1,263 @@ +--- +title: 2017 +layout: home-with-socials +nav_order: 3 +parent: Google Summer Of Code +grand_parent: Development +--- + +# Ideas Page for Google Summer of Code 2017 +{: .no_toc } + +We are thrilled to share our carefully curated project ideas for this year's Google Summer of Code. + +## Idea Overview +{: .no_toc .text-delta } + +- TOC +{:toc} + +## General Knowledge Prerequisites for all Projects +{: .no_toc } + +- Knowledge in the usage of Git and GitHub +- Basic knowledge in the concepts of software testing (e.g., test doubles) and test-driven development +- Basic knowledge in app development (for Android and iOS projects) +- Java, JUnit, Mockito, Robotium and Espresso for Android development +- Swift and Objective C for iOS development +- Also please check that you have the proper hardware for the development (e.g., a Android/iOS smartphone for testing, Mac for iOS development) + +## Project Descriptions +{: .no_toc } + +### HTML5 Physics Engine + +**Brief explanation and expected results:** + +PocketCode provides several code bricks for physics-enabled sprites: + +- SetPhysicsObjectTypeBrick +- SetVelocityBrick +- RotationSpeedLeftBrick +- RotationSpeedRightBrick +- SetGravityBrick +- SetMassBrick +- SetBounceFactorBrick +- SetFrictionBrick +- WhenCollisionBrick + +A basic implementation of the bricks is already available (setter, getter) but these values are currently not supported (ignored). The physics engine will take care of these settings and render the physics states parallel to our current rendering engine supporting the same interfaces. The engine should work on desktop and mobile browsers. Some tasks you will have to accomplish: + +- Work on the specification together with your mentor +- Calculate vertices from images +- Replace the current look object with a physics object (physics sprite) +- Calculate physics states of all physics objects per rendering frame +- Rewrite existing code where conflicts occur between rendering engines (ifOnEdgeBounce, rotationType, whenCollision, ..) +- Unit- & integration- testing (several devices, browsers, ..) +- ... + +**Desired Outcome:** HTML5 Player supporting all physics bricks + +**Possible Mentors:** + +- Matthias + +### iOS: Implementation of missing Bricks and Sensors + +**Brief explanation and expected results:** + +In order to be able to support Catrobat Language version 0.991 it is necessary to implement a set of missing Bricks and Sensors. +New Bricks: + +- CameraBrick +- ChooseCameraBrick +- IfThenLogicBeginBrick +- RepeatUntilBrick +- WhenTouchDownBrick + +New Sensors: + +- screen_touch_x +- screen_touch_y +- screen_touch_x(1) +- screen_touch_y(1) +- screen_is_touched(1) +- last_screen_touch_index +- color + +Tasks your have to accomplish: + +- Create data models for new Bricks +- Implement serialization and deserialization +- Implement Brick visualization and related UI actions +- Implement new logic in Player Engine +- Write unit & integration tests + +**Desired Outcome:** Support of all Bricks and Sensors for Catrobat Language version 0.991 (except physics bricks) + +**Possible Mentors:** + +- Michael + +### Catroid-Core: Refactoring Code + +**Brief explanation and expected results:** + +Refactor code to improve: + +- readability +- maintainability +- testability +- PMD, CPD, Findbugs and LINT checking + +Architectural changes to + +- comply with Android guidelines +- comply with software design patterns +- enforce testability and introduce and enforce the use of MOCKing +- give architectural overview as documentation for future developments with tangible examples + +**Desired Outcome:** Slimmer, maintainable, clean code compliant, more stable, more robust, Pocket Code version using architectural Patterns rather than Antipatterns + +**Possible Mentors:** + +- Christian + +### Catroid-Core: Refactoring Ui Tests + +**Brief explanation and expected results:** + +- Transition from Robotium to Espresso framework for the GUI-tests and therefor getting rid of unnecessary waits +- Get rid of Polidea testrunner +- Get rid of redundant, flaky and broken tests +- Create meaningful tests compliant with clean code rules +- Get rid of reflections +- Get rid of reflections in tests to introduce and enforce the use of MOCKing +- Setting up proper gradle tasks and jenkins integration +- Create guidelines as documentation in confluence how to test in this project with tangible examples + +**Desired Outcome:** Refactored, slimmer test harness using Espresso instead of Robotium and introduce and enforce the use of Mocking framework + +**Possible Mentors:** + +- Thomas + +### Catroid-Core: Refactoring Unit Tests + +**Brief explanation and expected results:** + +- Review of existing JUnit tests and splitting them in two groups, actual Unit tests and Integration tests +- Re-implement subset of UiTests that do not require a Ui as integration/unit tests +- Get rid of Polidea testrunner +- Get rid of redundant, flaky and broken tests +- Create meaningful tests compliant with clean code rules +- Get rid of reflections +- Get rid of reflections in tests to introduce and enforce the use of MOCKing +- Setting up proper gradle tasks and jenkins integration +- Create guidelines as documentation in confluence how to test in this project with tangible examples + +**Desired Outcome:** Refactored, slimmer and more robust JUnit tests, introduction of a new test group of integration tests (technically based on JUnit), and enforce the use of Mocking framework + +**Possible Mentors:** + +- Wolfgang + +### Catroid-Core: Refactor/Introduce Flavoring (Flavoring NEW) + +**Brief explanation and expected results:** + +- Meaningful, stable, robust, way to activate additional unique features in Pocket Code which are not the core functionality like, e.g., education features needed for school courses (Dashboard, Analytics) +- Feature de/activation must have an impact on the size of the APK - in terms of footprint of the resulting APK, the less flavor features are activated the smaller the footprint + +**Desired Outcome:** Working flavoring as a base for integration of Pocket Paint and other functionality beside the core Pocket Code functionality + +**Possible Mentors:** + +- Bernadette + +### Pocket Code - Pocket Paint: Integrate Pocket Paint AS a Flavor into Pocket Code + +**Brief explanation and expected results:** + +- Pocket Paint should be a flavor of Pocket Code. This makes sense to integrate Pocket Paint into Pocket Code (no need to install both anymore). But it also allows to publish Pocket Paint still as a standalone app in the Google Playstore, as until now. +- Pocket Paint should be integrated into Pocket Code in a way that it can be set to be build as a standalone APK and also published as such in the Google Playstore. +- The footprint must be according the used features - smaller than with activated Pocket Code. + +**Desired Outcome:** Make Pocket Paint a flavor of Pocket Code + +**Possible Mentors:** + +- Annemarie + +### UX Redesign of Pocket Code + +**Brief explanation and expected results:** + +- Redesign GUI for Pocket Code - look and feel as it was done in Pocket Paint the last year +- Detailed Guideline for the Redesign, in respect of material design, will be provided + +**Desired Outcome:** Redesign of all GUI Elements according the current Android and the worked out UX guidelines + +**Possible Mentors:** + +- Sebastian + +### iOS: Create your own Bricks - User Bricks + +**Brief explanation and expected results:** + +User Bricks provide the functionality to create custom scripts which allow one to reuse user-defined functionality across objects without duplicating Bricks. This is the Catrobat-equivalent to "Custom Blocks" in Scratch. +Tasks you have to accomplish: + +- Create data model +- Implement serialization and deserialization +- Provide a user interface to create and edit User Bricks + - Each User Bricks consists of a header and a number of normal Bricks + - The header of a User Brick can contain text and variables which can be used within the User Brick +- Integrate in Player Engine +- Write unit & integration tests + +**Desired Outcome:** User should have the possibility to create custom scripts which can be reused without duplicating Bricks + +**Possible Mentors:** + +- TBA + +### HTML5: UserBricks (Scripts + CallUserScript) + +**Brief explanation and expected results:** + +Parser: Parsing the user scripts (early version) is already available in our backend (PHP). There may be the need of customization the parser and adding unit tests for the backend. Client: + +- load the userScripts into our gameEngine +- brick logic for calling the scripts +- adjusting parser/formula objects to execute code in a new scope (e.g., using script parameters instead of local/global variables) +- extend the sprite cloning brick to clone the user scripts as well if necessary +- make sure the stopScriptBrick is handled correctly when placed inside a userScript +- unit + integration testing (several platforms, browsers, ..) + +**Desired Outcome:** HTML5 Player supporting user defined scripts and the brick calling theses scripts + +**Possible Mentors:** + +- TBA + +### Pocket Code: Inclusion of Firebase + +**Brief explanation and expected results:** + +- Integrate Firebase Funnels feature to track success rate of login, etc. +- Integrate Firebase FCM (Firebase Cloud Messaging) feature so we can + notify our user of cool coding events. +- Improve manual bug reporting to also report defects which doesn't cause the app to crash. +- Fix Firebase crash reports. + +**Desired Outcome:** Firebase implemented in Catroid and producing useful output + +**Possible Mentors:** + +- Robert + +### Your own Project Ideas + +Please do not hesitate to bring forward your own ideas and discuss them with the Catrobat team members at #catrobat on Freenode or by contacting us via ! diff --git a/pages/development/google-summer-of-code/2018.md b/pages/development/google-summer-of-code/2018.md new file mode 100644 index 0000000..6540d83 --- /dev/null +++ b/pages/development/google-summer-of-code/2018.md @@ -0,0 +1,166 @@ +--- +title: 2018 +layout: home-with-socials +nav_order: 4 +parent: Google Summer Of Code +grand_parent: Development +--- + +# Ideas Page for Google Summer of Code 2018 +{: .no_toc } + +We are thrilled to share our carefully curated project ideas for this year's Google Summer of Code. + +## Idea Overview +{: .no_toc .text-delta } + +- TOC +{:toc} + +## General Information +{: .no_toc } + +These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g., new features, extensions, ...) that are related to the project and in which you're interested in. We do have many senior contributors who would be happy to mentor such a project. Don't be shy and check out the last point on the list: [Your idea](#your-own-project-ideas)! + +## General Knowledge Prerequisites for all Projects +{: .no_toc } + +- Knowledge in the usage of Git and GitHub +- Basic knowledge in the concepts of software testing (e.g., test doubles) and test-driven development +- Basic knowledge in app development (for Android and iOS projects) +- Java, JUnit, Mockito, Robotium and Espresso for Android development +- Swift and Objective C for iOS development +- Also please check that you have the proper hardware for the development (e.g., a Android/iOS smartphone for testing, Mac for iOS development) + +## Project Descriptions +{: .no_toc } + +### Include Paintroid into Pocket Code + +**Brief explanation and expected results:** + +Make Pocket Paint a subproject of Pocket Code: Currently Pocket Paint is an individual app on Google Play. However, since it is primarily used in connection with Pocket Code, it makes sense to merge these two apps into one. Instead of being an individual app, we want it to be included into Pocket Code - keeping the same functionality, but improving the User Experience for the user. Several challenges occur that will have to be considered for this project: How do modularize the code to make keep it maintable and keep a good performance? How to test it properly? How to resolve issues that result from the fact that these have been two different projects in the past? And also are there parts of the code that might be refactored during this process easily? + +**More Information:** + +- Pocket Paint should get integrated into Pocket Code +- The final outcome should be a subproject similar to Pocket Music +- Remove any memory hogs (singletons, unecessary static variables) +- Merge activites which offer functionality already present in Pocket Code (e.g. language selection) +- Adapt namespaces +- Refactor unit and integration tests +- Move resources and assets (Reuse if possible) +- Integrate strings from crowdin, avoid duplication if possible + +### Testing, Testing, Testing + +**Brief explanation and expected results:** + +increased code coverage, consolidated and more stable test setup, production code refactored with a focus on better testability + +**Desired Outcome:** + +Code coverage wise theres a lot of work to do. The recent frontend refactoring that switched big portions of the ui to now utilize android recycler view only comes with a rather basic set of tests, more tests have to be put in place here. +Theres quite a lot of room for improvement when it comes to testable code, eg. encapsulating storage handling, problems that arise due to handing context deeper and deeper into classes that should not need it in the first place, etc. Those should be refactored and tests cleaned up accordingly. +Also going hand in hand with the task above, refactoring the existing test utilities (especially with unit tests) to enforce a more object oriented approach towards testing. (Historically in this project tests were almost exclusively treated as if one could only use an imperative approach for writing tests) +Unit and Espresso test sets are currently running on our Jenkins instances, but a few subsets of tests are currently not part of any automated run, eg. device tests, sensor test box tests, etc. Jenkins jobs for those subsets should be written, the existing test annotations can be used, and all jobs should be consolidated. + +### Refactoring Part 2: Bricks + +**Brief explanation and expected results:** + +UI and Interpreter are completely separate. UI adheres to Material Design Guidelines. + +**More Information:** + +In GSoC 17 the UI was refactored, however, the Bricks are still unchanged. The Bricks as a visual representation of the LibGdx actions should be completely separate. Standalone APKs would then finally be independent from the UI. +he storage handling and the hierarchy suffered greatly when Scenes were introduced, this has to be changed. The internal structure of scripts is horrific → lists with dependencies and duplicate cross references. A solution would be to implement +a tree structure instead (but could also be something else). Broadcasting is currently being refactored, but integration is still an open and hot topic. + +### iOS: Devices Sensors and Code Refactoring + +**Brief explanation and expected results:** + +Match iOS sensor ranges with Android specification. The student needs to come up with a design to enforce testability and the use of Mocking + +**More Information: Devices Sensors and Code Refactoring:** + +The Pocket Code app makes use of a variety of device sensors like inclination, compass, loudness, face detection and much more. + +On both, the Android and the beta version of iOS, called "Catty", these sensors are widely used in a large number of user-built programs. + +**Current Situation:** + +The Android version of Pocket Code and Catty are currently handling sensors in a different way resulting in a varying interpretation of sensor values (e.g. differing ranges of values). Additionally, many sensors get initialised with a differing default value. + +Due to these deviations, many Catrobat programs behave differently depending on whether executed on the Android or Catty version. + +**Planned Improvements:** + +Catty should be refactored so that the handling of sensors, the conversion of ranges and the initialisation happens in a synchronized, highly performant and more-readable way. + +Additionally, a suitable test framework for sensors needs to be introduced. The student needs to come up with a design to enforce testability and enforce the use of Mocking. + +### Robotic arm for testing device sensors + +**Brief explanation and expected results:** + +A Framework for automated testing of Device's sensor with a Roboarm connected to Jenkins + +**More Information:** + +Include a Roboarm (e.g.such one available from Conrad) into the automatic Jenkins test pipeline to test following sensors: + +- accelleration +- magnetic sensor +- Proximity sensor +- Inclination x/y/z + +The robotic arm is to be interfaced with a Raspberry Pi. An Android testdevice is to be mounted on the robotic arm in a way, that it can be easily unmounted, that it has working USB Connection to the Jenkins, to upload the testsuite and run the tests. A REST-ful service has to be implemented which runs on the Raspberry Pi which takes commands to move the robotic arm in a way which is needed for testing the sensors in the device. The server mus be accessible via the network and accept command from the tests running on the device. Tests for this device test suite for the aforementioned sensors are to be written, that the device can be moved with the robotic arm and the sensor data can be read out and compared to expected values. A jenkins test job has to be implemented to run the sensor-tests on the device. + +### Scratch compatibility - Color Collision + +**Brief explanation and expected results:** + +Bricks for Collisions: Object-with-Color: object with color in backgorund or other sprite; Color-with-Color: define a color of a sprte colliding with another color + +**More Information:** + +For collision detection it should be possible to define a color that an object collides with either in the backgorund or in any other sprite on the screen. Next step is to detect that a certain color of the sprites collides with a certain color in backgorund or in any other sprite. Here must be paid attention to the position of the layer the sprite is rendered to in terms of visibility of the color which is to be tested for collision with the sprite. E.G., if a color which is to be tested for collision is already coverd by a sprite NOT containing this color, the sprite which tests for collision is to be rendered above this aforementioned sprite - no collission is to be detected. Another case must be considered, if the the sprite checking for collision with color is covered by another sprite NOT contining the color, and another sprite contining the color is renderd above both of them - no collission is to be detected. In Detail there are more cases as such which musst be carefully determined and tested, that the color collision works the same like in Scratch. + +- UI feature to select colors (sprite or a background) +- implementation to behave like Scratch color collision +- run-time optimization/scalability: it must be possible to check for collision with colors with an arbitrary number of objects rendered to the screen + +### Scratch compatibility - Missing Bricks + +**Brief explanation and expected results:** + +Since Catrobat got inspired by Scratch and other visual programming languages, we also want to provide similar features, to make it young users as easy as possible to switch between those. Thus, certain features, beside the color collision, still need to be implemented in Pocket Code. + +**More Information:** + +- Timer Sensor: Implement a Timer value as sensor, that starts when the program starts and also include a new brick to reset this timer to 0. +- Set Volume for Sprites: Currently the "set volume brick" sets the volume for the whole app. However, it would have a huge benefit if you could also set the volume for certain sprites too. +- Volume-Sensor Value: As mentioned above it should be possible to set the volume individually for each sprite. But, as an extension it afterwards should also be possible to access this volume as sensor-value from other sprites. +- Show/Hide List: Currently there is just the Show/Hide Variable Brick. Similar to that it should be also possible for lists. +- Extend "Distance to": Currently "Distance to" in the formular editor just allows you to get the distance to the last touch-position on the screen. This feature should be extened by also adding the possibility to get the distance to another object (you may select in the formula editor) +- Delete everything from list: Implement a special brick that deletes all elements from a list. Do not just use a loop therefore, try to find a fast and elegant solution to achieve this. + +### Google Blockly integration + +**More Information: Google Blockly is a library for building visual programming editors.** + +Google Blockly is increasingly being used as a platform for visual programming languages such as Scratch 3.0, AppInventor, and code.org. Especially the actively developed Scratch 3.0 instantiation is very congruent with Catrobat, since Catrobat was initially modeled after Scratch. + +**Current Situation:** + +Catrobat bricks used in scripts that are manipulated in the IDE part of Catroid (Android code base of Pocket Code and its flavors) and Catty (iOS code base of Pocket Code and its flavors), as well as the script preview on the sharing platform of Catrobat (Catroweb), all use our own visualizer. They display the scripts in a linear way, without the typical C and E nested bricks as known from Scratch and Blockly. + +**Planned Improvements:** + +We want to use the Scratch variant of Blockly to display Catrobat scripts and bricks in a webview. In a first step, the passive script preview on the sharing platform of Catrobat (Catroweb) should use Blockly instead of our current code base. One important issue that needs to be addressed is to use the correctly translated strings (localization, including for right to left languages such as Arabic). In a next step, this visualization of bricks shall also be used in a webview in Catroid and Catty, as an alternative way to display scripts and blocks, on an infinite virtual plane. For the two apps, it should be possible to switch back and forth between the read-only Blockly view and our current view of the scripts. Another important consideration needs to be that we want to be able to keep important the Blockly/Scratch 3.0 code repeatedly indefinitely in the future in order to be able to incorporate bug- and security fixes as well as feature enhancements. + +### Your own Project Ideas + +Please do not hesitate to bring forward your own ideas and discuss them with the Catrobat team members at #catrobat on Freenode or by contacting us via ! diff --git a/pages/development/google-summer-of-code/2019.md b/pages/development/google-summer-of-code/2019.md new file mode 100644 index 0000000..2d74f30 --- /dev/null +++ b/pages/development/google-summer-of-code/2019.md @@ -0,0 +1,152 @@ +--- +title: 2019 +layout: home-with-socials +nav_order: 5 +parent: Google Summer Of Code +grand_parent: Development +--- + +# Ideas Page for Google Summer of Code 2019 +{: .no_toc } + +We are thrilled to share our carefully curated project ideas for this year's Google Summer of Code. + +## Idea Overview +{: .no_toc .text-delta } + +- TOC +{:toc} + +## General Information +{: .no_toc } + +These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g. new feautes, extensions,...) that are related to the project and you're interested in. We do have many senior-contributors who would be happy to mentor such a project. Don't be shy and check out the last point on the list: [Your idea](#your-own-project-ideas)! + +## General Knowledge Prerequisites for all Projects +{: .no_toc } + +- Knowledge in the usage of Git and GitHub +- Basic knowledge in the concepts of software testing (e.g., test doubles) and test-driven development +- Basic knowledge in app development (for Android and iOS projects) +- Java, JUnit, Mockito, Robotium and Espresso for Android development +- Also please check that you have the proper hardware for the development (e.g., a Android/iOS smartphone for testing, Mac for iOS development) + +## Project Descriptions +{: .no_toc } + +### Coding Tutorial Game + +**Brief explanation and expected results:** + +Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. + +**More Information:** + +Tutorial games are available for many computer games, but extremely rarely for learning programming, and then are usually playable in a few minutes and not very exciting. A great exception for teenagers is Nintendo's tutorial game in Wario Ware: Do It Yourself. Another example tutorial game for coding designed especially for girls is the one with WonderWoman. + +If you have your own original idea about a tutorial game, please feel free to suggest it. Note that the focus in GSoC should be on the design and on coding. + +You will create a tutorial game tailored specifically for younger teenage girls (13-14), allowing them to learn how to code apps with Luna&Cat on their own phones, without a PC or tablet. The focus of the project is on the conception, the design, as well as the development and testing of the tutorial game. + +This game will serve as a coding tutorial game for a new flavor of our popular app Pocket Code with has the name Luna&Cat. Luna&Cat is a customized version for teenage girls (see our new themed webview with example/featured games: ). The Android version of Luna&Cat will become available on Google Play by March 2019. The tutorial game must be extremely engaging and motivating for this challenging target group of younger female teenagers. It should NOT be boring, so NO "chocolate-covered broccoli" game! At the same time, it should teach coding on small smartphone screens. Average duration of playing the entire tutorial game on the phone should be around 90 to 150 minutes. It should cover 60 - 80% of the functionality of Luna&Cat, the integrated paint editor, and the Catrobat sharing platform (note that prioritization is necessary --- not everything is equally important). + +The coding tutorial game will be integrated into the app and will be freely available on popular app stores around the world. Note that the tutorial game will be published under Catrobat’s licenses as described in detail on Licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0. The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses (e.g., you can also use graphics from our media library or Luna and Cat as main characters). + +In summary, this GSoC coding tutorial game should become an incredibly awesome, challenging & amazing tutorial game that supports younger female teenagers in a playful way to learn coding Catrobat apps. + +In your GSoC application, please add a link to a proof of concept for such a game that you have created on your phone using Pocket Code (or Luna&Cat, if already available). Also describe shortly your ideas for the story of the coding tutorial game you want to develop in your GSoC project. Mentor contact: bernadette.spieler@catrobat.org + +### Awesome Demo Game Project + +**Brief explanation and expected results:** + +Spend the whole GSoC time developing one huge game using the Pocket Code IDE app, i.e., programming in the Catrobat visual coding language. + +**Desired Outcome:** + +The game must be playable both on a phone as well as when cast from the phone to a smart TV. + +The game should be strongly inspired by a hugely popular recent 2D game. I am thinking The Binding of Isaac or its Rebirth variant, but your own suggestions of other popular games might be even better, and are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games. + +If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on Licences and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0. + +The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses. + +The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion. + +In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code. + +In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be payable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project. + +Boyakasha! + +Mentor contact: wolfgang@catrobat.org + +### Testing Efficiency Catroid + +**Brief explanation and expected results:** + +Although the test-coverage and execution of Catroid got incredigly improved, there is still refactoring and new tests needed to guarantee the best test coverage possible. + +**More Information:** + +If you look up previous years' Catrobat-GSoC-projects, you'll find various projects to rewrite tests and introduce Espresso Tests. This was an important step that helped to get a good basis for future work. Wheras new features are already implemented with "good" tests, many old tests still don't work as expected, don't cover all needed cases, are unnecessary or include dependencies that lead to a certain flakiness in test execution (i.e. they influence the order they need to be executed). As GSoC project we would like you to refactor these still open issues and also introduce a new testing-structure, making it possible to characterize tests and enable developers to test on certain levels (e.g. IDE, just specific features, extensions, etc.). Therefore, as part of this GSoC project you will define these levels together with the community, collaborate with the Jenkins-Contributors to automate these levels and finally implement it as part of your refactoring. So once again, as for the last years' GSoC projects: for Catroid testing never ends. + +### iOS: Scenes + +**Brief explanation and expected results:** + +Serialization of the Scenes for different levels in a Pocket Code program + +**More Information:** + +The introduction of “scenes” in Pocket Code should ease the creation of large programs by abstraction of semantically coupled objects including code, looks and sounds into independent sub units. This makes programming of different scenes of a game insofar easier that only those backgrounds and objects which are used in this particular scene are active, can be accessed by scripts and are subject to execution.Scenes can be seen as an independent Pocket Code program (like different levels in a Game/Program). + +- Implementation of a functionality to group objects into so called „Scenes“ +- Implementation of the new logic, data models and the UI +- Unit and Integration Tests + +### iOS: Features + +**Brief explanation and expected results:** + +ASupport of all Bricks for Catrobat Language version 0.992 (except physics bricks and extensions like Lego) + +**More Information:** + +In order to be able to support Catrobat Language version 0.992 it is necessary to implement a set of missing Bricks. +New Bricks: + +- WhenConditionBrick +- AskBrick +- ClearBackgroundBrick +- CloneBrick +- ComeToFrontBrick +- DeleteThisCloneBrick +- GoToBrick +- PenDownBrick +- PenUpBrick +- PlaySoundAndWaitBrick +- SetBackgroundAndWaitBrick +- SetPenColorBrick +- SetPenSizeBrick +- SetTextBrick +- StampBrick +- StopScriptBrick +- WhenBackgroundChangesBrick +- WhenClonedBrick + +The robotic arm is to be interfaced with a Raspberry Pi. An Android testdevice is to be mounted on the robotic arm in a way, that it can be easily unmounted, that it has working USB Connection to the Jenkins, to upload the testsuite and run the tests. A REST-ful service has to be implemented which runs on the Raspberry Pi which takes commands to move the robotic arm in a way which is needed for testing the sensors in the device. The server mus be accessible via the network and accept command from the tests running on the device. Tests for this device test suite for the aforementioned sensors are to be written, that the device can be moved with the robotic arm and the sensor data can be read out and compared to expected values. A jenkins test job has to be implemented to run the sensor-tests on the device. + +Tasks you have to accomplish: + +- Create data models for new Bricks +- Implement serialization and deserialization +- Implement Brick visualization and related UI actions +- Implement new logic in Player Engine +- Write unit & integration tests + +### Your own Project Ideas + +Please do not hesitate to bring forward your own ideas and discuss them with the Catrobat team members at #catrobat on Freenode or by contacting us via ! + diff --git a/pages/development/google-summer-of-code/2020.md b/pages/development/google-summer-of-code/2020.md new file mode 100644 index 0000000..4f956ce --- /dev/null +++ b/pages/development/google-summer-of-code/2020.md @@ -0,0 +1,161 @@ +--- +title: 2020 +layout: home-with-socials +nav_order: 6 +parent: Google Summer Of Code +grand_parent: Development +--- + +# Ideas Page for Google Summer of Code 2020 +{: .no_toc } + +We are thrilled to share our carefully curated project ideas for this year's Google Summer of Code. + +## Idea Overview +{: .no_toc .text-delta } + +- TOC +{:toc} + +## General Information +{: .no_toc } + +These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g. new features, extensions,...) that are related to the project and you're interested in. We do have many senior-contributors who would be happy to mentor such a project. Don't be shy and check out the last point on the list: [Your idea](#your-own-project-ideas)! + +## General Knowledge Prerequisites for all Projects +{: .no_toc } + +- Knowledge in the usage of git +- Basic knowledge in the concepts of software testing and test-driven development +- Basic knowledge in app development (for Android and iOS projects) +- Java, JUnit, Robotium and Espresso for Android development +- Swift and Objective C for iOS development +- Also please check that you have the proper hardware for the development (e.g. a Android/iOS smartphone for testing, Mac for iOS development) + +## Your Application +{: .no_toc } + +Please find the mandatory template for the application and additional information on this shared Google Doc. + +## Project Descriptions +{: .no_toc } + +### Awesome Demo Game Project + +Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. The game must be playable both on a phone as well as when cast from the phone to a smart TV. + +The game should be strongly inspired by a hugely popular recent 2D game, your own suggestions of popular games are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games. + +If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on Licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0. + +The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses. + +The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion. + +In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code. + +In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be playable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project. + +Boyakasha! + +Mentor contact: wolfgang@catrobat.org + +### iOS: Landscape Mode + +Users of the iOS implementation of Pocket Code should be able to choose between a landscape and a portrait mode when creating a new project, just like in the Android implementation of Pocket Code: + +- According to this choice, the whole stage should be in a landscape or portrait orientation. +- In order to enable this, changes need to be done in the UI, the persistence level and most importantly, a lot of sensors (both for the device and for the objects) need to be translated according to the given orientation. +- The student needs to come up with a design to enforce testability and enforce the use of mocking. + + +### iOS: Integrate Google Sign-In and add tagging for projects + +Users of Pocket Code should be able to sign-in and upload their projects both with their Catrobat accounts and with their Google accounts. In order to accomplish this, at least the following tasks have to be accomplished: + +- The authentication providers and the project upload have to be refactored and a suitable test framework needs to be introduced. +- The student needs to come up with a design to enforce testability and enforce the use of mocking and API client testing with fixtures. +- Additionally, similar to the Android implementation of Pocket Code, the user should be able to choose between a predefined set of tags (e.g., Game, Animation, Art, Experimental) prior to upload their own projects. Again, the upload functionality needs to be refactored to enforce testability and API client testing with fixtures. + + +### Android: Redesign landing page for Pocket Code + +The first page of Pocket Code should be redesigned so that parts of the community page are shown, e.g., featured projects, most recent projects, including "My projects": + +- New UI for the first page of Pocket Code +- Fetch projects using the API from the share +- For legacy users who are only updating, i.e., who have had Pocket Code already installed: After the first time the app is executed after the update, show the legacy users a selection option with screenshots of the old and new interface, and ask whether they want to continue using the old, or whether they want to try the new interface. + + +### Android: Separate and modularize interpreter and IDE in Pocket Code (Refactoring) + +Modularize Pocket Code so that we end up with one separate module for each the IDE and the Interpreter: + +- In Pocket Code the IDE is seen as the interface for creating/editing projects, as well as the Pocket Code Community +- The Interpreter is responsible for interpreting and executing Catrobat projects. So basically that’s where the action happens. The user created projects gets executed in this module. + +This projects includes planning on how to split up the code base to modularize Pocket Code and come up with a step-by-step refactoring: + +- Planning Interfaces to communicate in a more generic way +- Building Wrappers around classes where functionality lies in Background for easier Refactoring +- Begin of detailed Refactoring + + +### Web: Implement new OAuth Provider and refactor Google Sign-In + +The current OAuth provider is outdated and should be refactored: + +- Implement new OAuth2 Provider for Symfony (preferably HWIOAuthBundle) +- The authentication providers have to be refactored and suitable tests need to be written +- Additionally, the currently used Social Login Provider needs to be refactored/thrown out and documented thoroughly +- Optionally, expanding social logins to other platforms, e.g., Facebook, GitHub etc. + + +### DevOps: Automated Deployment Chain + +The overall idea is to make it possible for the Product Owner to release an APK of a certain release candidate to the production channel of Google including all necessary steps of signing and aligning the APK. + +The workflow to do so shall be kicked off by a Product Owner who logs into the Jenkins and starts a release-job, which: + +- builds the release candidate in DEBUG version +- runs all RELEASE-relevant tests on this DEBUG version +- when it is OK, a RELEASE version is built - the signing and aligning of this artifact takes place in a secure sandbox which is NOT easily accessible from the outside +- after previous step the signed and aligned APK is once again tested with the RELEASE-relevant tests to ensure the release-version DOES NOT BREAK any functionality covered by the release-relevant tests +- when the release-relevant tests with the RELEASE-APK ran green, the APK is automatically deployed in conjunction with its Metadata (prepare by the initial Jenkins job (there exists a working POC)) to the Google Play release-channel + +**Remark:** +There are several options for doing so: E.g., a dedicated Jenkins slave for building, signing, aligning the RELEASE APK; a small virtual machine (externally inaccessible) hosting a web-service which either fetches the RELEASE built be Jenkins, signs and aligns it and uploads it back to Jenkins which in turn uses Fastlane to release it to Google Play OR any other APP-Store; OR the web-service triggers the Jenkins instance on this particular server to build, sign and align and deploy it to the Google release channel....). + +Part of the GSoC project is to find a viable AND SECURE way do achieve this tasks in the Catrobat infrastructure internally and not with external tools. The keys MUST NOT LEAVE the Catrobat environment and MUST be stored on an externally inaccessible server. + +### Web: Refactoring of test system and alternative API testing + +The test system needs to be refactored and split up to speed up testing processes with the already existing docker container. + +- Tests need to be split up in more sections/test suits so that we can execute them in parallel using our docker container +- The underlying FeatureContextFiles need to be refactored, cleaned, adapted where necessary and code duplications need to be removed +- Since we are on our way to introduce APIv2, it is a good time to check if our current Testsuite (Behat) is adequately equipped to extensively test our new API. If not an alternative should be found and implemented (in accordance with the rest of the team) + +### DevOps: Fully virtualization of the CI & CD + +The overall idea is to fully virtualize the Jenkins setup and to streamline all jobs for that the development team has the most benefits and can easily incorporate the jobs into their workflow. + +The only physically remaining server will be the server with the hardware-testing box and the robot-arm for physically testing devices' sensors and actors, e.g., speaker, flashlight, vibration, micro, gyroscope, magnetic sensor, proximity, etc. It will be also a part of the GSoC project to create a meaningful test-suite which is incorporated in various scenarios like - smoke tests and regression tests and probably release tests. + +**Reasons:** +- The current Jenkins hardware in the team room is physically accessible by various people and cannot be safeguarded. +- The new hardware (dedicated physical server) can be partitioned with VMWare virtual machines to resemble a useful setup. +- The hardware resources of the new server outperfom the current setup. +- The Jobs must be refactored to match the increased requirements to usability of the development team. +- The virtualization must be conducted in regard off the Automation of the deployment pipeline. + +### Embroidery Robot Programming +Spend the whole GSoC time developing huge Embroidery Designs using the Pocket Code IDE app, i.e., programming in the Catrobat visual coding language: + +- If you have your own original idea about an embroidery design, please feel free to suggest it. +- Note, however, that the focus in GSoC should be on coding. +- This GSoC project’s Embroidery Design should become an incredibly awesome & amazing demo design that showcases what kind of mind-boggling embroidery designs can be created with Pocket Code. + +### Your own Project Ideas + +Please do not hesitate to bring forward your own ideas and discuss them with the Catrobat team members at #catrobat on Freenode or by contacting us via ! diff --git a/pages/development/google-summer-of-code/2021.md b/pages/development/google-summer-of-code/2021.md new file mode 100644 index 0000000..fe5d024 --- /dev/null +++ b/pages/development/google-summer-of-code/2021.md @@ -0,0 +1,143 @@ +--- +title: 2021 +layout: home-with-socials +nav_order: 7 +parent: Google Summer Of Code +grand_parent: Development +--- + +# Ideas Page for Google Summer of Code 2021 +{: .no_toc } + +We are thrilled to share our carefully curated project ideas for this year's Google Summer of Code. + +## Idea Overview +{: .no_toc .text-delta } + +- TOC +{:toc} + +## General Information +{: .no_toc } + +These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g. new features, extensions,...) that are related to the project and you're interested in. We do have many senior-contributors who would be happy to mentor such a project. Don't be shy and check out the last point on the list: [Your idea](#your-own-project-ideas)! + +## General Knowledge Prerequisites for all Projects +{: .no_toc } + +- Knowledge in the usage of git +- Basic knowledge in the concepts of software testing and test-driven development +- Basic knowledge in app development (for Android and iOS projects) +- Java, JUnit, Robotium and Espresso for Android development +- Swift and Objective C for iOS development +- Also please check that you have the proper hardware for the development (e.g. a Android/iOS smartphone for testing, Mac for iOS development) + +## Your Application +{: .no_toc } + +Please find the mandatory template for the application and additional information on this shared Google Doc. + +## Project Descriptions +{: .no_toc } + +### Awesome Demo Game Project + +**Brief explanation and expected results:** + +Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. The game must be playable both on a phone as well as when cast from the phone to a smart TV. + +The game should be strongly inspired by a hugely popular recent 2D game, your own suggestions of popular games are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games. + +If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on Licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0. + +The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses. + +The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion. + +In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code. + +In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be playable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project. + +Boyakasha! + +### Pocket Code for Android: Support for Particle Physics in Catrobat + +The current version of Pocket Code doesn't have support for particle physics. This project proposes to implement a particles system (using libGDX particles library) which would allow the addition of smoke, fire, and other such particle effects in the games! The visibility, position, type, and other such properties of the particles could be controlled using the new "particles" bricks that will be added as part of the project! + +### Pocket Code for Android: Search functionality for bricks in Pocket Code + +In the current version of Pocket Code, users have to manually click and scroll through all brick categories and bricks to find and add the desired brick to their project. Therefore a brick search functionality will be implemented which enables the user to search through all available bricks in all brick categories. The matching bricks will be shown to the user and can be added to the project. This will provide a more improved programming flow for users of all skill groups. If there's time, a similar search & complete feature can also be added for reporter functions and sensors, and even variable or look names in the formula editor. + + +### Pocket Code for Android: HMS API Machine Learning and AI support + +We need to support the HMS APIs where other APIs are not available. This concerns all computer vision (pose, face, hand, image, OCR etc), speech, and general machine learning APIs. Additionally, it might also be of interest for other services such as geolocation and/or augmented reality APIs. + + +### Pocket Code for Android: Room integration + +Since the migration to Android Architecture Components has already started, the goal of this project is to integrate Room instead of SQLiteDatabase as a better approach for data persistence. This idea involves the following challenges: + +- Initially, all the API responses need to be cached in order to reduce the number of connections to the server (especially Featured Projects and the Categories displayed on the main screen) +- To continue, the structure of the projects (JSON instead of XML) needs to be improved +- Showing and caching the user projects (local/on-server-stored projects) in the Projects screen which will give the user the control to modify/delete his projects from one place +- Kotlin will be the only used language -- no more Java! + +### Pocket Code for Android: Merge Feature + +Design and develop a feature for the Android version of Pocket Code that allows to merge two user projects into one, without duplicating scripts, objects, sounds etc that already exist in both projects. Similar to git merge, but for Catrobat user projects. Repeatedly merging the same project into itself should not increase the project's size. Think about how to handle different screen resolutions, orientations, etc, or how to treat conflicting variable names, correctly update remix graph data, etc. + + +### Pocket Code for Android: Refactoring and rewriting production code and tests to Kotlin + +The current code base of Pocket Code is 8.8% in Kotlin and rest in Java. This project proposes to refactor and rewrite most of production code and tests to Kotlin, implementing all the modern features designed specifically to streamline mobile development resulting in safer and more maintainable code for future development. + +### Pocket Paint for Android: Hide the top and bottom bars, and make the drawing surface full screen by default + +Currently Menus and Options are shown by default in top and bottom bars, and the default zoom is smaller than the screen's drawing surface, resulting in lost space on the sides of the image. The goal is to have the already existing full screen functionality active by default and find an intuitive way to show menus only by fading in and out depending on whether the finger leaves or touches the screen. + +### Pocket Paint for Android: Refactoring tests and functionality to Kotlin + +Several parts of the project have already been refactored to use Kotlin, but there are still large parts that should be refactored, and reworked to use Kotlin instead of Java. + +### Pocket Paint for Android: Erase background tool (make it transparent more easily) + +The goal of this idea is to create a new tool that allows the user to select an area and erase the parts of the drawing surface outside the area, see similar tools in many picture manipulation programs. + +### Pocket Paint for Android: Add a feature that allows a user to see a zoomed in view of the area beneath his finger while drawing + +Currently Pocket Paint only has the basic brush and the spray can. The goal is to add additional brush options such as a watercolor brush, rubbing around existing color. Also, when drawing a little bit faster, the drawing line should be slightly smoothed. When drawing slowly, it should however be possible to draw without smoothing of the lines. Also, add an option in the brush settings that allows to turn off (and on again) antialiasing, independently of the width of the brush. Currently, antialiasing is only turned off if the width is set to 1. + +### Pocket Paint for Android: Additional brush options + +Currently Paintroid only has the basic brush and the spray can. The goal is to add additional brush options such as a watercolor brush, rubbing around existing color. Also, when drawing a little bit faster, the drawing line should be slightly smoothed. When drawing slowly, it should however be possible to draw without smoothing of the lines. Also, add an option in the brush settings that allows to turn off (and on again) antialiasing, independently of the width of the brush. Currently, antialiasing is only turned off if the width is set to 1. + +### Pocket Code for iOS: Support for Catrobat Language version 0.994 - 0.99992 +The iOS version of Pocket Code is currently supporting projects with a Catrobat Language up to version 0.993. Compared to Pocket Code for Android, this is a very old language version, released a few years ago. Hence, projects created with newer versions of Pocket Code for Android can not be opened and used on iOS. To take one step further into supporting the newest Catrobat Language versions, this project proposal is intended to implement the language versions 0.994 to 0.99992. This would allow Pocket Code for iOS to interpret tens of thousands more projects. In order to accomplish this, at least the following tasks have to be considered: + +- The Android version of Pocket Code needs to be compiled for all different language versions in order to create sample XMLs for regression testing. +- The XML parser needs to be adapted so that Pocket Code for iOS can interpret those XML versions. +- The XML serializer needs to be adapted so that Pocket Code for iOS complies to Catrobat language version 0.99992. +- Starting from language version 0.99992 all nested Bricks (e.g., Bricks of an "If Brick") will be stored as a tree structure. This involves major refactoring in the data model and the parser/serializer. +- This task requires a lot of reverse engineering work since there is no XML schema available for those language versions +- The focus of this project proposal should be on building up regression tests. + +### Unified Catrobat Language Brick Syntax +The goal is to develop a standalone Brick Library (own library/repository; mutually understandable by all major projects in the organization, which utilize the Catrobat Language and its bricks) as need for functionality in Catblocks and Catroweb. + +Other objectives of this project are the streamlining of brick construction via Construction Patterns, which in turn will massively improve testability, maintainability of code and usability (on the programmers side, it will be easier to implement new bricks, and harder to make mistakes while doing so) and synchronizing Cross-Team Brick changes/updates and new bricks can easily be propagated throughout the whole organizational structure (with just 1x git pull) as well. + +This includes the creation of a new Brick Definition Format, the transcription of all existing Bricks into the new Format, "teaching" the new format to Catblocks and Designing an Example Brick Creation Pattern for Pocket Code for Android for a first set of bricks as an extendable Proof of Concept. + +### Embroidery Robot Programming +Spend the whole GSoC time developing huge Embroidery Designs using the Pocket Code IDE app, i.e., programming in the Catrobat visual coding language: + +- If you have your own original idea about an embroidery design, please feel free to suggest it. +- Note, however, that the focus in GSoC should be on coding. +- This GSoC project’s Embroidery Design should become an incredibly awesome & amazing demo design that showcases what kind of mind-boggling embroidery designs can be created with Pocket Code. + +### Your own Project Ideas + +New features or extensions for iOS and Android are welcome to be introduced to us. Help us to spread coding and Open Source! + +Please do not hesitate to bring forward your own ideas and discuss them with the Catrobat team members at #catrobat on Freenode or by contacting us via ! diff --git a/pages/development/google-summer-of-code/2022.md b/pages/development/google-summer-of-code/2022.md new file mode 100644 index 0000000..4f915d2 --- /dev/null +++ b/pages/development/google-summer-of-code/2022.md @@ -0,0 +1,434 @@ +--- +title: 2022 +layout: home-with-socials +nav_order: 8 +parent: Google Summer Of Code +grand_parent: Development +--- + +# Ideas Page for Google Summer of Code 2022 +{: .no_toc } + +We are thrilled to share our carefully curated project ideas for this year's Google Summer of Code. + +## Idea Overview +{: .no_toc .text-delta } + +- TOC +{:toc} + +## General Information +{: .no_toc } + +These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g. new features, extensions,...) that are related to the project and you're interested in. We do have many senior-contributors who would be happy to mentor such a project. Don't be shy and check out the last point on the list: [Your idea](#your-own-project-ideas-175-or-350-hours)! + +## General Knowledge Prerequisites for all Projects +{: .no_toc } + +- Knowledge in the usage of git +- Basic knowledge in the concepts of software testing and test-driven development +- Basic knowledge in app development (for Android and iOS projects) +- Java, JUnit, Robotium and Espresso for Android development +- Swift and Objective C for iOS development +- Also please check that you have the proper hardware for the development (e.g. a Android/iOS smartphone for testing, Mac for iOS development) + +## Your Application +{: .no_toc } + +Please find the mandatory template for the application and additional information on this shared Google Doc. + +## Project Descriptions +{: .no_toc } + +### Paintroid landing page (350 Hours) + +A landing page similar to catroid, where you can see all your saved pictures. + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- Agile Development + +**Possible Mentors:** + +- Michael Herold +- Stefan Kutschera + +**Expected size of project:** + +- 350 Hours + +**Difficulty level:** + +- Medium + + +### Paintroid Smudge Tool (175 Hours) + +Extension of the existing smudge tool. It was part of a GsoC Project last year, but was too complicated to finish PAINTROID-292 - Smudge tool (READY FOR DEVELOPMENT) + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- Agile Development + +**Possible Mentors:** + +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 175 Hours + +**Difficulty level:** + +- Hard + +### Embroidery Designer Inspect Tool (175 or 350 Hours) + +An inspection tool for embroidery projects that allows you to get important information about the project, view the embroidery more closely and thus edit it better. In a larger version of the project, first steps can be taken to easily touch-up stiches in order to make small corrections before saving an embroidery robot control file. + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- Agile Development + +**Possible Mentors:** + +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 175 or 350 Hours (to be discussed with us in advance) + +**Difficulty level:** + +- Hard + +### Catroid Editor for Userdefined Bricks (175 hour) + +Catroid Editor for Userdefined Bricks (175 hour) + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- Agile Development + +**Possible Mentors:** + +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 175 Hours + +**Difficulty level:** + +- Easy + + +### Pocket Code for Android: Undo/redo functionality in Catroid (175 or 350 Hours) + +In the current version of Catroid, there are a few places where the immediately previously executed step can be undone, thus avoiding a need for an interaction with the user to ask whether, e.g., an object should really be deleted. There are still many places and interactions where this single-step undo has not been implemented. The aim of this project is to add more such single-step undo operations where they are still missing. Depending on the size of the project, and if there is time, these single-step undo operations shall be step by step replaced by a standard undo-redo feature. + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- Agile Development + +**Possible Mentors:** + +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 175 or 350 Hours (to be discussed with us in advance) + +**Difficulty level:** + +- Medium + +### Pocket Paint for Android: Hide the top and bottom bars, and make the drawing surface full screen by default (350 Hours) + +Currently Menus and Options are shown by default in top and bottom bars, and the default zoom is smaller than the screen's drawing surface, resulting in lost space on the sides of the image. The goal is to have the already existing full screen functionality active by default and find an intuitive way to show menus only by fading in and out depending on whether the finger leaves or touches the screen. + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- Agile Development + +**Possible Mentors:** + +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 350 Hours + +**Difficulty level:** + +- Medium + +### Pocket Paint for Android: Refactoring tests and functionality to Kotlin (175 or 350 Hours) + +Several parts of the project have already been refactored to use Kotlin, but there are still parts that should be refactored, and reworked to use Kotlin instead of Java. + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- Agile Development + +**Possible Mentors:** + +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 175 or 350 Hours (to be discussed with us in advance) + +**Difficulty level:** + +- Medium + +### Pocket Code for Android: Refactoring tests and functionality to Kotlin (175 or 350 Hours) + +Several parts of the project have already been refactored to use Kotlin, but there are still parts that should be refactored, and reworked to use Kotlin instead of Java. + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- Agile Development + +**Possible Mentors:** + +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 175 or 350 Hours (to be discussed with us in advance) + +**Difficulty level:** + +- Medium + +### Pocket Paint for Android: Erase background tool (make it transparent more easily) (175 Hours) + +The goal is to create a new tool that allows the user to select an area and erase the parts of the drawing surface outside the area, see similar tools in many picture manipulation programs. + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- Agile Development + +**Possible Mentors:** + +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 175 Hours + +**Difficulty level:** + +- Medium + + +### Pocket Paint for Android: Add a feature that allows a user to see a zoomed in view of the area beneath his finger while drawing (175 Hours) + +The goal is to create a new feature that allows a user to see a zoomed in view of the area beneath his/her finger while drawing, to allow for easier fine manipulation. The magnifying glass should be round, drag-and-droppable, move automatically way to another place (up or down) if the user's finger approaches it by drawing, have a default magnifying level of 3x, and there shall be some setting where one can turn it off (or on again) and change the magnification level. When no finger touches the drawing surface, the magnifying glass shall fade away. + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- Agile Development + +**Possible Mentors:** + +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 175 Hours + +**Difficulty level:** + +- Hard + +### Merge Feature for Catroid (350 Hours) + +Design and develop a feature for the Android version of Pocket Code that allows to merge two user projects into one, without duplicating scripts, objects, sounds etc that already exist in both projects. Similar to git merge, but for Catrobat user projects. Repeatedly merging the same project into itself should not increase the project's size. Think about how to handle different screen resolutions, orientations, etc, or how to treat conflicting variable names, correctly update remix graph data, etc. + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- Agile Development + +**Possible Mentors:** + +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 350 Hours + +**Difficulty level:** + +- Hard + +### Awesome Demo Game Project (175 Hours) + +Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. The game must be playable both on a phone as well as when cast from the phone to a smart TV. + +The game should be strongly inspired by a hugely popular recent 2D game, your own suggestions of popular games are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games. + +If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on Licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0. + +The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses. + +The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion. + +In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code. + +In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be playable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project. + +Boyakasha! + +**Required Skills:** + +- Coding Basics +- PocketCode + +**Possible Mentors:** + +- Yash Punia +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 175 Hours + +**Difficulty level:** + +- Easy + +### Awesome Demo Game Project (350 Hours) +Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. The game must be playable both on a phone as well as when cast from the phone to a smart TV. + +The game should be strongly inspired by a hugely popular recent 2D game, your own suggestions of popular games are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games. + +If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on Licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0. + +The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses. + +The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion. + +In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code. + +In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be playable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project. + +Boyakasha! + +**Required Skills:** + +- Coding Basics +- PocketCode + +**Possible Mentors:** + +- Yash Punia +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 350 Hours + +**Difficulty level:** + +- Easy + +### Your own project Ideas (175 or 350 Hours) +New features or extensions for iOS and Android are welcome to be introduced to us. Help us to spread coding and Open Source! + +**Required Skills:** + +- Kotlin +- Java +- Android-Development +- iOS-Development +- Agile Development + +**Possible Mentors:** + +- Yash Punia +- Michael Herold +- Stefan Kutschera +- Vesna Krnjic +- Wolfgang Slany + +**Expected size of project:** + +- 175 or 350 Hours (to be discussed with us in advance) + +**Difficulty level:** + +- Easy to Hard + +Please do not hesitate to bring forward your own ideas and discuss them with the Catrobat team members at #catrobat on Freenode or by contacting us via ! diff --git a/pages/development/google-summer-of-code/2023.md b/pages/development/google-summer-of-code/2023.md new file mode 100644 index 0000000..e2b4eb7 --- /dev/null +++ b/pages/development/google-summer-of-code/2023.md @@ -0,0 +1,253 @@ +--- +title: 2023 +layout: home-with-socials +nav_order: 9 +parent: Google Summer Of Code +grand_parent: Development +--- + +# Ideas Page for Google Summer of Code 2023 +{: .no_toc } + +We are thrilled to share our carefully curated project ideas for this year's Google Summer of Code. + +## General Information +{: .no_toc } + +These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g., new features, extensions, ...) that are related to the project and in which you're interested in. We do have many senior contributors who would be happy to mentor such a project. Don't be shy and check out the last point on the list: Your idea! + +## General Knowledge Prerequisites for all Projects +{: .no_toc } + +- Knowledge in the usage of Git and GitHub +- Basic knowledge in the concepts of software testing (e.g., test doubles) and test-driven development +- Basic knowledge in app development (for Android and iOS projects) +- Java, JUnit, Mockito, Robotium and Espresso for Android development +- Swift and Objective C for iOS development +- Also please check that you have the proper hardware for the development (e.g., a Android/iOS smartphone for testing, Mac for iOS development) + +## Your Application +{: .no_toc } + +Please find the mandatory template for the application and additional information on this shared Google Doc. + +## Idea Overview +{: .no_toc } + +1. TOC +{:toc} + +## Project Descriptions +{: .no_toc } + +### Awesome Demo Game Project +175 or 350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Coding Basics, PocketCode
+> **Possible Mentors**: Yash Punia, Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
+> **Difficulty level**: To Be Determined (tbd) + + +Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. The game must be playable both on a phone as well as when cast from the phone to a smart TV. + +The game should be strongly inspired by a hugely popular recent 2D game, your own suggestions of popular games are highly welcome. You may also get inspiration by search for lists of the best OR popular 2d games. + +If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on https://catrob.at/licenses and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0. + +The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses. + +The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion. + +In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code. + +In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be playable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project. + +
+ +### Embroidery Designer Inspect Tool +175 or 350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Kotlin, Java, Android-Development, Agile Development
+> **Possible Mentors**: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
+> **Difficulty level**: To Be Determined (tbd) + + +An inspection tool for embroidery projects that allows you to get important information about the project, view the embroidery more closely and thus edit it better. In a larger version of the project, first steps can be taken to easily touch-up stiches in order to make small corrections before saving an embroidery robot control file. + +
+ +### Catroid Editor for Userdefined Bricks + +175 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Kotlin, Java, Android-Development, Agile Development
+> **Possible Mentors**: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
+> **Difficulty level**: To Be Determined (tbd) + +An editor for user-defined bricks, to be able to modify them after they have been created. + +
+ + +### Pocket Code for Android: Undo / Redo Functionality in Catroid + +175 or 350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Kotlin, Java, Android-Development, Agile Development
+> **Possible Mentors**: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
+> **Difficulty level**: To Be Determined (tbd) + +In the current version of Catroid, there are a few places where the immediately previously executed step can be undone, thus avoiding a need for an interaction with the user to ask whether, e.g., an object should really be deleted. There are still many places and interactions where this single-step undo has not been implemented. The aim of this project is to add more such single-step undo operations where they are still missing. Depending on the size of the project, and if there is time, these single-step undo operations shall be step by step replaced by a standard undo-redo feature. + +
+ +### Pocket Paint for Android: Refactoring Test and Functionality to Kotlin + +175 or 350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Kotlin, Java, Android-Development, Agile Development
+> **Possible Mentors**: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
+> **Difficulty level**: To Be Determined (tbd) + +Several parts of the project have already been refactored to use Kotlin, but there are still parts that should be refactored, and reworked to use Kotlin instead of Java. + +
+ +### Pocket Code for Android: Refactoring Tests and Functionality to Kotlin + +175 or 350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Kotlin, Java, Android-Development, Agile Development
+> **Possible Mentors**: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
+> **Difficulty level**: To Be Determined (tbd) + +Several parts of the project have already been refactored to use Kotlin, but there are still parts that should be refactored, and reworked to use Kotlin instead of Java. + +
+ +### Pocket Paint for Android: Erase Background Tool (Make it transparent more easily) +175 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Kotlin, Java, Android-Development, Agile Development
+> **Possible Mentors**: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
+> **Difficulty level**: To Be Determined (tbd) + +The goal is to create a new tool that allows the user to select an area and erase the parts of the drawing surface outside the area, see similar tools in many picture manipulation programs. + +
+ +### Merge Feature for Catroid +350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Kotlin, Java, Android-Development, Agile Development
+> **Possible Mentors**: Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
+> **Difficulty level**: To Be Determined (tbd) + +Design and develop a feature for the Android version of Pocket Code that allows to merge two user projects into one, without duplicating scripts, objects, sounds etc that already exist in both projects. Similar to git merge, but for Catrobat user projects. Repeatedly merging the same project into itself should not increase the project's size. Think about how to handle different screen resolutions, orientations, etc, or how to treat conflicting variable names, correctly update remix graph data, etc. + +
+ +### Project Converter in Dart from Catrobat to Godot +175 or 350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Dart, Godot, Test Driven Development, Clean Code
+> **Possible Mentors**: Wolfgang Slany
+> **Requirement**: self-organized work
+> **Difficulty level**: advanced + +Implement a prof-of-concept converter from Catrobat projects to Godot for Android or iOS in Dart. Only parts need to be implemented, not the full feature set. + +
+ +### Reimplement Catroid's Formula Editor in Flutter +175 or 350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Flutter, Test Driven Development, Clean Code
+> **Possible Mentors**: Wolfgang Slany
+> **Requirement**: self-organized work
+> **Difficulty level**: advanced + +Reimplement Catroid's Formula Editor in Flutter. Only parts need to be implemented, not the full feature set. + +
+ +### Reimplement the Catrobat Community feature of Catroid in Flutter +175 or 350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Flutter, Test Driven Development, Clean Code
+> **Possible Mentors**: Wolfgang Slany
+> **Requirement**: self-organized work
+> **Difficulty level**: advanced + + +Reimplement the Catrobat Community feature of Catroid in Flutter. Only parts need to be implemented, not the full feature set. + +
+ +### Reimplement parts of Catroid's IDE GUI in Flutter +175 or 350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Flutter, Test Driven Development, Clean Code
+> **Possible Mentors**: Wolfgang Slany
+> **Requirement**: self-organized work
+> **Difficulty level**: advanced + +Reimplement remaining parts of Catroid's IDE GUI in Flutter. Not included would be the representation and manipulation of scripts, the formula editor, the paint editor, the Catrobat community features, or the stage. Also, only parts need to be implemented, not the full feature set. + +
+ +### Add LLM-Based AI Pair-Programming support for users +175 or 350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Kotlin, Test Driven Development, Clean Code
+> **Possible Mentors**: Wolfgang Slany
+> **Requirement**: self-organized work
+> **Difficulty level**: advanced + + +Add support for an LLM (large language model) based on tools such as GPT-4 to support AI-based programming support for our users. This support could range from proposing code from text prompts, help in correcting bugs or other issues, finding a good architecture or meaningful names, writing Catrobat language tests for one's code, proposing extensions, proposing project ideas, explaining downloaded code, providing translations of variable or message names etc from downloaded projects of other users, proposing image and sound resources based on the context and text prompts, explaining basic or more advanced concepts needed to realize projects, e.g., simple concepts such as variables and loops, or more complex ones such as software design patterns or testing strategies. Only parts need to be implemented, not the full feature set. The API key can be assumed to be provided by the user and may need to be entered into the settings of our apps. The initial prompt will have to detail the Catrobat context to the used LLM, and will be provided by the Catrobat team. + +
+ +### Your own Project Ideas ... +175 or 350 Hours +{: .label .label-blue } + +{: .highlight } +> **Required Skills**: Kotlin, Java, Android-Development, iOS-Development, Agile Development
+> **Possible Mentors**: Yash Punia, Stefan Kutschera, Patrick Ratschiller, Wolfgang Slany
+> **Requirement**: self-organized work
+> **Difficulty level**: advanced + + +In the last year we made the experience that you have many great ideas and knowledge! Catrobat is currently still focusing on refactoring and we're aware that there are many ways how to improve performance, reduce memory usage, make our services more stable and of course the code easier to maintain. We're sure you do have ideas how to achieve this, although we may have never heard of this approach before -> that's the great thing about Open Source! And well, that's also the experience we made at last year's GSoC - and we liked it! + +Also new features or extensions for iOS and Android are welcome to be introduced to us. Help us to spread coding and Open Source! + +Please do not hesitate to bring forward your own ideas and discuss them with our community on our mailing-list: catrobat@googlegroups.com! diff --git a/pages/development/google-summer-of-code/index.md b/pages/development/google-summer-of-code/index.md new file mode 100644 index 0000000..9fd9ecc --- /dev/null +++ b/pages/development/google-summer-of-code/index.md @@ -0,0 +1,7 @@ +--- +layout: home-with-socials +title: Google Summer Of Code +nav_order: 2 +has_children: true +parent: Development +--- diff --git a/pages/development/index.md b/pages/development/index.md new file mode 100644 index 0000000..0aeb19d --- /dev/null +++ b/pages/development/index.md @@ -0,0 +1,6 @@ +--- +layout: home-with-socials +title: Development +nav_order: 2 +has_children: true +--- diff --git a/pages/legal/imprint.md b/pages/legal/imprint.md new file mode 100644 index 0000000..7e47a25 --- /dev/null +++ b/pages/legal/imprint.md @@ -0,0 +1,29 @@ +--- +title: Imprint +nav_order: 1 +layout: home-with-socials +parent: Legal +--- + +## Imprint + +Version 2.5, 4.3.2021 + +All Services are provided by the non-profit free/libre open source Catrobat project under the umbrella of the International Catrobat Association – Verein zur Förderung freier Software (Graz, Austria). + +## Contact + +
+
+

Address

+

Herrengasse 3
A-8010 Graz, Austria (European Union)

+
+ +
+

Phone

+

+1 (650) 427-9594

+
+
diff --git a/pages/legal/index.md b/pages/legal/index.md new file mode 100644 index 0000000..42eb011 --- /dev/null +++ b/pages/legal/index.md @@ -0,0 +1,6 @@ +--- +layout: home-with-socials +title: Legal +nav_order: 9999 +has_children: true +--- diff --git a/pages/legal/licenses/additional-terms.md b/pages/legal/licenses/additional-terms.md new file mode 100644 index 0000000..9ccd6ff --- /dev/null +++ b/pages/legal/licenses/additional-terms.md @@ -0,0 +1,38 @@ +--- +title: Additional Terms +layout: home-with-socials +parent: Licenses +grand_parent: Legal +nav_order: 999 +--- + +# Additional Term Exception under section 7 of the GNU Affero General Public License, version 3, for the parts of the Catrobat system necessary for running a Catrobat Program + +Copyright © 2009 Free Software Foundation, Inc. https://fsf.org +Copyright © 2010-2019 Catrobat https://www.catrobat.org/ + +This "Additional Term" exception for the "Parts of the Catrobat System Necessary for Running a Catrobat Program" is an additional permission under section 7 of the GNU Affero General Public License, version 3 ("AGPLv3"). It applies to parts of the Catrobat system bearing a notice placed by the copyright holder stating that these parts are governed by AGPLv3 along with this Additional Term. + +When you use code that was developed by the Catrobat team to compile a stand-alone application of a Catrobat Program, the Catrobat system combines portions of the Parts of the Catrobat System Necessary for Running a Catrobat Program and the Catrobat Program which you provided, in form of a stand-alone application. The purpose of this Additional Term is to allow compilation of a non-AGPL (including proprietary) program to use, in this way, the Parts of the Catrobat System Necessary for Running a Catrobat Program. + +0. Definitions +A file is an "Independent Module" if it either requires the Parts of the Catrobat System Necessary for Running a Catrobat Program for execution after a Compilation Process, or makes use of an interface provided by the Parts of the Catrobat System Necessary for Running a Catrobat Program, but is not otherwise based on the Parts of the Catrobat System Necessary for Running a Catrobat Program. + +"Parts of the Catrobat System Necessary for Running a Catrobat Program" mean a version of the parts of the Catrobat system necessary for running a Catrobat Program, with or without modifications. + +"AGPL-compatible Software" is software whose conditions of propagation, modification, and use would permit combination with those parts of the Catrobat system that are governed by version 3 (or a specified later version) of the GNU Affero General Public License (AGPL). + +"Catrobat Program Stand-Alone Application" refers to output from any part of the Catrobat system starting from a given Catrobat Program for a real or virtual target processor architecture, in executable form or suitable for input to an assembler, compiler, interpreter, loader, linker and/or execution phase. Notwithstanding that, Catrobat Program Stand-Alone Application does not include data in any format that is used as a compiler intermediate representation, or used for producing a compiler intermediate representation. + +The "Compilation Process" transforms code entirely represented in non-intermediate languages designed for human-written code, and/or in Virtual Machine code, e.g., Java or Dalvik-compatible byte code, into a Catrobat Program Stand-Alone Application. Thus, for example, use of source code generators and preprocessors need not be considered part of the Compilation Process, since the Compilation Process can be understood as starting with the output of the generators or preprocessors. + +A Compilation Process is "Eligible" if it is done using the Catrobat system, alone or with other AGPL-compatible software, or if it is done without using any work based on the Catrobat system. For example, using non-AGPL-compatible Software to optimize any intermediate representations for the Catrobat system would not qualify as an Eligible Compilation Process. + +1. Grant of Additional Permission + +You have permission to propagate a Catrobat Program Stand-Alone Application formed by combining the Parts of the Catrobat System Necessary for Running a Catrobat Program with Independent Modules, even if such propagation would otherwise violate the terms of AGPLv3, provided that the Catrobat Program Stand-Alone Application was generated by Eligible Compilation Processes. You may then convey such a combination under terms of your choice, consistent with the licensing of the Independent Modules. + +2. No Weakening of the Catrobat system's Copyleft +The availability of this Additional Term does not imply any general presumption that third-party software is unaffected by the copyleft requirements of the licenses of the Catrobat system. + +Note: The wording of above text closely follows the text of and is used with permission of the Free Software Foundation. diff --git a/pages/legal/licenses/agpl-v3.md b/pages/legal/licenses/agpl-v3.md new file mode 100644 index 0000000..b1d2d0b --- /dev/null +++ b/pages/legal/licenses/agpl-v3.md @@ -0,0 +1,202 @@ +--- +title: AGPLv3 +layout: home-with-socials +parent: Licenses +grand_parent: Legal +nav_order: 101 +--- + +Copyright © 2007 Free Software Foundation, Inc. +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +## Preamble +The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. + +Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software. + +A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. + +The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. + +An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license. + +The precise terms and conditions for copying, distribution and modification follow. + +## TERMS AND CONDITIONS + +0. Definitions + +"This License" refers to version 3 of the GNU Affero General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based on the Program. + +To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. + +1. Source Code +The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. + +A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +2. Basic Permissions +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid + +4. Conveying Verbatim Copies +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: + +- a. The work must carry prominent notices stating that you modified it, and giving a relevant date. +- b. The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". +- c. You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. +- d. If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. + +6. Conveying Non-Source Forms +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: + +- a. Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. +- b. Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. +- c. Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. +- d. Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. +- e. Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. + +"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. + +8. Termination +You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. + +9. Acceptance Not Required for Having Copies +You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipient +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. + +11. Patents +A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. + +A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom +If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. + +13. Remote Network Interaction; Use with the GNU General Public License +Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. + +Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. + +14. Revised Versions of this License + +The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version + +15. Disclaimer of Warranty +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16 + +If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +## How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. +``` + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +``` +Also add information on how to contact you by electronic and paper mail. + +If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements. + +You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see . \ No newline at end of file diff --git a/pages/legal/licenses/catrobat.md b/pages/legal/licenses/catrobat.md new file mode 100644 index 0000000..0cb9365 --- /dev/null +++ b/pages/legal/licenses/catrobat.md @@ -0,0 +1,162 @@ +--- +title: Catrobat System +layout: home-with-socials +parent: Licenses +grand_parent: Legal +nav_order: 1 +--- + +## Licenses of the Catrobat System + +### The following licenses, terms, and conditions apply to your use of the Catrobat system: + +Version 3.7, 13 January 2019 + +All source code of software constituting the Catrobat system, e.g., the integrated development environments (with all associated parts such as tutorial programs) and the interpreters and compilers for the Catrobat programming language, the image editing programs, the source code of software we wrote to run the Catrobat websites and other Internet resources, and all our own source code related to the Catrobat system, are free software: you can redistribute them and/or modify them under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License , or (at your option) any later version when it becomes available. + +The names and logos of the Catrobat project and subprojects are copyrighted by and trademarks of the Catrobat project and cannot be used in derivative work. You are however allowed to use the names and logos of Catrobat, Catroid, Catty, Pocket Code, Paintroid, Pocket Paint, and other names and logos of software created by the Catrobat team in non-derivative work such as, e.g., books, brochures, or descriptive web pages. We do ask to include a note that either says "Catrobat is developed by the free/libre open source non-profit Catrobat project https://www.catrobat.org/" or "Catrobat makes it easy to create your own interactive stories, games, and animations --- and share your creations with others. As you create and share Catrobat projects, you learn to think creatively, reason systematically, and work collaboratively. All parts of the Catrobat system are developed by the free/libre open source non-profit Catrobat project https://www.catrobat.org/. They are available as free/libre open source software on GitHub". + +For the parts of the Catrobat system necessary for running a Catrobat program, e.g., the interpreters, the GNU Affero General Public License is supplemented by an additional permission under section 7 of version 3 of the License. This exception allows you to convey a runtime version of a program or project written in the Catrobat programming language, for which you otherwise legally hold the necessary rights, in combination with the parts of the Catrobat system necessary for running that Catrobat program, under terms of your choice, consistent with the licensing of the independent parts of the corresponding Catrobat program. + +Please note that this is only possible either when you are the sole creator of the program including all its parts such as graphics, texts, sounds, etc, or in case you licensed the parts of other programs on which your program is based upon, including any additional material and/or possible trademarks etc, in such a way that you are allowed to convey the resulting software under your chosen terms in consistence with these third-party materials. This additional permission is similar to the additional permission for GCC (see the corresponding Rationale and FAQ page for the exception for GCC for more information). If the work thus created has an interactive user interface, it must display a note in a screen shown when the user presses an "About" menu button or a similar way to convey such a message that says "This work was created using programs developed by the free/libre open source non-profit Catrobat project. Catrobat makes it easy to create your own interactive stories, games, and animations --- and share your creations with others. As you create and share Catrobat projects, you learn to think creatively, reason systematically, and work collaboratively. Catrobat is available as free/libre open source software on GitHub and is distributed by the Catrobat project under the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License , or (at your option) any later version when it becomes available. For the parts of the Catrobat system necessary for running a Catrobat program (also called Catrobat "projects" created by our users), e.g., the Catrobat Interpreter, the GNU Affero General Public License is supplemented by an additional permission under section 7 of version 3 of the License. This exception allows to convey a runtime version of a Catrobat program, for which you otherwise legally hold the necessary rights, in combination with the parts of the Catrobat system necessary for running that Catrobat program, under terms of your choice, consistent with the licensing of the independent parts of the corresponding Catrobat program.". The same notice must also be added by you as text in or along any documents you distribute together with your runtime version of the program. Please consult our Catrobat License Additional Term page for the precise legal formulation of the additional permission under section 7 of version 3 of the GNU Affero General Public License. For clarification, note that this additional permission does not apply to projects you upload to Catrobat's website. Please consult our Terms of Use and Service and our Licenses of uploaded Catrobat projects for the precise legal terms and conditions that apply to a project you upload to Catrobat's sharing site. + +Please also note that by using or visiting any website (including any software that we created which either runs directly on our servers, or alternatively runs client-side, e.g., in your browser, but is served by our servers) or products (including all our online services provided by software that we created which are offered through our servers), all executables we offer on any markets or the web (including, e.g., the Google Play App Store, Apple's iTunes App Store, Amazon's App Store, etc), data feeds, and services provided to you on, from, or through the Catrobat project (collectively the "Service"), you signify your agreement to (1) Catrobat's terms and conditions (the "Terms of Use and Service", found at https://catrob.at/touas), (2) Catrobat's privacy notice (found at https://catrob.at/privacypolicy), and (3) Catrobat's Community Guidelines (found at https://catrob.at/tou). If you do not agree to any of these terms, the Catrobat privacy notice, or the Community Guidelines, please do not use the Service. + +All non-software artefacts of the Catrobat system created by us, such as, e.g., text, graphics, photos, sounds, music, videos, audiovisual combinations, interactive features, and other materials are available under the Creative Commons Attribution-ShareAlike 4.0 International Public License (CC BY-SA 4.0), the only exceptions being the names and logos of the Catrobat project (including, e.g., Catrobat, Catroid, Catty, Pocket Code, Paintroid, Pocket Paint), which are copyrighted by and trademarks of the Catrobat project and cannot be used in derivative work. See https://creativecommons.org/licenses/by-sa/4.0/ for a human-readable summary of the Creative Commons Attribution-ShareAlike 4.0 International Public License. + +### Catrobat additionally contains third party code and resources as follows: + +- libGDX (https://libgdx.badlogicgames.com) + + - License information: Apache 2 License (https://github.com/libgdx/libgdx/blob/master/LICENSE) + - Copyright © 2011-2012 (https://github.com/libgdx/libgdx/tree/master/gdx) + +- XStream (https://x-stream.github.io/) + + - License information: https://x-stream.github.io/license.html + - Copyright © 2003-2006, Joe Walnes + - Copyright (c) 2003-2006, Joe Walnes, Copyright (c) 2006-2015 XStream Committers + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +
    +
  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  2. + +
  3. Neither the name of XStream nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  4. + +
  5. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  6. +
+ +- Toolbar custom icons 1.0 facilities from Gentleface custom icon design (https://gentleface.com/free_icon_set.html) + + - License information: Creative Commons Attribution-NonCommercial 3.0: https://creativecommons.org/licenses/by-nc-nd/3.0/ + - Copyright © 2006-2011 Gentleface. + +- MINDdroid (https://github.com/NXT/LEGO-MINDSTORMS-MINDdroid) + + - Copyright © 2010/11 Guenther Hoelzl, Shawn Brown + - Copyright © 2010/11 LEGO System A/S, Aastvej 1, DK-7190 Billund, Denmark + + MINDdroid is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + + MINDdroid is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License for more details https://www.gnu.org/licenses/ + +- Sparrow (https://github.com/Gamua/Sparrow-Framework) + + - Simplified BSD License + - Copyright 2013 Gamua. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +
    +
  1. + Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +
  2. +
  3. + Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +
  4. +
+ + THIS SOFTWARE IS PROVIDED BY GAMUA "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GAMUA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Gamua. + +- Java HTTP Request Library (https://kevinsawicki.github.io/http-request/) + + - Copyright (c) 2011 Kevin Sawicki. + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +
    +
  1. + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +
  2. +
+ + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +- FlowLayout (part 1) (https://code.google.com/archive/p/devoxx-schedule/source) + + - Copyright 2010 Romain Guy + + - Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +- FlowLayout (part 2) (https://github.com/ApmeM/android-flowlayout#copyrights) + + - Copyright (c) 2011, Artem Votincev (apmem.org) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + +
    +
  1. + Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +
  2. +
  3. + Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +
  4. +
  5. + Neither the name of the apmem.org nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +
  6. +
+ + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ARTEM VOTINCEV BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +- Parrot AR.Drone Open API (https://www.parrot.com) + + - Licensed under Parrot AR.Drone Development License v2.1 + + DISCLAIMER + + The APIs is provided by PARROT and contributors "AS IS" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall PARROT and contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. + +- PNGJ (https://github.com/leonbloy/pngj) + + - Copyright (C) 2009-2015, Hernán J. González + - Licensed under Apache License Version 2.0 + + DISCLAIMER + + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +- TapTargetView (https://github.com/KeepSafe/TapTargetView) + + - Copyright 2016 Keepsafe Software Inc. + - Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +Check back here from time-to-time, because we are always trying to improve our licenses. + +Please mail any suggestions regarding these licenses to legal@catrobat.org. diff --git a/pages/legal/licenses/cc-by-sa-4.0.md b/pages/legal/licenses/cc-by-sa-4.0.md new file mode 100644 index 0000000..dd1aee4 --- /dev/null +++ b/pages/legal/licenses/cc-by-sa-4.0.md @@ -0,0 +1,269 @@ +--- +title: CC BY-SA 4.0 +layout: home-with-socials +parent: Licenses +grand_parent: Legal +nav_order: 100 +--- + +## Creative Commons Attribution-ShareAlike 4.0 International + +This is a local copy of the original License at + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. +
    +
  1. + Definitions +
  2. +
      +
    1. + Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. +
    2. +
    3. + Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. +
    4. +
    5. + BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License. +
    6. +
    7. + Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. +
    8. +
    9. + Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. +
    10. +
    11. + Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. +
    12. +
    13. + License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike. +
    14. +
    15. + Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. +
    16. +
    17. + Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. +
    18. +
    19. + Licensor means the individual(s) or entity(ies) granting rights under this Public License. +
    20. +
    21. + Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. +
    22. +
    23. + Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. +
    24. +
    25. + You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. +
    26. +
    +
  3. + Scope +
      +
    1. + License grant +
        +
      1. + Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: +
          +
        1. + reproduce and Share the Licensed Material, in whole or in part; and +
        2. +
        3. + produce, reproduce, and Share Adapted Material. +
        4. +
        +
      2. +
      3. + Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. +
      4. +
      5. + Term. The term of this Public License is specified in Section 6(a). +
      6. +
      7. + Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. +
      8. +
      9. + Downstream recipients. +
          +
        1. + Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. +
        2. +
        3. + Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply. +
        4. +
        5. + No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. +
        6. +
        +
      10. +
      11. + No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). +
      12. +
      +
    2. +
    3. + Other Rights +
        +
      1. + Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. +
      2. +
      3. + Patent and trademark rights are not licensed under this Public License. +
      4. +
      5. + To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. +
      6. +
      +
    4. +
    +
  4. +
  5. + License Conditions
    + Your exercise of the Licensed Rights is expressly made subject to the following conditions. +
      +
    1. + Attribution +
        +
      1. + If You Share the Licensed Material (including in modified form), You must: +
          +
        1. + retain the following if it is supplied by the Licensor with the Licensed Material: +
        2. +
            +
          1. + identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); +
          2. +
          3. + a copyright notice; +
          4. +
          5. + a notice that refers to this Public License; +
          6. +
          7. + a notice that refers to the disclaimer of warranties; +
          8. +
          9. + a URI or hyperlink to the Licensed Material to the extent reasonably practicable; +
          10. +
          +
        3. + indicate if You modified the Licensed Material and retain an indication of any previous modifications; and +
        4. +
        5. + indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. +
        6. +
        +
      2. +
      3. + You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. +
      4. +
      5. + If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. +
      6. +
      +
    2. +
    3. + ShareAlike
      + In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply. +
        +
      1. + The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License. +
      2. +
      3. + You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material. +
      4. +
      5. + You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply. +
      6. +
      +
    4. +
    +
  6. +
  7. + Sui Generis Database Rights
    + Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: +
      +
    1. + for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; +
    2. +
    3. + if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and +
    4. +
    5. + You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. +
    6. +
    + For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. +
  8. +
  9. + Disclaimer of Warranties and Limitation of Liability +
      +
    1. + Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. +
    2. +
    3. + To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. +
    4. +
    5. + The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. +
    6. +
    +
  10. +
  11. + Term and Termination +
      +
    1. + This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. +
    2. +
    3. + Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: +
        +
      1. + automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or +
      2. +
      3. + upon express reinstatement by the Licensor. +
      4. +
      + For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. +
    4. +
    5. + For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. +
    6. +
    7. + Sections 1, 5, 6, 7, and 8 survive termination of this Public License. +
    8. +
    +
  12. +
  13. + Other Terms and Conditions +
      +
    1. + The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. +
    2. +
    3. + Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. +
    4. +
    +
  14. +
  15. + Interpretation +
      +
    1. + For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. +
    2. +
    3. + To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. +
    4. +
    5. + No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. +
    6. +
    7. + Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. +
    8. +
    + Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.

    Creative Commons may be contacted at creativecommons.org. +
  16. +
+ diff --git a/pages/legal/licenses/index.md b/pages/legal/licenses/index.md new file mode 100644 index 0000000..1d7d76b --- /dev/null +++ b/pages/legal/licenses/index.md @@ -0,0 +1,7 @@ +--- +layout: home-with-socials +title: Licenses +has_children: true +parent: Legal +nav_order: 3 +--- diff --git a/pages/legal/licenses/uploaded-catrobat-programs.md b/pages/legal/licenses/uploaded-catrobat-programs.md new file mode 100644 index 0000000..b1af164 --- /dev/null +++ b/pages/legal/licenses/uploaded-catrobat-programs.md @@ -0,0 +1,17 @@ +--- +title: Uploaded Catrobat Programs +layout: home-with-socials +parent: Licenses +grand_parent: Legal +nav_order: 2 +--- + +## Licenses of uploaded Catrobat programs + +By uploading and sharing a Catrobat program (also called a Catrobat project) via one of our apps, you accept and agree to put this work under the following licenses and terms of use and service: + +- The uploaded program (project) as a whole is made available under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at the option of the person accepting the license) any later version when it becomes available. +- All non-software artifacts of the uploaded program, such as, e.g., text, graphics, photos, sounds, music, videos, audiovisual combinations, interactive features, and other materials are made available under the Creative Commons Attribution-ShareAlike 4.0 International Public License (CC BY-SA 4.0) . See for a human-readable summary of this license. +- You accept and agree to our Terms of use and service. + +Please mail any suggestions regarding these licenses to webmaster@catrobat.org. diff --git a/pages/legal/policies/copyright.md b/pages/legal/policies/copyright.md new file mode 100644 index 0000000..88a380f --- /dev/null +++ b/pages/legal/policies/copyright.md @@ -0,0 +1,20 @@ +--- +layout: home-with-socials +title: Copyright +parent: Policies +grand_parent: Legal +--- + +## Copyright Policy + +Version 2.1, 13 January 2019 + +The Catrobat team respects the intellectual property of others, as well as of our users. If you believe that your work has been copied in a way that constitutes copyright infringement, please send us an email. + +We will promptly process and investigate notices of alleged infringement and will take appropriate actions under the Directive 2001/29/EC and other applicable intellectual property laws. Upon receipt, the Catrobat team may act expeditiously to remove or disable access to any material claimed to be infringing. Repeat infringers of third-party copyrights are subject to termination of our services in appropriate circumstances. + +In assessing whether or not a Catrobat user has violated your copyrights, please keep in mind that Catrobat is an educational and not-for-profit initiative, seeking to aid young people's learning by providing the tools for them to learn and express themselves using digital technology. + +We hope you also see Catrobat not only as a good way of popularizing your creations but also as an opportunity to do something good for young people's education. + +If you choose to make a copyright infringement complaint, please note that we may post your notification, with personally identifiable information redacted, to a clearinghouse such as https://lumendatabase.org/. Please also note that you may be liable for damages (including costs and attorneys' fees) if you materially misrepresent that an activity is infringing your copyright. diff --git a/pages/legal/policies/index.md b/pages/legal/policies/index.md new file mode 100644 index 0000000..b98e456 --- /dev/null +++ b/pages/legal/policies/index.md @@ -0,0 +1,7 @@ +--- +layout: home-with-socials +title: Policies +nav_order: 4 +has_children: true +parent: Legal +--- diff --git a/pages/legal/policies/privacy.md b/pages/legal/policies/privacy.md new file mode 100644 index 0000000..b893382 --- /dev/null +++ b/pages/legal/policies/privacy.md @@ -0,0 +1,29 @@ +--- +layout: home-with-socials +title: Privacy +parent: Policies +grand_parent: Legal +--- + + +## Privacy Policy + +Version 2.3, 6 April 2021 + +To offer you all the benefits of our services and the associated account, it is necessary to collect certain data from you. + +To maintain and improve our services (apps and websites) and to do scientific research on ICT and STEM/STEAM education, we use Google Analytics by Google LLC (USA), Dynatrace by Dynatrace LLC (USA) to get metadata about the usage of our services, e.g., crash information, timestamps, visited pages/screens, usage of our apps and services, used operating system, and information about the network provider. This analysis and the collected data is not linked to your profile and does not contain any personal information (last bits of the IP address get anonymized). However, the collected data will get transferred to the service-providers (Google LLC, USA and Dynatrace LLC, USA). Data processing is based on agreements with Google LLC and Dynatrace LLC. This relationship to the service providers conforms to the European Union's General Data Protection Regulation (EU GDPR) and EU-USA "Privacy Shield" agreement. + +To create and use an account in our systems, and to inform you about necessary changes about your account per e-mail, e.g., updates or violations of our Terms of Use and Service, our community rules, or our policies, we will store your username and, if provided by you, your e-mail address. If you have connected your account via Google Plus or Facebook, we additionally store an identification key connected to your account on these services. We will not use this data for any other (e.g., marketing) purposes, unless you explicitly allowed us to do so. + +From time to time we may contact you to ask questions about your usage of our systems, e.g., to improve their user-friendlyness or for scientific research purposes. You can answer these questions on a voluntary basis, and we store only anonymized data on our own servers. As of April 2021, we use SurveyLegend.com, based in Sweden, Europe and storing its data in Europe, as the tool to conduct surveys and ask you questions. The collected data on our side is not linked to your profile and does not contain any personal information. + +On a voluntary basis, you can also give us your country of residence through your account page on the sharing site. This will get displayed on your public profile and only be used for statistical and research purposes by us. It can be removed at any time in your profile settings. + +You can withdraw the usage of the personal data belonging to your account at any time by deleting your account through your profile page on https://share.catrob.at/. After deleting your account you will still be able to use the provided services, but not to collaborate, e.g., through uploading programs, commenting, or liking. Also, all provided content linked to your account, e.g., uploaded programs, comments, etc., will be deleted. + +To avoid misuse of our services, e.g., through user contributed uploads or comments for illegal purposes, all user generated public data (uploads, comments) will be stored internally in a database, together with a timestamp. We do not collect internet addresses anymore for your protection. This data will not be used by or forwarded to any institutions, unless sufficiently illegal actions are reasonably suspected and officially entitled legal institutions request it based on applicable law (that is why we do not collect IP addresses anymore). Each case will be thoroughly checked on an individual basis by us first. + +All Services are provided by the free open source Catrobat project under the umbrella of the International Catrobat Association – Verein zur Förderung freier Software, a non-profit NGO incorporated in Graz, Austria (European Union). Our policies pay respect to EU and Austrian data protection law (GDPR). To get in touch with us, please send an e-mail to contact@catrobat.org or mail us to Catrobat, Herrengasse 3, A-8010 Graz, Austria (European Union). + +In case you are below the age of 14, this policy must be accepted by a legal guardian (usually a parent). diff --git a/pages/legal/terms-of-use-and-service.md b/pages/legal/terms-of-use-and-service.md new file mode 100644 index 0000000..74dd815 --- /dev/null +++ b/pages/legal/terms-of-use-and-service.md @@ -0,0 +1,232 @@ +--- +title: Terms of Use and Service +nav_order: 2 +layout: home-with-socials +parent: Legal +--- + + +## Terms of Use and Service + +Version 4.0, 23 May 2022 + +1. **Your Acceptance** +
    +
  1. By using or visiting any website (including any software that we created which either runs directly on Catrobat's servers, or alternatively runs client-side, e.g., in your browser, but is served by Catrobat's servers) or products (including all of Catrobat's web-services provided by software that we created which are offered through Catrobat's servers), all executables we offer on any markets or the web (including, e.g., the Google Play App Store, Apple's iTunes App Store, Amazon's App Store, etc), data feeds, and services provided to you on, from, or through the Catrobat project (collectively the “Software Applications and Services”), you signify your agreement to + (1) these terms and conditions (the "Terms of Use and Service"), (2) Catrobat's privacy notice, found at https://catrob.at/privacypolicy and incorporated herein by reference, and (3) Catrobat's Community Guidelines, found at https://catrob.at/tou. + If you do not agree to any of these terms, the Catrobat privacy notice, or the Community Guidelines, please do not use the Software Applications and Services. +
  2. +
  3. + Although we may attempt to notify you when major changes are made to these Terms of Use and Service, you should periodically review the most up-to-date version (https://catrob.at/touas). The Catrobat team may, in its sole discretion, modify or revise these Terms of Use and Service and policies at any time, and you agree to be bound by such modifications or revisions. +
  4. +
+ +2. **Use of Software Applications and Services** +
    +
  1. + These Terms of Use and Service apply to all users of the Software Applications and Services, including users who are also contributors of Content to the Software Applications and Services. “Content” includes the text, software, scripts, graphics, photos, sounds, music, videos, audiovisual combinations, interactive features and other materials you may view on, access through, or contribute to the Software Applications and Services. The Software Applications and Services include all aspects of Catrobat, including but not limited to all products, software, and services offered via Catrobat's websites. +
  2. +
  3. + The Software Applications and Services may contain links to third party websites that are not owned or controlled by the Catrobat team (in the following also called “Catrobat”). Catrobat has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third party websites. In addition, Catrobat will not and cannot censor or edit the content of any third-party site. By using the Software Applications and Services, you expressly relieve Catrobat from any and all liability arising from your use of any third-party website. +
  4. +
  5. + Accordingly, we encourage you to be aware when you leave the Software Applications and Services and to read the terms and conditions and privacy policy of each other website that you visit. +
  6. +
+ +3. **Catrobat Accounts** +
    +
  1. + In order to access some features of the Software Applications and Services, you will have to create a Catrobat account. You may never use another's account without permission. When creating your account, you must provide accurate and complete information. You are solely responsible for the activity that occurs on your account, and you must keep your account password secure. +
  2. +
  3. + Although Catrobat will not be liable for your losses caused by any unauthorized use of your account, you may be liable for the losses of Catrobat or others due to such unauthorized use. +
  4. +
+ +4. **General Use of the Software Applications and Services --- Permissions and Restrictions** + + Catrobat hereby grants or denies you permission to access and use the Software Applications and Services as set forth in these Terms of Use and Service, as follows: + +
    +
  1. + If you, or, in case you are under 13 years of age, any one of your parents or your legal guardians, in the following called the “Responsible”, have been in the past and/or still are associated at this moment with a commercial, governmental, or any other type of legal entity, here meant to also include international and/or religious organizations, as well as you yourself as a private person, but excluding whole countries, in the following called the “Entity”, that is involved in and/or responsible for dragnet type privacy violations and/or bulk or mass surveillance, independently of any legitimate or illegitimate reason whatsoever (including but not limited to reasons of national or international security, fighting against terrorism, following the law, and/or the “preservation of social stability”), in the following collectively called “Acts”, then you are not allowed to use and/or to access Catrobat’s Software Applications and Services. All suborganizations being part of a larger organization (in case of federal, national, state, regional, tribal, and/or local governments of countries or unions of countries, e.g., the European Union, independently of whether the country is universally recognized or not: its legislative branches, executive branches, judicial branches, congress, senates, houses (of representatives, of lords, etc), parliaments, courts, heads, armies, embassies, agencies (including secret, quasi-official, and/or so-called independent but associated agencies), cabinets, headquarters, corporations (including government-owned corporations as well as private regulatory corporations created by the government but independent of other entities), institutions, boards, missions, ministries, commissions, chartered organizations, government-sponsored enterprises, and/or other major named suborganizations (certain “capital-letter”-type suborganizations with their own official name, sometimes called Bureau, Office, Department, Division, Institute, and/or Services; however, normal offices of a department etc in the general common sense of the words, as well as teams called “Compartments”, are explicitly not to be included), as well as their equivalents in languages other than English) are here to be considered as separate organizations; however, all persons associated with hierarchically higher-level organizations (higher-level organizations here are meant to include all organizations that have any kind of power or responsibility over an Entity involved in and/or responsible for an Act and/or over Entities that themselves are higher-level Entities to an Entity involved in and/or responsible for an Act through a recursive associative hierarchical relation; power here is meant to also include situations where the lower-level Entity in any way operates under or must report to the higher-level Entity) and their children below 13 years of age are also not allowed to use and/or access Catrobat’s Software Applications and Services, even if the hierarchically lower-level Entity acted independently, illegally, and/or against orders or policies set forth by the higher-level Entity, and even if nobody associated with the higher-level Entity was aware of any Acts of the lower-level Entity; whereas persons associated with other Entities on the same or on a lower hierarchical level are not prohibited by these Terms of Use and Services of using and/or accessing Catrobat’s Software Applications and Services as long as they are not otherwise associated with Entities involved in and/or responsible for Acts (e.g., if a National Security Agency is involved in and/or responsible for Acts, operates under the jurisdiction of the Office of the Secretary of Defense that itself is part of the Department of Defense headed by the Secretary of Defense who is a member of the Cabinet, and you are working at this Office of the Secretary of Defense or at the Cabinet, or are yourself the Secretary of Defense, then you and your children below 13 years of age are not allowed to use and/or access Catrobat’s Software Applications and Services; however, if, again, a National Security Agency is involved in and/or responsible for Acts and operates under the jurisdiction of the Office of the Secretary of Defense, and the Defense Logistics Agency also operates under the jurisdiction of the Office of the Secretary of Defense but itself is not involved in and/or responsible for Acts and also is not using the results of the Acts of any other Entity, and you are working for the Defense Logistics Agency and are not otherwise associated with any other Entity involved in and/or responsible for Acts, then you and your children below 13 years of age are allowed to use and/or access Catrobat’s Software Applications and Services). Being associated here means that the Responsible either has been in the past or currently still is: working for, owning, heading, leading, managing, directing, an officer of, an official for, appointed to, employed by, an agent for, a contractor for, affiliated to, a professionally advisor for, doing volunteer work for, investing into, otherwise significantly supporting (e.g., as a member of an advisory board, or as a financial contributor to a political campaign by any amount per year worth more than the current value of the fine for the violation of this restriction as set forth below; however, merely paying taxes or voting for a political party are not to be considered as sufficiently significant), and/or (as an individual) consisting of the Entity. The involvement and/or responsibility of the Entity here includes but is not limited to, e.g., the ordering, selling, conveying, provisioning, maintaining, management, creation, and/or the intentional use of such surveillance technology, as well as any intentional weakening of security, intentional installation of backdoors, rootkits, keyloggers, or any other type of privacy violating soft- and/or hardware, that are being used for Acts, independently of whether this use is done by the Entity or a third, unrelated party, and independently of whether the Entity is forced to do so under penalty of law, voluntarily, or for whatever other reason. It is also irrelevant whether the Responsible must, for whatever reason, be associated with the Entity: if you are (or, in case you are under 13 years of age, any one of your parents or your legal guardians is) associated with an Entity involved in and/or responsible for Acts, then you and your children below 13 years of age are not allowed to use and/or to access Catrobat’s Software Applications and Services. Violations of this restriction to use and/or access Catrobat’s Software Applications and Services can be prosecuted by law and fined with the amount of 35,000.- € (amount valid in 2019; this amount is to be adjusted by the cumulated official yearly average inflation rate of the European Union), the fine having to be paid privately by each individual Responsible who is violating this restriction. The litigated amount resulting after all official administrative legal fees have been paid to the court, whatever this amount is, must be equally split between +
      +
    • + i. the law company that won the litigation, +
    • +
    • + ii. the Free Software Foundation or, alternatively, one of its sister organizations, and +
    • +
    • + iii. another broadly recognized non-governmental non-profit organization actively developing free software or actively being involved in the fostering of the preservation of privacy and/or freedom (e.g., the Electronic Frontier Foundation, the Wikimedia Foundation, Amnesty International, the Apache Foundation), the recipients of point (4.a.ii.) and (4.a.iii.) being chosen by the individual or organization that initiated the law suit. +
    • +
    +
  2. +
  3. + Nevertheless, there are four special circumstances under which Responsibles and their children under 13 years of age are allowed to use and access Catrobat’s Software Applications and Services, even when conditions described in Section 4.a would otherwise prohibit them from the usage of and access to Catrobat’s Software Applications and Services: +
      +
    • + i. if the Responsible has publicly, i.e., in a way that has made it widely known to anyone interested in such topics, e.g., in mass media that are broadly received all over the world, believably denounced and condemned all Acts of all Entities with which the Responsible has been associated, and the Responsible has from that moment on not been associated anymore with these Entities and/or other Entities involved in and/or responsible for Acts (“whistleblower exception”), or +
    • +
    • + ii. if all Entities with which the Responsible has been associated and that are and/or have been involved in and/or responsible for Acts, have confessed all and every of these Acts publicly, i.e., in a way that has made it widely known to anyone interested in such topics, e.g., in mass media that are broadly received all over the world, and these Entities have permanently stopped doing all and any Acts, and have destroyed all the mass surveillance data they have collected, in a permanent and complete way (“policy correction exception”), or +
    • +
    • + iii. if the Responsible was forced to be associated with the Entity because of slavery, under duress, or through coercion (“duress exception”); note, however, that being forced or obliged to be associated with an Entity involved in and/or responsible for Acts because of legal reasons (e.g., by having to follow the law) is explicitly not to be considered as sufficient to be included in this exception, or +
    • +
    • + iv. if the Responsible, in the following called the “Innocent”, is and/or has been associated with an Entity, in the following called the “Victim Entity”; and if one or several different Responsibles, in the following called “Rogue Associates” who are and/or were associated with the Victim Entity, are associated with a second Entity, in the following called the “Unethical Entity” ; and if anyone of the Rogue Associates is forbidden to use and/or access Catrobat's Software Applications and Services under consideration of Sections 4.a and 4.b through his or her association with the Unethical Entity; and if the Innocent would be forbidden to use and/or access Catrobat's Software Applications and Services under consideration of Sections 4.a and 4.b only because of the Rogue Associates; and if none of the Responsibles associated with the Victim Entity besides the Rogue Associates would be forbidden to use and/or access Catrobat's Software Applications and Services under consideration of Sections 4.a and 4.b except because of the Rogue Associates; and if all and every other Responsibles of the Victim Entity (besides the Rogue Associates) who are not and/or have not been associated with the Unethical Entity and/or any third Entity whose associates are forbidden to use and/or access Catrobat's Software Applications and Services, are not aware of the association of the Rogue Associates with the Unethical Entity (“victim entity exception”). +
    • +
    +
  4. +
  5. + You are granted permission to access and use the Software Applications and Services, provided Section 4.a does not apply to you or Section 4.b does apply to you, and Sections 4.d and 4.e apply to you, and you agree not to use the Software Applications and Services for any of the following institutional or commercial uses unless you obtain Catrobat's prior written approval: +
      +
    • + i. the sale of the Software Applications and/or access to the Services; +
    • +
    • + ii. the sale of advertising, sponsorships, or promotions placed on or within the Software Applications and/or Services and/or Content; +
    • +
    • + iii. the usage of the Software Applications and/or access to the Services in any offerings or services provided by a commercial, governmental, or any other type of legal entity, including schools, universities, commercial enterprises, national and/or international and/or religious organizations, but excluding private individuals, non-profit legal entities focussing primarily on coding and offering their services free of charge and without advertisements and not for marketing purposes, e.g., coding clubs and/or coding-oriented associations, as well as legal entities using the Software Applications and access to the Services purely for research purposes. +
    • +
    • + iv. if the Responsible, in the following called the “Innocent”, is and/or has been associated with an Entity, in the following called the “Victim Entity”; and if one or several different Responsibles, in the following called “Rogue Associates” who are and/or were associated with the Victim Entity, are associated with a second Entity, in the following called the “Unethical Entity” ; and if anyone of the Rogue Associates is forbidden to use and/or access Catrobat's Software Applications and Services under consideration of Sections 4.a and 4.b through his or her association with the Unethical Entity; and if the Innocent would be forbidden to use and/or access Catrobat's Software Applications and Services under consideration of Sections 4.a and 4.b only because of the Rogue Associates; and if none of the Responsibles associated with the Victim Entity besides the Rogue Associates would be forbidden to use and/or access Catrobat's Software Applications and Services under consideration of Sections 4.a and 4.b except because of the Rogue Associates; and if all and every other Responsibles of the Victim Entity (besides the Rogue Associates) who are not and/or have not been associated with the Unethical Entity and/or any third Entity whose associates are forbidden to use and/or access Catrobat's Software Applications and Services, are not aware of the association of the Rogue Associates with the Unethical Entity (“victim entity exception”). +
    • +
    +
  6. + +
  7. + You are granted permission to access and use the Software Applications and Services, provided Section 4.a does not apply to you or Section 4.b does apply to you, and Sections 4.c and 4.e apply to you, and you agree not to use or launch any automated system, including without limitation, "robots," "spiders," or "offline readers," that accesses the Services in a manner that sends more request messages to the Catrobat servers in a given period of time than a human can reasonably produce in the same period by using a conventional on-line web browser. Notwithstanding the foregoing, Catrobat grants the operators of public search engines permission to use spiders to copy materials from the site for the sole purpose of and solely to the extent necessary for creating publicly available searchable indices of the materials, but not caches or archives of such materials. Catrobat reserves the right to revoke these exceptions either generally or in specific cases. You agree not to collect or harvest any personally identifiable information, including account names, from the Software Applications and Services, nor to use the communication systems provided by the Software Applications and Services (e.g., comments, forum) for any commercial solicitation purposes. You agree not to solicit, for commercial purposes, any users of the Software Applications and Services with respect to their Content. +
  8. +
  9. + You are granted permission to access and use the Software Applications and Services, provided Section 4.a does not apply to you or Section 4.b does apply to you, and Sections 4.c and 4.d apply to you, and that in your use and access of the Software Applications and Services, you will comply with all applicable laws as specified in Section 14. +
  10. +
  11. + Catrobat reserves the right to discontinue any aspect of the Software Applications and Services at any time. +
  12. + +
+ +5. **Your Use of Content** + + In addition to the general restrictions above, the following restrictions and conditions apply specifically to your use of Content. + +
    +
  1. + Content is provided to you AS IS. You may access Content as intended through the provided functionality of the Software Applications and Services and as permitted under these Terms of Use and Service. +
  2. +
  3. + You agree not to circumvent, disable or otherwise interfere with security-related features of the Software Applications and Services. +
  4. +
  5. + You understand that when using the Software Applications and Services, you will be exposed to Content from a variety of sources, and that Catrobat is not responsible for the accuracy, usefulness, safety, or intellectual property rights of or relating to such Content. You further understand and acknowledge that you may be exposed to Content that is inaccurate, offensive, indecent, or objectionable, and you agree to waive, and hereby do waive, any legal or equitable rights or remedies you have or may have against Catrobat with respect thereto, and, to the extent permitted by applicable law, agree to indemnify and hold harmless Catrobat, its owners, operators, affiliates, licensors, and licensees to the fullest extent allowed by law regarding all matters related to your use of the Software Applications and access to the Services. +
  6. +
+ +6. **Your Content and Conduct** +
    +
  1. + As a Catrobat account holder you may submit Content to the Services, including but not limited to software and user comments. You understand that Catrobat does not guarantee any confidentiality with respect to any Content you submit. +
  2. +
  3. + You shall be solely responsible for your own Content and the consequences of submitting and publishing your Content on the Services. You affirm, represent, and warrant that you own or have the necessary licenses, rights, consents, and permissions to publish Content you submit; and you license to Catrobat all patent, trademark, trade secret, copyright or other proprietary rights in and to such Content for publication on the Services pursuant to these Terms of Use and Service. +
  4. +
  5. + For clarity, you retain all of your ownership rights in your Content. However, by submitting Content to Catrobat Services, you hereby put this Content under the licenses detailed on https://catrob.at/licensesofuploads, thereby granting Catrobat and each user of the Software Applications and Services a worldwide, non-exclusive, royalty-free, sublicenseable, and transferable license to use, reproduce, distribute, prepare derivative works of, display, and perform the Content in connection with the Service and Catrobat's (and its successors' and affiliates') activities, including without limitation for promoting and redistributing part or all of the Content (and derivative works thereof) in any media formats and through any media channels. The above licenses granted by you are perpetual and irrevocable. +
  6. +
  7. + You further agree that Content you submit to the Service will not contain third party copyrighted material, or material that is subject to other third party proprietary rights, unless you have permission from the rightful owner of the material or you are otherwise legally entitled to post the material and to grant Catrobat all of the license rights granted herein. +
  8. +
  9. + You further agree that you will not submit to the Service any Content or other material that is contrary to the Catrobat Community Guidelines, currently found at https://catrob.at/tou, which may be updated from time to time, or contrary to applicable local, national, and international laws and regulations. +
  10. +
  11. + Catrobat does not endorse any Content submitted to the Service by any user or other licensor, or any opinion, recommendation, or advice expressed therein, and Catrobat expressly disclaims any and all liability in connection with Content. Catrobat does not permit copyright infringing activities and infringement of intellectual property rights on the Service, and Catrobat will remove all Content if properly notified that such Content infringes on another's intellectual property rights. Catrobat reserves the right to remove Content without prior notice. +
  12. +
+ +7. **Account Termination Policy** +
    +
  1. + Catrobat will terminate a user's access to the Services if, under appropriate circumstances, the user is determined to be a repeat infringer. +
  2. +
  3. + Catrobat reserves the right to decide whether Content violates these Terms of Use and Service for reasons other than copyright infringement, such as, but not limited to, pornography, obscenity, or excessive size. Catrobat may at any time, without prior notice and in its sole discretion, remove such Content and/or terminate a user's account for submitting such material in violation of these Terms of Use and Service. +
  4. +
+ +8. **Copyright Policy** +
    +
  1. + If you are a copyright owner or an agent thereof and believe that any Content infringes upon your copyrights, you may submit a notification pursuant to the Directive 2001/29/EC and other applicable intellectual property laws by contacting us via email with the following information in writing: +
      +
    • + i. A physical or electronic signature of a person authorized to act on behalf of the owner of an exclusive right that is allegedly infringed; +
    • +
    • + ii. Identification of the copyrighted work claimed to have been infringed, or, if multiple copyrighted works at a single online site are covered by a single notification, a representative list of such works at that site; +
    • +
    • + iii. Identification of the material that is claimed to be infringing or to be the subject of infringing activity and that is to be removed or access to which is to be disabled and information reasonably sufficient to permit the service provider to locate the material; +
    • +
    • + iv. Information reasonably sufficient to permit the service provider to contact you, such as an address, telephone number, and, if available, an electronic mail address; +
    • +
    • + v. A statement that you have a good faith belief that use of the material in the manner complained of is not authorized by the copyright owner, its agent, or the law; and +
    • +
    • + vi. A statement that the information in the notification is accurate, and under penalty of perjury, that you are authorized to act on behalf of the owner of an exclusive right that is allegedly infringed. +
    • +
    +
  2. +
  3. + Counter-Notice. If you believe that your Content that was removed (or to which access was disabled) is not infringing, or that you have the authorization from the copyright owner, the copyright owner's agent, or pursuant to the law, to post and use the material in your Content, you may send a counter-notice containing the following information to us via email: +
      +
    • + i. Your physical or electronic signature; +
    • +
    • + ii. Identification of the Content that has been removed or to which access has been disabled and the location at which the Content appeared before it was removed or disabled; +
    • +
    • + iii. A statement that you have a good faith belief that the Content was removed or disabled as a result of mistake or a misidentification of the Content; and +
    • +
    • + iv. Your name, address, telephone number, and e-mail address, a statement that you consent to the jurisdiction of the federal court in Graz, Austria, and a statement that you will accept service of process from the person who provided notification of the alleged infringement. +
    • +
    +
  4. +
+ If a counter-notice is received by us, Catrobat may send a copy of the counter-notice to the original complaining party informing that person that it may replace the removed Content or cease disabling it in 10 business days. Unless the copyright owner files an action seeking a court order against the Content provider, member or user, the removed Content may be replaced, or access to it restored, in 10 to 14 business days or more after receipt of the counter-notice, at Catrobat's sole discretion. + +9. **Warranty Disclaimer** + + YOU AGREE THAT YOUR USE OF AND/OR ACCESS TO THE SOFTWARE APPLICATIONS AND SERVICES SHALL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, CATROBAT, ITS TEAM MEMBERS, PROJECT CONTRIBUTORS, OFFICERS, DIRECTORS, EMPLOYEES, AND AGENTS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SOFTWARE APPLICATIONS AND SERVICES AND YOUR USE THEREOF AND/OR ACCESS TO IT. CATROBAT MAKES NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF ITS SITES' CONTENT OR THE CONTENT OF ANY SITES LINKED TO THESE SITES AND ASSUMES NO LIABILITY OR RESPONSIBILITY FOR ANY (I) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT, (II) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES, (III) ANY UNAUTHORIZED ACCESS TO OR USE OF CATROBAT'S SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION STORED THEREIN, (IV) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM CATROBAT'S SERVICES, (IV) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES BY ANY THIRD PARTY, AND/OR (V) ANY ERRORS OR OMISSIONS IN ANY CONTENT OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, EMAILED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SOFTWARE APPLICATIONS AND SERVICES. CATROBAT DOES NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY SERVICE OR CONTENT OFFERED BY A THIRD PARTY THROUGH CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES OR ANY HYPERLINKED SERVICES OR FEATURED IN ANY WAY, AND CATROBAT WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND THIRD-PARTY PROVIDERS OF CONTENT OR SERVICES. AS WITH THE USE OR PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE. + +10. **Limitation of Liability** + + IN NO EVENT SHALL CATROBAT, ITS TEAM MEMBERS, PROJECT CONTRIBUTORS, OFFICERS, DIRECTORS, EMPLOYEES, OR AGENTS, BE LIABLE TO YOU FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES WHATSOEVER RESULTING FROM ANY (I) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT, (II) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES, (III) ANY UNAUTHORIZED ACCESS TO OR USE OF CATROBAT'S SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION STORED THEREIN, (IV) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES, (IV) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE, WHICH MAY BE TRANSMITTED TO OR THROUGH CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES BY ANY THIRD PARTY, AND/OR (V) ANY ERRORS OR OMISSIONS IN ANY CONTENT OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF YOUR USE OF ANY CONTENT POSTED, EMAILED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES, WHETHER BASED ON WARRANTY, CONTRACT, TORT, OR ANY OTHER LEGAL THEORY, AND WHETHER OR NOT CATROBAT IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE FOREGOING LIMITATION OF LIABILITY SHALL APPLY TO THE FULLEST EXTENT PERMITTED BY LAW IN THE APPLICABLE JURISDICTION. YOU SPECIFICALLY ACKNOWLEDGE THAT CATROBAT SHALL NOT BE LIABLE FOR CONTENT OR THE DEFAMATORY, OFFENSIVE, OR ILLEGAL CONDUCT OF ANY THIRD PARTY AND THAT THE RISK OF HARM OR DAMAGE FROM THE FOREGOING RESTS ENTIRELY WITH YOU. + + The Services are controlled and offered by Catrobat from its facilities in Austria. Catrobat makes no representations that the Services are appropriate or available for use in other locations. Those who access or use the Services from other jurisdictions do so at their own volition and are responsible for compliance with local law. + +11. **Interpretation of Sections 9 and 10** + + If the disclaimer of warranty and limitation of liability provided in Sections 9 and 10 above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with Catrobat's Software Applications and Services, unless a warranty or assumption of liability accompanies the Software Applications and Services in return for a fee. + +12. **Indemnity** + + To the extent permitted by applicable law, you agree to defend, indemnify, and hold harmless Catrobat, its parent institution, team members, project contributors, officers, directors, employees, and agents, from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, and expenses (including but not limited to attorney's fees) arising from: (i) your use of the Software Applications and access to the Services; (ii) your violation of any term of these Terms of Use and Service; (iii) your violation of any third party right, including without limitation any copyright, property, or privacy right; or (iv) any claim that your Content caused damage to a third party. This defense and indemnification obligation will survive these Terms of Use and Service and your use of the Software Applications and access to the Services. + +13. **Ability to Accept the Terms of Use and Service** + + You affirm that you are either more than 18 years of age, or an emancipated minor, or possess legal parental or guardian consent, and are fully able and competent to enter into the terms, conditions, obligations, affirmations, representations, and warranties set forth in these Terms of Use and Service, and to abide by and comply with these Terms of Use and Service. If you are under 13 years of age, then you have to ask your parents or legal guardians whether they allow you to use Catrobat’s Software Applications and Services, and you cannot use Catrobat’s Software Applications and Services unless you have their approval. If, for whatever reason, including local, international, or any other laws, some parts of these Terms of Use and Service cannot be fully applied in your case, then you and your children below 13 years of age are not allowed to use and/or to access Catrobat’s Software Applications and Services as long as these Terms of Use and Service cannot be fully applied in your case. Violations of this restriction to use and/or access Catrobat’s Software Applications and Services are illegal and can be prosecuted unter the same terms as those set forth in Section 4.a above. + +14. **General** + + You agree that: (i) the Services shall be deemed solely based in Austria; and (ii) the Services shall be deemed passive websites that does not give rise to personal jurisdiction over Catrobat, either specific or general, in jurisdictions other than Austria. These Terms of Use and Service shall be governed by the internal substantive laws of Austria, without respect to its conflict of laws principles. Any claim or dispute between you and Catrobat that arises in whole or in part from the Software Applications and Services shall be decided exclusively by a court of competent jurisdiction located in Graz, Austria. These Terms of Use and Service, together with the Privacy Notice at https://catrob.at/privacypolicy and any other legal notices published by Catrobat through and/or on the Software Applications and Services, shall constitute the entire agreement between you and Catrobat concerning the Software Applications and Services. If any provision of these Terms of Use and Service is deemed invalid by a court of competent jurisdiction, the invalidity of such provision shall not affect the validity of the remaining provisions of these Terms of Use and Service, which shall remain in full force and effect. No waiver of any term of this these Terms of Use and Service shall be deemed a further or continuing waiver of such term or any other term, and Catrobat's failure to assert any right or provision under these Terms of Use and Service shall not constitute a waiver of such right or provision. Catrobat reserves the right to amend these Terms of Use and Service at any time and without notice, and it is your responsibility to review these Terms of Use and Service for any changes. Your use of the Software Applications and access to the Services following any amendment of these Terms of Use and Service will signify your assent to and acceptance of its revised terms. + + YOU AND CATROBAT AGREE THAT ANY CAUSE OF ACTION ARISING OUT OF OR RELATED TO CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES, WITH THE EXCEPTION OF ANY ACTION ARISING OUT OF OR RELATED TO THE PERMISSIONS AND RESTRICTIONS SET FORTH IN SECTION 4 OF THESE TERMS OF USE AND SERVICE, MUST COMMENCE WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES. OTHERWISE, SUCH CAUSE OF ACTION IS PERMANENTLY BARRED. diff --git a/params.json b/params.json deleted file mode 100644 index 3dd9d0b..0000000 --- a/params.json +++ /dev/null @@ -1 +0,0 @@ -{"google":"UA-20197327-2","tagline":"A visual programming language for mobile devices","name":"Catrobat","note":"Don't delete this file! It's used internally to help with page regeneration.","body":"### Welcome!\r\nThe Catrobat umbrella project is as a mentoring organization for [Google Summer of Code 2012](http://www.google-melange.com/gsoc/org/google/gsoc2012/catroidproject)!\r\n\r\n**Catroid** is an on-device visual programming system for Android devices that is inspired by the [Scratch](http://scratch.mit.edu) programming language developed by the Lifelong Kindergarten Group at the MIT Media Lab.\r\n\r\n**Catrobat** is the name of the visual programming language. Catrobat programs can be written by using the Catroid programming system on Android phones and tablets.\r\n\r\n**Paintroid** is an associated graphical paint editor program for the Android platform that, among others, allows setting parts of pictures to transparent.\r\n\r\nThe [Catroid community website](http://www.catroid.org) features Catrobat projects (also called Catrobat programs) uploaded directly from Catroid. These projects can be downloaded and opened in Catroid, for execution on one's Android device and also for remixing. Further functionality such as commenting, forums, a wiki and many others are planned.\r\n\r\n**Please note** that Catroid, Paintroid, as well as the Catroid community website are currently in beta development stage. You are welcome to download and use them, including to upload your own projects to the community website."} \ No newline at end of file diff --git a/privacy_policy.html b/privacy_policy.html deleted file mode 100644 index 89f60c6..0000000 --- a/privacy_policy.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - Privacy Policy - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools

-

Home

-
- -
-

Privacy Policy

- -

To offer you all the benefits of our services and the associated account, it is necessary to collect certain data from you.

-
    -
  • To maintain and improve our services (apps and websites) and to do scientific research on ICT and STEM/STEAM education, we use Google Analytics by Google LLC (USA), Dynatrace by Dynatrace LLC (USA) to get metadata about the usage of our services, e.g., crash information, timestamps, visited pages/screens, usage of our apps and services, used operating system, and information about the network provider. This analysis and the collected data is not linked to your profile and does not contain any personal information (last bits of the IP address get anonymized). However, the collected data will get transferred to the service-providers (Google LLC, USA and Dynatrace LLC, USA). Data processing is based on agreements with Google LLC and Dynatrace LLC. This relationship to the service providers conforms to the European Union's General Data Protection Regulation (EU GDPR) and EU-USA "Privacy Shield" agreement.
  • - -
  • To create and use an account in our systems, and to inform you about necessary changes about your account per e-mail, e.g., updates or violations of our Terms of Use and Service, our community rules, or our policies, we will store your username and, if provided by you, your e-mail address. If you have connected your account via Google Plus or Facebook, we additionally store an identification key connected to your account on these services. We will not use this data for any other (e.g., marketing) purposes, unless you explicitly allowed us to do so.
  • - -
  • From time to time we may contact you to ask questions about your usage of our systems, e.g., to improve their user-friendlyness or for scientific research purposes. You can answer these questions on a voluntary basis, and we store only anonymized data on our own servers. As of April 2021, we use SurveyLegend.com, based in Sweden, Europe and storing its data in Europe, as the tool to conduct surveys and ask you questions. The collected data on our side is not linked to your profile and does not contain any personal information.
  • - -
  • On a voluntary basis, you can also give us your country of residence through your account page on the sharing site. This will get displayed on your public profile and only be used for statistical and research purposes by us. It can be removed at any time in your profile settings.
  • - -
  • You can withdraw the usage of the personal data belonging to your account at any time by deleting your account through your profile page on https://share.catrob.at/. After deleting your account you will still be able to use the provided services, but not to collaborate, e.g., through uploading programs, commenting, or liking. Also, all provided content linked to your account, e.g., uploaded programs, comments, etc., will be deleted.
  • - -
  • To avoid misuse of our services, e.g., through user contributed uploads or comments for illegal purposes, all user generated public data (uploads, comments) will be stored internally in a database, together with a timestamp. We do not collect internet addresses anymore for your protection. This data will not be used by or forwarded to any institutions, unless sufficiently illegal actions are reasonably suspected and officially entitled legal institutions request it based on applicable law (that is why we do not collect IP addresses anymore). Each case will be thoroughly checked on an individual basis by us first.
  • - -
  • All Services are provided by the free open source Catrobat project under the umbrella of the International Catrobat Association – Verein zur Förderung freier Software, a non-profit NGO incorporated in Graz, Austria (European Union). Our policies pay respect to EU and Austrian data protection law (GDPR). - To get in touch with us, please send an e-mail to contact@catrobat.org or mail us to Catrobat, Herrengasse 3, A-8010 Graz, Austria (European Union).
  • -
- -

In case you are below the age of 14, this policy must be accepted by a legal guardian (usually a parent).

- -

Catrobat's official English language privacy policy is available on the web under https://catrob.at/privacypolicy. - -

Version 2.3, 6 April 2021

- -

Find the previous, outdated, version of our privacy policy (2.2) here.

- -
-
- - - - diff --git a/privacy_policy_2-0.html b/privacy_policy_2-0.html deleted file mode 100644 index 6a73473..0000000 --- a/privacy_policy_2-0.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - Privacy Policy - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools
for smartphones, tablets,
and mobile browsers

-

Home

-
- -
-

Privacy Policy (OUTDATED - version 2.0)

- -

Version 2.0, 20 September 2017

-

NOTE: Find our current privacy policy here.

-

To offer you all collaborative benefits of our services and the associated account, it is necessary to collect certain data from you.

-
    -
  • To use your account in our systems, and to inform you about necessary changes about your account (e.g., updates/violation of our Use of Terms of Use and Service or of community rules) or our policies, we will store your username and, if provided by you, your E-Mail address. If you’ve connected your account via Google Plus or Facebook, we additionally store an identification key connected to your account on these services. We will not use this data for any other (e.g., marketing) purposes, unless you explicitly allowed us to do so.
  • - -
  • To avoid misuse of our services (e.g., through user contributed uploads or comments) for illegal purposes, the user generated public data will be stored internally in a database, together with a timestamp and the used IP address.
  • - -
  • To improve our services (apps and websites) and to do scientific research on ICT and STEM education, we use Google Analytics, Crashlytics and Firebase by Google Inc. to get metadata about the usage (e.g., timestamps, visited pages/screens, used operating system, and information about the network provider). This analysis and the collected data is not linked to your profile and does not contain any personal information.
  • - -
  • On a voluntary basis, you can give us your country of residence through your account page on the sharing site. This will only be used for statistical and research purposes by us and can be removed at any time in your profile settings.
  • - -
  • You can withdraw the usage of this data at any time by deleting your account through your profile page on https://share.catrob.at/. After deleting your account you will still be able to use the provided services, but not to collaborate, e.g., through uploading programs, commenting or liking. Also all provided content linked to your account, e.g. uploaded programs, comments, will get deleted.
  • -
  • All Services are provided by the non-profit free open source Catrobat project under the umbrella of the International Catrobat Association – Verein zur Förderung freier Software (Graz, Austria). - To get in touch with us, please send an E-Mail to contact@catrobat.org or mail us to Catrobat, c/o Institute of Software Technology, Inffeldgasse 16b/II, 8010 Graz, Austria.
  • -
- -

In case you are below the age of 16, this policy must be accepted by a legal guardian (usually parents).

- -
-
- - - - diff --git a/privacy_policy_2-2.html b/privacy_policy_2-2.html deleted file mode 100644 index 5cfc00f..0000000 --- a/privacy_policy_2-2.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - Privacy Policy - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools

-

Home

-
- -
-

Privacy Policy (OUTDATED - version 2.2)

- -

Version 2.2, 17 October 2019

-

NOTE: Find our current privacy policy here.

- -

To offer you all the benefits of our services and the associated account, it is necessary to collect certain data from you.

-
    -
  • To maintain and improve our services (apps and websites) and to do scientific research on ICT and STEM/STEAM education, we use Google Analytics, Crashlytics, and Firebase, all by Google LLC (USA), as well as Dynatrace by Dynatrace LLC (USA) to get metadata about the usage of our services, e.g., crash information, timestamps, visited pages/screens, usage of our apps and services, used operating system, and information about the network provider. This analysis and the collected data is not linked to your profile and does not contain any personal information (last bits of the IP address get anonymized). However, the collected data will get transferred to the service-providers (Google LLC, USA and Dynatrace LLC, USA). Data processing is based on agreements with Google LLC and Dynatrace LLC. This relationship to the service providers conforms to the European Union's General Data Protection Regulation (EU GDPR) and EU-USA "Privacy Shield" agreement.
  • - -
  • To create and use an account in our systems, and to inform you about necessary changes about your account per e-mail, e.g., updates or violations of our Terms of Use and Service, our community rules, or our policies, we will store your username and, if provided by you, your e-mail address. If you have connected your account via Google Plus or Facebook, we additionally store an identification key connected to your account on these services. We will not use this data for any other (e.g., marketing) purposes, unless you explicitly allowed us to do so.
  • - -
  • On a voluntary basis, you can give us your country of residence through your account page on the sharing site. This will get displayed on your public profile and only be used for statistical and research purposes by us. It can be removed at any time in your profile settings.
  • - -
  • You can withdraw the usage of the personal data belonging to your account at any time by deleting your account through your profile page on https://share.catrob.at/. After deleting your account you will still be able to use the provided services, but not to collaborate, e.g., through uploading programs, commenting, or liking. Also, all provided content linked to your account, e.g., uploaded programs, comments, etc., will be deleted.
  • - -
  • To avoid misuse of our services, e.g., through user contributed uploads or comments for illegal purposes, all user generated public data (uploads, comments) will be stored internally in a database, together with a timestamp and the used internet address. This data will not be used by or forwarded to any institutions, unless sufficiently illegal actions are reasonably suspected and officially entitled legal institutions request it based on applicable law. Each case will be thoroughly checked on an individual basis by us first.
  • - -
  • You can voluntarily subscribe to the Catrobat Newsletter, on https://catrob.at/newsletter provided by us through the MailChimp service (The Rocket Science Group LLC d/b/a MailChimp, USA). You will then receive updates on the Catrobat project and its services to your provided e-mail adress. You can withdraw the newsletter at any time by using the "unsubscribe" link in the footer of every newsletter. This newsletter is provided by MailChimp with whom we do have a data-processing agreement and who committed to the EU General Data Protection Regulation and EU-USA "Privacy Shield". For further details on MailChimp please also look up MailChimp's Privacy Policy and Terms of Use.
  • - -
  • All Services are provided by the free open source Catrobat project under the umbrella of the International Catrobat Association – Verein zur Förderung freier Software, a non-profit NGO incorporated in Graz, Austria (European Union). Our policies pay respect to EU and Austrian data protection law (GDPR). - To get in touch with us, please send an e-mail to contact@catrobat.org or mail us to Catrobat, c/o Institute of Software Technology, Graz University of Technology, Inffeldgasse 16b, A-8010 Graz, Austria (European Union).
  • -
- -

In case you are below the age of 14, this policy must be accepted by a legal guardian (usually a parent).

- -

Catrobat's official English language privacy policy is available on the web under https://catrob.at/privacypolicy. - -

Version 2.2, 17 October 2019

- -

Find the previous, outdated, version of our privacy policy (2.0) here.

- -
-
- - - - diff --git a/special_thanks.html b/special_thanks.html deleted file mode 100644 index efb9853..0000000 --- a/special_thanks.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - Special Thanks! - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools

-

Home

-

- Contact
-

-
- -
- -

The Catrobat team would like to give special thanks to:

-
    -
  • Mitchel Resnick and his Lifelong Kindergarten group at the MIT Media Lab as well as all - others who were involved in the development of the Scratch programming language, in - particular John Maloney, as well as the Scratch online community site, in particular Andrés - Monroy-Hernández, which serve as our main inspiration source, and who gave us helpful - feedback on our project as well as continuous encouragements. Also Christopher Marten-Ellis - Graves, who's Master's Thesis on Multi-Touch - Programming in Scratch inspired us on how to implement multi-touch support in Catrobat.
  • -
  • And of course to the Scratch community as a whole!
  • -
  • Alan Kay, for eToys and the Dynabook. Since we consider Catrobat to be the younger sister of Scratch, - eToys would have to be one of our ancestors :-)
  • -
  • Robotix Education, who greatly supports Catrobat in many ways!
  • -
  • Samsung, who sponsored the Coding-for-Kids Roadshow in 2016 and 2017, and sponsored the - Galaxy Game Jam we conducted in 2016.
  • -
  • The children and teenagers that participated in our usability tests!
  • -
  • Graz University of Technology, in particular the Institute of Software Technology, for - extensive support w.r.t. the infrastructure needed for the development of Catrobat.
  • -
  • CURE - Center for Usability Research & Engineering, in particular Peter Wolkerstorfer, - for help on improving the usability of Catrobat for children.
  • -
  • The students from Wolfgang Slany's lectures and courses at Graz University of Technology.
  • -
  • Kenji Tanaka, who greatly supports us in our marketing and organizational efforts.
  • -
  • Jens Mönig, the creator of the BYOB extension of Scratch, and also of the Snap! visual - programming language, also for inspiration, great feedback on our project, as well as - continuous encouragements.
  • -
  • Mario Zechner, for help and support on his libgdx library for Android, as well as help and - support w.r.t. OpenGL for Android.
  • -
  • Universiti Teknologi Petronas for supporting 6 of our team members, Ainul Husna - Abdul Muin, Jia Lin Chong, Denise Hoo, Fatin Ghazi, Deena Mugien, and Walter Tang, each - for 6 months.
  • -
  • HEC - Higher Education Commission Pakistan for supporting our team member Safdar - Zaman for three years.
  • -
  • The free software foundation, in particular Luigi Bai, for extensive help w.r.t. to free and - open source licenses for children, as well as Richard Stallman (himself!) for letting us adapt - and reuse the text of the GCC Runtime Library Exception for Catrobat.
  • -
  • Google, in particular Carol Smith and Chris DiBona, for accepting Catroid (the Android - version of Catrobat) as a Google Summer of Code 2011 and 2012 mentoring project and - funding four students in 2011 and eight students in 2012 in this program, and also for Android - itself as well as for the free software and infrastructure we use in our project.
  • -
  • The Google team in Boston for promoting Catrobat and Pocket Code on Google Play for - Education, donating hardware, and for pushing us to give our best.
  • -
  • Graz International Bilingual School's (GIBS) pupils, teachers (in particular Imelda Görög, - Heinz Knasar, Florian Lassnig, and Patricia Raposo), as well as parents of pupils, for lots - of cooperation and work together with our team, in classes, with Google, in electives, and with - students from Graz University of Technology and Fachhochschule Joanneum.
  • -
  • Github for allowing us to use its infrastructure to host our repositories and developer pages.
  • -
  • Microsoft Austria for supporting us with four Nokia Lumia 800 Windows Phone 7 devices.
  • -
  • The TouchDevelop team at Microsoft Research for supporting us with 25 Nokia Lumia - 710 Windows Phone 7 devices.
  • -
  • Keith Andrews for supporting us w.r.t. usability engineering.
  • -
  • Peter Söser from the Institute of Electronics at Graz University of Technology for - help with the development of electronic circuit boards for our Arduino controlled robots.
  • -
  • Catherine Rollier, Seppo Gründler and Konrad Baumann for cooperating with all things related to - the improvement of the design, the user experience, as well as many other aspects of our - project.
  • -
  • Albert Wiltsche from the Institute of Architecture and Media for the help with the design - and execution of our 3D-Print.
  • -
  • Paulo Lataguia as the winner of the DesignCrowd competition for the Pocket Code icon
  • -
  • Graphic designer Vipul "VIPS" Kolambe - from kunda design as the winner of the DesignCrowd competition for the 2013-2018 Catrobat logo.
  • -
  • Neal Stephenson, for the inspiration to this project through his novel "The Diamond Age: Or, A - Young Lady's Illustrated Primer: a Propædeutic Enchiridion in which is told the tale of Princess - Nell and her various friends, kin, associates, &c."
  • -
  • Atlassian for allowing us to use their software under an - Open source license.
  • -
  • JetBrains for allowing us to use their software under an - Open source license.
  • -
  • Slack for allowing us to use their services as a - nonprofit organization.
  • -
  • BrowserStack for allowing us to use their services as an - open source organization.
  • -
  • Parkside for supporting the local team of students at TU Graz.
  • -
-

All of you, thank you very much for helping to make Catrobat great!!!

-

In case we forgot to mention you here, please forgive us and immediately contact us so that we can add you. Thank you!

-
-
- - - - diff --git a/stylesheets/pygment_trac.css b/stylesheets/pygment_trac.css deleted file mode 100644 index c6a6452..0000000 --- a/stylesheets/pygment_trac.css +++ /dev/null @@ -1,69 +0,0 @@ -.highlight { background: #ffffff; } -.highlight .c { color: #999988; font-style: italic } /* Comment */ -.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ -.highlight .k { font-weight: bold } /* Keyword */ -.highlight .o { font-weight: bold } /* Operator */ -.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ -.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ -.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #aa0000 } /* Generic.Error */ -.highlight .gh { color: #999999 } /* Generic.Heading */ -.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ -.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #555555 } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */ -.highlight .gt { color: #aa0000 } /* Generic.Traceback */ -.highlight .kc { font-weight: bold } /* Keyword.Constant */ -.highlight .kd { font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #009999 } /* Literal.Number */ -.highlight .s { color: #d14 } /* Literal.String */ -.highlight .na { color: #008080 } /* Name.Attribute */ -.highlight .nb { color: #0086B3 } /* Name.Builtin */ -.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ -.highlight .no { color: #008080 } /* Name.Constant */ -.highlight .ni { color: #800080 } /* Name.Entity */ -.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ -.highlight .nn { color: #555555 } /* Name.Namespace */ -.highlight .nt { color: #000080 } /* Name.Tag */ -.highlight .nv { color: #008080 } /* Name.Variable */ -.highlight .ow { font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #009999 } /* Literal.Number.Float */ -.highlight .mh { color: #009999 } /* Literal.Number.Hex */ -.highlight .mi { color: #009999 } /* Literal.Number.Integer */ -.highlight .mo { color: #009999 } /* Literal.Number.Oct */ -.highlight .sb { color: #d14 } /* Literal.String.Backtick */ -.highlight .sc { color: #d14 } /* Literal.String.Char */ -.highlight .sd { color: #d14 } /* Literal.String.Doc */ -.highlight .s2 { color: #d14 } /* Literal.String.Double */ -.highlight .se { color: #d14 } /* Literal.String.Escape */ -.highlight .sh { color: #d14 } /* Literal.String.Heredoc */ -.highlight .si { color: #d14 } /* Literal.String.Interpol */ -.highlight .sx { color: #d14 } /* Literal.String.Other */ -.highlight .sr { color: #009926 } /* Literal.String.Regex */ -.highlight .s1 { color: #d14 } /* Literal.String.Single */ -.highlight .ss { color: #990073 } /* Literal.String.Symbol */ -.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #008080 } /* Name.Variable.Class */ -.highlight .vg { color: #008080 } /* Name.Variable.Global */ -.highlight .vi { color: #008080 } /* Name.Variable.Instance */ -.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ - -.type-csharp .highlight .k { color: #0000FF } -.type-csharp .highlight .kt { color: #0000FF } -.type-csharp .highlight .nf { color: #000000; font-weight: normal } -.type-csharp .highlight .nc { color: #2B91AF } -.type-csharp .highlight .nn { color: #000000 } -.type-csharp .highlight .s { color: #A31515 } -.type-csharp .highlight .sc { color: #A31515 } diff --git a/stylesheets/styles.css b/stylesheets/styles.css deleted file mode 100644 index 7d5a9ca..0000000 --- a/stylesheets/styles.css +++ /dev/null @@ -1,266 +0,0 @@ -@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700); - -body { - padding:50px; - font:14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; - color:#444; - font-weight:300; -} - -h1, h2, h3, h4, h5, h6 { - color:#222; - margin:0 0 20px; -} - -p, ul, ol, table, pre, dl { - margin:0 0 20px; -} - -h1, h2, h3 { - line-height:1.1; -} - -h1 { - font-size:1.2em; -} - -h2 { - color:#393939; -} - -h3, h4, h5, h6 { - color:#494949; -} - -a { - color:#17a; - font-weight:400; - text-decoration:none; -} - -a small { - font-size:11px; - color:#777; - margin-top:-0.6em; - display:block; -} - -a.skiplink { -display:block; -margin-top: -1.5em; -background:transparent; -color:#FFF; -} - -a.skiplink:hover, a.skiplink:focus { -background:transparent; -color:#17a; -} - -.wrapper { - width:860px; - margin:0 auto; -} - -blockquote { - border-left:1px solid #e5e5e5; - margin:0; - padding:0 0 0 20px; - font-style:italic; -} - -code, pre { - font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; - color:#333; - font-size:12px; -} - -pre { - padding:8px 15px; - background: #f8f8f8; - border-radius:5px; - border:1px solid #e5e5e5; - overflow-x: auto; -} - -table { - width:100%; - border-collapse:collapse; -} - -th, td { - text-align:left; - padding:5px 10px; - border-bottom:1px solid #e5e5e5; -} - -dt { - color:#444; - font-weight:700; -} - -th { - color:#444; -} - -img { - max-width:100%; -} - -header { - width:270px; - float:left; -} - -header ul { - list-style:none; - height:40px; - - padding:0; - - background: #eee; - background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); - background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); - background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); - background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); - background: linear-gradient(top, #f8f8f8 0%,#dddddd 100%); - - border-radius:5px; - border:1px solid #d2d2d2; - box-shadow:inset #fff 0 1px 0, inset rgba(0,0,0,0.03) 0 -1px 0; - width:270px; -} - -header li { - width:89px; - float:left; - border-right:1px solid #d2d2d2; - height:40px; -} - -header ul a { - line-height:1; - font-size:11px; - color:#999; - display:block; - text-align:center; - padding-top:6px; - height:40px; -} - -strong { - color:#222; - font-weight:700; -} - -header ul li + li { - width:88px; - border-left:1px solid #fff; -} - -header ul li + li + li { - border-right:none; - width:89px; -} - -header ul a strong { - font-size:14px; - display:block; - color:#222; -} - -section { - width:500px; - float:right; - padding-bottom:50px; -} - -small { - font-size:11px; -} - -hr { - border:0; - background:#e5e5e5; - height:1px; - margin:0 0 20px; -} - -footer { - width:270px; - float:left; - position:fixed; - bottom:50px; -} - -@media print, screen and (max-width: 960px) { - - div.wrapper { - width:auto; - margin:0; - } - - header, section, footer { - float:none; - position:static; - width:auto; - } - - header { - padding-right:320px; - } - - section { - border:1px solid #e5e5e5; - border-width:1px 0; - padding:20px 0; - margin:0 0 20px; - } - - header a small { - display:inline; - } - - header ul { - position:absolute; - right:50px; - top:52px; - } -} - -@media print, screen and (max-width: 720px) { - body { - word-wrap:break-word; - } - - header { - padding:0; - } - - header ul, header p.view { - position:static; - } - - pre, code { - word-wrap:normal; - } -} - -@media print, screen and (max-width: 480px) { - body { - padding:15px; - } - - header ul { - display:none; - } -} - -@media print { - body { - padding:0.4in; - font-size:12pt; - color:#444; - } -} diff --git a/terms_of_use_and_service.html b/terms_of_use_and_service.html deleted file mode 100644 index 2c12c64..0000000 --- a/terms_of_use_and_service.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - Terms of Use and Service - - - - - - -
-
-

Catrobat

-

A visual programming language
and set of creativity tools

-

Home

-

- Legal Contact
-

-
- -
-

Terms of Use and Service
(a.k.a. End User License Agreement)

- -

Version 4.0, 23 May 2022

- -

1. Your Acceptance

-
    -
  1. By using or visiting any website (including any software that we created which either runs directly on Catrobat's servers, or alternatively runs client-side, e.g., in your browser, but is served by Catrobat's servers) or products (including all of Catrobat's web-services provided by software that we created which are offered through Catrobat's servers), all executables we offer on any markets or the web (including, e.g., the Google Play App Store, Apple's iTunes App Store, Amazon's App Store, etc), data feeds, and services provided to you on, from, or through the Catrobat project (collectively the “Software Applications and Services”), you signify your agreement to (1) these terms and conditions (the "Terms of Use and Service"), (2) Catrobat's privacy notice, found at https://catrob.at/privacypolicy and incorporated herein by reference, and (3) Catrobat's Community Guidelines, found at https://catrob.at/tou. If you do not agree to any of these terms, the Catrobat privacy notice, or the Community Guidelines, please do not use the Software Applications and Services.
  2. -
  3. Although we may attempt to notify you when major changes are made to these Terms of Use and Service, you should periodically review the most up-to-date version (https://catrob.at/touas). The Catrobat team may, in its sole discretion, modify or revise these Terms of Use and Service and policies at any time, and you agree to be bound by such modifications or revisions.
  4. -
-

2. Use of Software Applications and Services

-
    -
  1. These Terms of Use and Service apply to all users of the Software Applications and Services, including users who are also contributors of Content to the Software Applications and Services. “Content” includes the text, software, scripts, graphics, photos, sounds, music, videos, audiovisual combinations, interactive features and other materials you may view on, access through, or contribute to the Software Applications and Services. The Software Applications and Services include all aspects of Catrobat, including but not limited to all products, software, and services offered via Catrobat's websites.
  2. -
  3. The Software Applications and Services may contain links to third party websites that are not owned or controlled by the Catrobat team (in the following also called “Catrobat”). Catrobat has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third party websites. In addition, Catrobat will not and cannot censor or edit the content of any third-party site. By using the Software Applications and Services, you expressly relieve Catrobat from any and all liability arising from your use of any third-party website.
  4. -
  5. Accordingly, we encourage you to be aware when you leave the Software Applications and Services and to read the terms and conditions and privacy policy of each other website that you visit.
  6. -
-

3. Catrobat Accounts

-
    -
  1. In order to access some features of the Software Applications and Services, you will have to create a Catrobat account. You may never use another's account without permission. When creating your account, you must provide accurate and complete information. You are solely responsible for the activity that occurs on your account, and you must keep your account password secure.
  2. -
  3. Although Catrobat will not be liable for your losses caused by any unauthorized use of your account, you may be liable for the losses of Catrobat or others due to such unauthorized use.
  4. -
-

4. General Use of the Software Applications and Services --- Permissions and Restrictions

-

Catrobat hereby grants or denies you permission to access and use the Software Applications and Services as set forth in these Terms of Use and Service, as follows:

-
    -
  1. If you, or, in case you are under 13 years of age, any one of your parents or your legal guardians, in the following called the “Responsible”, have been in the past and/or still are associated at this moment with a commercial, governmental, or any other type of legal entity, here meant to also include international and/or religious organizations, as well as you yourself as a private person, but excluding whole countries, in the following called the “Entity”, that is involved in and/or responsible for dragnet type privacy violations and/or bulk or mass surveillance, independently of any legitimate or illegitimate reason whatsoever (including but not limited to reasons of national or international security, fighting against terrorism, following the law, and/or the “preservation of social stability”), in the following collectively called “Acts”, then you are not allowed to use and/or to access Catrobat’s Software Applications and Services. All suborganizations being part of a larger organization (in case of federal, national, state, regional, tribal, and/or local governments of countries or unions of countries, e.g., the European Union, independently of whether the country is universally recognized or not: its legislative branches, executive branches, judicial branches, congress, senates, houses (of representatives, of lords, etc), parliaments, courts, heads, armies, embassies, agencies (including secret, quasi-official, and/or so-called independent but associated agencies), cabinets, headquarters, corporations (including government-owned corporations as well as private regulatory corporations created by the government but independent of other entities), institutions, boards, missions, ministries, commissions, chartered organizations, government-sponsored enterprises, and/or other major named suborganizations (certain “capital-letter”-type suborganizations with their own official name, sometimes called Bureau, Office, Department, Division, Institute, and/or Services; however, normal offices of a department etc in the general common sense of the words, as well as teams called “Compartments”, are explicitly not to be included), as well as their equivalents in languages other than English) are here to be considered as separate organizations; however, all persons associated with hierarchically higher-level organizations (higher-level organizations here are meant to include all organizations that have any kind of power or responsibility over an Entity involved in and/or responsible for an Act and/or over Entities that themselves are higher-level Entities to an Entity involved in and/or responsible for an Act through a recursive associative hierarchical relation; power here is meant to also include situations where the lower-level Entity in any way operates under or must report to the higher-level Entity) and their children below 13 years of age are also not allowed to use and/or access Catrobat’s Software Applications and Services, even if the hierarchically lower-level Entity acted independently, illegally, and/or against orders or policies set forth by the higher-level Entity, and even if nobody associated with the higher-level Entity was aware of any Acts of the lower-level Entity; whereas persons associated with other Entities on the same or on a lower hierarchical level are not prohibited by these Terms of Use and Services of using and/or accessing Catrobat’s Software Applications and Services as long as they are not otherwise associated with Entities involved in and/or responsible for Acts (e.g., if a National Security Agency is involved in and/or responsible for Acts, operates under the jurisdiction of the Office of the Secretary of Defense that itself is part of the Department of Defense headed by the Secretary of Defense who is a member of the Cabinet, and you are working at this Office of the Secretary of Defense or at the Cabinet, or are yourself the Secretary of Defense, then you and your children below 13 years of age are not allowed to use and/or access Catrobat’s Software Applications and Services; however, if, again, a National Security Agency is involved in and/or responsible for Acts and operates under the jurisdiction of the Office of the Secretary of Defense, and the Defense Logistics Agency also operates under the jurisdiction of the Office of the Secretary of Defense but itself is not involved in and/or responsible for Acts and also is not using the results of the Acts of any other Entity, and you are working for the Defense Logistics Agency and are not otherwise associated with any other Entity involved in and/or responsible for Acts, then you and your children below 13 years of age are allowed to use and/or access Catrobat’s Software Applications and Services). Being associated here means that the Responsible either has been in the past or currently still is: working for, owning, heading, leading, managing, directing, an officer of, an official for, appointed to, employed by, an agent for, a contractor for, affiliated to, a professionally advisor for, doing volunteer work for, investing into, otherwise significantly supporting (e.g., as a member of an advisory board, or as a financial contributor to a political campaign by any amount per year worth more than the current value of the fine for the violation of this restriction as set forth below; however, merely paying taxes or voting for a political party are not to be considered as sufficiently significant), and/or (as an individual) consisting of the Entity. The involvement and/or responsibility of the Entity here includes but is not limited to, e.g., the ordering, selling, conveying, provisioning, maintaining, management, creation, and/or the intentional use of such surveillance technology, as well as any intentional weakening of security, intentional installation of backdoors, rootkits, keyloggers, or any other type of privacy violating soft- and/or hardware, that are being used for Acts, independently of whether this use is done by the Entity or a third, unrelated party, and independently of whether the Entity is forced to do so under penalty of law, voluntarily, or for whatever other reason. It is also irrelevant whether the Responsible must, for whatever reason, be associated with the Entity: if you are (or, in case you are under 13 years of age, any one of your parents or your legal guardians is) associated with an Entity involved in and/or responsible for Acts, then you and your children below 13 years of age are not allowed to use and/or to access Catrobat’s Software Applications and Services. Violations of this restriction to use and/or access Catrobat’s Software Applications and Services can be prosecuted by law and fined with the amount of 35,000.- € (amount valid in 2019; this amount is to be adjusted by the cumulated official yearly average inflation rate of the European Union), the fine having to be paid privately by each individual Responsible who is violating this restriction. The litigated amount resulting after all official administrative legal fees have been paid to the court, whatever this amount is, must be equally split between
  2. -
      -
    1. the law company that won the litigation,
    2. -
    3. the Free Software Foundation or, alternatively, one of its sister organizations, and
    4. -
    5. another broadly recognized non-governmental non-profit organization actively developing free software or actively being involved in the fostering of the preservation of privacy and/or freedom (e.g., the Electronic Frontier Foundation, the Wikimedia Foundation, Amnesty International, the Apache Foundation), the recipients of point (4.a.ii.) and (4.a.iii.) being chosen by the individual or organization that initiated the law suit.
    6. -
    -
  3. Nevertheless, there are four special circumstances under which Responsibles and their children under 13 years of age are allowed to use and access Catrobat’s Software Applications and Services, even when conditions described in Section 4.a would otherwise prohibit them from the usage of and access to Catrobat’s Software Applications and Services:
  4. -
      -
    1. if the Responsible has publicly, i.e., in a way that has made it widely known to anyone interested in such topics, e.g., in mass media that are broadly received all over the world, believably denounced and condemned all Acts of all Entities with which the Responsible has been associated, and the Responsible has from that moment on not been associated anymore with these Entities and/or other Entities involved in and/or responsible for Acts (“whistleblower exception”), or
    2. -
    3. if all Entities with which the Responsible has been associated and that are and/or have been involved in and/or responsible for Acts, have confessed all and every of these Acts publicly, i.e., in a way that has made it widely known to anyone interested in such topics, e.g., in mass media that are broadly received all over the world, and these Entities have permanently stopped doing all and any Acts, and have destroyed all the mass surveillance data they have collected, in a permanent and complete way (“policy correction exception”), or
    4. -
    5. if the Responsible was forced to be associated with the Entity because of slavery, under duress, or through coercion (“duress exception”); note, however, that being forced or obliged to be associated with an Entity involved in and/or responsible for Acts because of legal reasons (e.g., by having to follow the law) is explicitly not to be considered as sufficient to be included in this exception, or
    6. -
    7. if the Responsible, in the following called the “Innocent”, is and/or has been associated with an Entity, in the following called the “Victim Entity”; and if one or several different Responsibles, in the following called “Rogue Associates” who are and/or were associated with the Victim Entity, are associated with a second Entity, in the following called the “Unethical Entity” ; and if anyone of the Rogue Associates is forbidden to use and/or access Catrobat's Software Applications and Services under consideration of Sections 4.a and 4.b through his or her association with the Unethical Entity; and if the Innocent would be forbidden to use and/or access Catrobat's Software Applications and Services under consideration of Sections 4.a and 4.b only because of the Rogue Associates; and if none of the Responsibles associated with the Victim Entity besides the Rogue Associates would be forbidden to use and/or access Catrobat's Software Applications and Services under consideration of Sections 4.a and 4.b except because of the Rogue Associates; and if all and every other Responsibles of the Victim Entity (besides the Rogue Associates) who are not and/or have not been associated with the Unethical Entity and/or any third Entity whose associates are forbidden to use and/or access Catrobat's Software Applications and Services, are not aware of the association of the Rogue Associates with the Unethical Entity (“victim entity exception”).
    8. -
    -
  5. You are granted permission to access and use the Software Applications and Services, provided Section 4.a does not apply to you or Section 4.b does apply to you, and Sections 4.d and 4.e apply to you, and you agree not to use the Software Applications and Services for any of the following institutional or commercial uses unless you obtain Catrobat's prior written approval:
  6. -
      -
    1. the sale of the Software Applications and/or access to the Services;
    2. -
    3. the sale of advertising, sponsorships, or promotions placed on or within the Software Applications and/or Services and/or Content;
    4. -
    5. the usage of the Software Applications and/or access to the Services in any offerings or services provided by a commercial, governmental, or any other type of legal entity, including schools, universities, commercial enterprises, national and/or international and/or religious organizations, but excluding private individuals, non-profit legal entities focussing primarily on coding and offering their services free of charge and without advertisements and not for marketing purposes, e.g., coding clubs and/or coding-oriented associations, as well as legal entities using the Software Applications and access to the Services purely for research purposes.
    6. -
    -
  7. You are granted permission to access and use the Software Applications and Services, provided Section 4.a does not apply to you or Section 4.b does apply to you, and Sections 4.c and 4.e apply to you, and you agree not to use or launch any automated system, including without limitation, "robots," "spiders," or "offline readers," that accesses the Services in a manner that sends more request messages to the Catrobat servers in a given period of time than a human can reasonably produce in the same period by using a conventional on-line web browser. Notwithstanding the foregoing, Catrobat grants the operators of public search engines permission to use spiders to copy materials from the site for the sole purpose of and solely to the extent necessary for creating publicly available searchable indices of the materials, but not caches or archives of such materials. Catrobat reserves the right to revoke these exceptions either generally or in specific cases. You agree not to collect or harvest any personally identifiable information, including account names, from the Software Applications and Services, nor to use the communication systems provided by the Software Applications and Services (e.g., comments, forum) for any commercial solicitation purposes. You agree not to solicit, for commercial purposes, any users of the Software Applications and Services with respect to their Content.
  8. -
  9. You are granted permission to access and use the Software Applications and Services, provided Section 4.a does not apply to you or Section 4.b does apply to you, and Sections 4.c and 4.d apply to you, and that in your use and access of the Software Applications and Services, you will comply with all applicable laws as specified in Section 14.
  10. -
  11. Catrobat reserves the right to discontinue any aspect of the Software Applications and Services at any time.
  12. -
-

5. Your Use of Content

-

In addition to the general restrictions above, the following restrictions and conditions apply specifically to your use of Content.

-
    -
  1. Content is provided to you AS IS. You may access Content as intended through the provided functionality of the Software Applications and Services and as permitted under these Terms of Use and Service.
  2. -
  3. You agree not to circumvent, disable or otherwise interfere with security-related features of the Software Applications and Services.
  4. -
  5. You understand that when using the Software Applications and Services, you will be exposed to Content from a variety of sources, and that Catrobat is not responsible for the accuracy, usefulness, safety, or intellectual property rights of or relating to such Content. You further understand and acknowledge that you may be exposed to Content that is inaccurate, offensive, indecent, or objectionable, and you agree to waive, and hereby do waive, any legal or equitable rights or remedies you have or may have against Catrobat with respect thereto, and, to the extent permitted by applicable law, agree to indemnify and hold harmless Catrobat, its owners, operators, affiliates, licensors, and licensees to the fullest extent allowed by law regarding all matters related to your use of the Software Applications and access to the Services.
  6. -
-

6. Your Content and Conduct

-
    -
  1. As a Catrobat account holder you may submit Content to the Services, including but not limited to software and user comments. You understand that Catrobat does not guarantee any confidentiality with respect to any Content you submit.
  2. -
  3. You shall be solely responsible for your own Content and the consequences of submitting and publishing your Content on the Services. You affirm, represent, and warrant that you own or have the necessary licenses, rights, consents, and permissions to publish Content you submit; and you license to Catrobat all patent, trademark, trade secret, copyright or other proprietary rights in and to such Content for publication on the Services pursuant to these Terms of Use and Service.
  4. -
  5. For clarity, you retain all of your ownership rights in your Content. However, by submitting Content to Catrobat Services, you hereby put this Content under the licenses detailed on https://catrob.at/licensesofuploads, thereby granting Catrobat and each user of the Software Applications and Services a worldwide, non-exclusive, royalty-free, sublicenseable, and transferable license to use, reproduce, distribute, prepare derivative works of, display, and perform the Content in connection with the Service and Catrobat's (and its successors' and affiliates') activities, including without limitation for promoting and redistributing part or all of the Content (and derivative works thereof) in any media formats and through any media channels. The above licenses granted by you are perpetual and irrevocable.
  6. -
  7. You further agree that Content you submit to the Service will not contain third party copyrighted material, or material that is subject to other third party proprietary rights, unless you have permission from the rightful owner of the material or you are otherwise legally entitled to post the material and to grant Catrobat all of the license rights granted herein.
  8. -
  9. You further agree that you will not submit to the Service any Content or other material that is contrary to the Catrobat Community Guidelines, currently found at https://catrob.at/tou, which may be updated from time to time, or contrary to applicable local, national, and international laws and regulations.
  10. -
  11. Catrobat does not endorse any Content submitted to the Service by any user or other licensor, or any opinion, recommendation, or advice expressed therein, and Catrobat expressly disclaims any and all liability in connection with Content. Catrobat does not permit copyright infringing activities and infringement of intellectual property rights on the Service, and Catrobat will remove all Content if properly notified that such Content infringes on another's intellectual property rights. Catrobat reserves the right to remove Content without prior notice.
  12. -
-

7. Account Termination Policy

-
    -
  1. Catrobat will terminate a user's access to the Services if, under appropriate circumstances, the user is determined to be a repeat infringer.
  2. -
  3. Catrobat reserves the right to decide whether Content violates these Terms of Use and Service for reasons other than copyright infringement, such as, but not limited to, pornography, obscenity, or excessive size. Catrobat may at any time, without prior notice and in its sole discretion, remove such Content and/or terminate a user's account for submitting such material in violation of these Terms of Use and Service.
  4. -
-

8. Copyright Policy

-
    -
  1. - If you are a copyright owner or an agent thereof and believe that any Content infringes upon your copyrights, you may submit a notification pursuant to the Directive 2001/29/EC and other applicable intellectual property laws by contacting us via email with the following information in writing: -
      -
    1. A physical or electronic signature of a person authorized to act on behalf of the owner of an exclusive right that is allegedly infringed;
    2. -
    3. Identification of the copyrighted work claimed to have been infringed, or, if multiple copyrighted works at a single online site are covered by a single notification, a representative list of such works at that site;
    4. -
    5. Identification of the material that is claimed to be infringing or to be the subject of infringing activity and that is to be removed or access to which is to be disabled and information reasonably sufficient to permit the service provider to locate the material;
    6. -
    7. Information reasonably sufficient to permit the service provider to contact you, such as an address, telephone number, and, if available, an electronic mail address;
    8. -
    9. A statement that you have a good faith belief that use of the material in the manner complained of is not authorized by the copyright owner, its agent, or the law; and
    10. -
    11. A statement that the information in the notification is accurate, and under penalty of perjury, that you are authorized to act on behalf of the owner of an exclusive right that is allegedly infringed.
    12. -
    - You acknowledge that if you fail to comply with all of the requirements of this Section, your notice may not be valid. -
  2. -
  3. - Counter-Notice. If you believe that your Content that was removed (or to which access was disabled) is not infringing, or that you have the authorization from the copyright owner, the copyright owner's agent, or pursuant to the law, to post and use the material in your Content, you may send a counter-notice containing the following information to us via email: -
      -
    1. Your physical or electronic signature;
    2. -
    3. Identification of the Content that has been removed or to which access has been disabled and the location at which the Content appeared before it was removed or disabled;
    4. -
    5. A statement that you have a good faith belief that the Content was removed or disabled as a result of mistake or a misidentification of the Content; and
    6. -
    7. Your name, address, telephone number, and e-mail address, a statement that you consent to the jurisdiction of the federal court in Graz, Austria, and a statement that you will accept service of process from the person who provided notification of the alleged infringement.
    8. -
    - If a counter-notice is received by us, Catrobat may send a copy of the counter-notice to the original complaining party informing that person that it may replace the removed Content or cease disabling it in 10 business days. Unless the copyright owner files an action seeking a court order against the Content provider, member or user, the removed Content may be replaced, or access to it restored, in 10 to 14 business days or more after receipt of the counter-notice, at Catrobat's sole discretion. -
  4. -
-

9. Warranty Disclaimer

-

YOU AGREE THAT YOUR USE OF AND/OR ACCESS TO THE SOFTWARE APPLICATIONS AND SERVICES SHALL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, CATROBAT, ITS TEAM MEMBERS, PROJECT CONTRIBUTORS, OFFICERS, DIRECTORS, EMPLOYEES, AND AGENTS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SOFTWARE APPLICATIONS AND SERVICES AND YOUR USE THEREOF AND/OR ACCESS TO IT. CATROBAT MAKES NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF ITS SITES' CONTENT OR THE CONTENT OF ANY SITES LINKED TO THESE SITES AND ASSUMES NO LIABILITY OR RESPONSIBILITY FOR ANY (I) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT, (II) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES, (III) ANY UNAUTHORIZED ACCESS TO OR USE OF CATROBAT'S SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION STORED THEREIN, (IV) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM CATROBAT'S SERVICES, (IV) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES BY ANY THIRD PARTY, AND/OR (V) ANY ERRORS OR OMISSIONS IN ANY CONTENT OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, EMAILED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SOFTWARE APPLICATIONS AND SERVICES. CATROBAT DOES NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY SERVICE OR CONTENT OFFERED BY A THIRD PARTY THROUGH CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES OR ANY HYPERLINKED SERVICES OR FEATURED IN ANY WAY, AND CATROBAT WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND THIRD-PARTY PROVIDERS OF CONTENT OR SERVICES. AS WITH THE USE OR PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

-

10. Limitation of Liability

-

IN NO EVENT SHALL CATROBAT, ITS TEAM MEMBERS, PROJECT CONTRIBUTORS, OFFICERS, DIRECTORS, EMPLOYEES, OR AGENTS, BE LIABLE TO YOU FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES WHATSOEVER RESULTING FROM ANY (I) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT, (II) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES, (III) ANY UNAUTHORIZED ACCESS TO OR USE OF CATROBAT'S SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION STORED THEREIN, (IV) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES, (IV) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE, WHICH MAY BE TRANSMITTED TO OR THROUGH CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES BY ANY THIRD PARTY, AND/OR (V) ANY ERRORS OR OMISSIONS IN ANY CONTENT OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF YOUR USE OF ANY CONTENT POSTED, EMAILED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES, WHETHER BASED ON WARRANTY, CONTRACT, TORT, OR ANY OTHER LEGAL THEORY, AND WHETHER OR NOT CATROBAT IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE FOREGOING LIMITATION OF LIABILITY SHALL APPLY TO THE FULLEST EXTENT PERMITTED BY LAW IN THE APPLICABLE JURISDICTION. YOU SPECIFICALLY ACKNOWLEDGE THAT CATROBAT SHALL NOT BE LIABLE FOR CONTENT OR THE DEFAMATORY, OFFENSIVE, OR ILLEGAL CONDUCT OF ANY THIRD PARTY AND THAT THE RISK OF HARM OR DAMAGE FROM THE FOREGOING RESTS ENTIRELY WITH YOU.

-

The Services are controlled and offered by Catrobat from its facilities in Austria. Catrobat makes no representations that the Services are appropriate or available for use in other locations. Those who access or use the Services from other jurisdictions do so at their own volition and are responsible for compliance with local law.

-

11. Interpretation of Sections 9 and 10

-

If the disclaimer of warranty and limitation of liability provided in Sections 9 and 10 above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with Catrobat's Software Applications and Services, unless a warranty or assumption of liability accompanies the Software Applications and Services in return for a fee.

-

12. Indemnity

-

To the extent permitted by applicable law, you agree to defend, indemnify, and hold harmless Catrobat, its parent institution, team members, project contributors, officers, directors, employees, and agents, from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, and expenses (including but not limited to attorney's fees) arising from: (i) your use of the Software Applications and access to the Services; (ii) your violation of any term of these Terms of Use and Service; (iii) your violation of any third party right, including without limitation any copyright, property, or privacy right; or (iv) any claim that your Content caused damage to a third party. This defense and indemnification obligation will survive these Terms of Use and Service and your use of the Software Applications and access to the Services.

-

13. Ability to Accept Terms of Use and Service

-

You affirm that you are either more than 18 years of age, or an emancipated minor, or possess legal parental or guardian consent, and are fully able and competent to enter into the terms, conditions, obligations, affirmations, representations, and warranties set forth in these Terms of Use and Service, and to abide by and comply with these Terms of Use and Service. If you are under 13 years of age, then you have to ask your parents or legal guardians whether they allow you to use Catrobat’s Software Applications and Services, and you cannot use Catrobat’s Software Applications and Services unless you have their approval. If, for whatever reason, including local, international, or any other laws, some parts of these Terms of Use and Service cannot be fully applied in your case, then you and your children below 13 years of age are not allowed to use and/or to access Catrobat’s Software Applications and Services as long as these Terms of Use and Service cannot be fully applied in your case. Violations of this restriction to use and/or access Catrobat’s Software Applications and Services are illegal and can be prosecuted unter the same terms as those set forth in Section 4.a above.

-

14. General

-

You agree that: (i) the Services shall be deemed solely based in Austria; and (ii) the Services shall be deemed passive websites that does not give rise to personal jurisdiction over Catrobat, either specific or general, in jurisdictions other than Austria. These Terms of Use and Service shall be governed by the internal substantive laws of Austria, without respect to its conflict of laws principles. Any claim or dispute between you and Catrobat that arises in whole or in part from the Software Applications and Services shall be decided exclusively by a court of competent jurisdiction located in Graz, Austria. These Terms of Use and Service, together with the Privacy Notice at https://catrob.at/privacypolicy and any other legal notices published by Catrobat through and/or on the Software Applications and Services, shall constitute the entire agreement between you and Catrobat concerning the Software Applications and Services. If any provision of these Terms of Use and Service is deemed invalid by a court of competent jurisdiction, the invalidity of such provision shall not affect the validity of the remaining provisions of these Terms of Use and Service, which shall remain in full force and effect. No waiver of any term of this these Terms of Use and Service shall be deemed a further or continuing waiver of such term or any other term, and Catrobat's failure to assert any right or provision under these Terms of Use and Service shall not constitute a waiver of such right or provision. Catrobat reserves the right to amend these Terms of Use and Service at any time and without notice, and it is your responsibility to review these Terms of Use and Service for any changes. Your use of the Software Applications and access to the Services following any amendment of these Terms of Use and Service will signify your assent to and acceptance of its revised terms.

-

YOU AND CATROBAT AGREE THAT ANY CAUSE OF ACTION ARISING OUT OF OR RELATED TO CATROBAT'S SOFTWARE APPLICATIONS AND SERVICES, WITH THE EXCEPTION OF ANY ACTION ARISING OUT OF OR RELATED TO THE PERMISSIONS AND RESTRICTIONS SET FORTH IN SECTION 4 OF THESE TERMS OF USE AND SERVICE, MUST COMMENCE WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES. OTHERWISE, SUCH CAUSE OF ACTION IS PERMANENTLY BARRED.

- -
-
- - - - diff --git a/twitter.png b/twitter.png deleted file mode 100644 index e66b6cf..0000000 Binary files a/twitter.png and /dev/null differ diff --git a/youtube.png b/youtube.png deleted file mode 100644 index c56635b..0000000 Binary files a/youtube.png and /dev/null differ