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

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:


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:


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":


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:

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:


Web: Redesign and refactoring of the share platform

Redesign the user-profile and user-project pages:

Redesign the search engine:

Improving the media library:


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

The current OAuth provider is outdated and should be refactored:


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:

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.


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:


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:


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!