750 registered in the Codeheat contest 2019/20 and learnt how to participate in the FOSSASIA developer community.
2000+ merged pull requests
More than 2000 pull requests were merged during last year's contest. Participants also submitted scrum reports, wrote blog posts and created entirely new projects in the FOSSASIA community.
Mentors are developers, engineers, university students, professors, and generally contributors who love to share and be a part of our open source community. They help creating better software for a better and just world.
Proudly organized by
FOSSASIA and OpnTec run the Codeheat coding contest from October 1, 2020 to June 1, 2021. Codeheat is separated into two month periods. After each period we announce winners of the period. Participants contributing at least five pull requests can get a digital certificate and with more than ten pull requests developers can win awesome prizes. Eligible issues for the contest have the label "Codeheat" on GitHub. Please join the FOSSASIA GitHub organization and get started.
Open Event Web
The Open Event components run on the eventyay.com platform and help communities and organizations to sell tickets and organize their events and meetups.
Open Event iOS Apps
The goal for the iOS apps for the Open Event project is to get them ready to work together with the Open Event hosted platform on eventyay.com and enable attendees to get tickets easily.
Open Event Android Apps
The Open Event Android apps for attendees and organizers work together with the eventyay.com website and make it easy to run events by letting them checkin easily.
Pocket Science Lab (PSLab)
PSLab is a small USB powered hardware extension for your Android phone or PC that lets you measure all kinds of things. PSLab comes with a built-in Oscilloscope, Multimeter, Wave Generator, Logic Analyzer, Power Source, and we are constantly adding more digital instruments.
The goal of Pocket Science Lab is to miniaturize science equipment and make it accessible for everyone using Open Source hardware. Using the computer power of an Android phone and connecting it to a Pocket Science Lab we can do lots of experiments and even control robots with up to four servos.
With Pocket Science Lab connected to a phone we can do our own science experiments. It works without the need for programming. What experiments you do is just limited to your imagination! But, currently we don't have an iOS app yet. The goal is to match the feature set of the Android app. As Apple restricts external devices we can access the PSLab hardware only through Bluetooth or WiFi.
Pocket Science Lab and a desktop computer is all you need to collect data around you and do lots of exciting experiments. Or, you can use it to control your own robot. Please join development of the desktop app using Electron, ReactJS and Python.
Badge Magic Android
The Badge Magic Android app lets you control LED name badges using a Bluetooth connection. The app provides options to portray names and cliparts. For the data transfer from the smartphone to the LED badge it uses Bluetooth. An upcoming feature is the conversion of images to cliparts that can be shown on the badge.
Badge Magic iOS
The development on the Badge Magic iOS app is starting. Our goal is to match the functionalities and features of the Android app. We want to control LED name badges using a Bluetooth Low Energy connection and to be able to transfer text and clipart from the iOS app to the badge magic device. Additionally user should be able to draw cliparts or convert their images to cliparts that can be shown on the device.
We are developing an open hardware platform for neuro-devices that can do measurements of brain waves or provide brain data to control other devices or play games. The neurolab hardware can be be plugged into a computer or smartphone. We are focusing on creating a device that collects as much data as possible through the forehead. The device could also be used for medical purposes or for meditation.
The Neurolab Android app enables users to use an open hardware neuro-device with a smartphone and do measurements of brain waves or play games controlled by the activity of their brains. Feedback channels to develop the app further can be visual or through sound.
Voicerepublic is Home to the Spoken Word. It is a platform to record and host audio talks of conferences and podcasts. It was released as an Open Source platform in 2020. The next goals are to update the web service, to enable it to run on latest Linux systems, and to implement new features and auto-deployments with continuous integration.
SUSI.AI Web Client
The SUSI.AI web client is build using ReactJS and HTML web technologies. It connects with the SUSI.AI server backend using JSON.
The SUSI.AI server is build using Java. It provides a JSON file for the SUSI.AI clients via a JSON. The SUSI Server component provides the intelligence of the SUSI.AI platform.
The SUSI.AI Linux OS is a Debian based operating system that includes the SUSI.AI installer, SUSI Python and other components to enable SUSI.AI to run on smart devices using Raspberry PIs.
The SUSI.AI Android app lets users chat with SUSI.AI via text chat or voice. It is also possible to use it to configure the SUSI.AI smart speaker using the WiFi hotspot.
Apart from progressing on the issues on the different SUSI.AI repositories, we want to focus on the development of the chat app and Skills editor. Another goal is to plugin SUSI to all kinds of web applications.
Phimp.me is an image application for Android that does not miss out on features. Help to make the app more stable and support more social accounts in the app.
At every event the same question comes up "how to print out badges". There are a number of proprietary websites out there, by why not create our own automatic badge generator for events?
Open Event Website App Generator
The web generator application can generate event websites by getting data from event JSON files and binary media files, that are stored in a compressed zip file.
Codeheat is a coding contest for
FOSSASIA projects on GitHub.
The contest runs until June 1, 2021. The contest is separated into two months period after which winners of each period are announced.
Our jury will choose the winners from the top 10 contributors according to code quality and relevance of commits for the project each period. The jury also takes other contributions like submitted scrum reports and technical blog posts into account, but of course awesome code is the most important item on the list.
Other participants will have the chance to win Tshirts and Swag and will get certificates of participation. These will be provided after the end of the contest on June 1, 2021. Sign up here now
Grand Prize Winners
Mario BehlingCEO at OpnTec GmbH
Hong Phuc DangFOSSASIA Founder
Madhushanka PadmalDeveloper at PSLab
Michael ChristenFounder SUSI.AI
Areeb JamalDeveloper at FOSSASIA
Quan NguyenDeveloper at FOSSASIA
The contest begins at 9:00 AM (SGT/GMT+8) on October 1, 2020 and runs until 00:00 AM (SGT/GMT+8) on June 1, 2020. Participants should take the time to read through the contest FAQ and familiarize themselves with the introductory information and Readme.md of each project before starting to work on an issue labeled "Codeheat".Sign up
October 1, 2020 Coding Starts for Codeheat Period I
October 1, 9:00 AM (SGT/GMT+8) Coding starts for period I taking place over two months.
October 8, 2020 Event: Codeheat Ask Me Anything
Sign up for the Codeheat Ask My Anything online event with developers and maintainers from FOSSASIA on eventyay.
November 5, 2020 Event: Codeheat Ask Me Anything
Sign up for the Codeheat Ask My Anything online event with developers and maintainers from FOSSASIA on eventyay.
November 30, 2020 Codeheat period I ends. Participants submit Gist with a links to their work through a link on the program spreadsheet to participate in the winners evaluations.
Participants provide a Gist with info on their work outcome on the program spreadsheet until November 30, 2020, 23:00 (SGT/GMT+8).
December 1, 2020 Codeheat Period II Starts
Codeheat period II takes place over the period of two months until January 31, 2021, 23:00 (SGT/GMT+8).
December 8, 2020 Winners of Codeheat Period I
Winners of Codeheat Period I will be announced.
December 9, 2020 Event: Codeheat Ask Me Anything
Sign up for the Codeheat Ask My Anything online event with developers and maintainers from FOSSASIA on eventyay.
January 7, 2021 Event: Codeheat Ask Me Anything
January 31, 2021 Codeheat period II ends. Participants submit Gist with a links to their work through a link on the program spreadsheet to participate in the winners evaluations.
Participants provide a Gist with info on their work outcome on the program spreadsheet until January 31, 2021, 23:00 (SGT/GMT+8).
February 1, 2021 Codeheat Period III Starts
Codeheat period III takes place over the period of two months until March 31, 2021, 23:00 (SGT/GMT+8).
February 8, 2021 Winners of Codeheat Period II
Winners of Codeheat Period II will be announced.
February 11, 2021 Event: Codeheat Ask Me Anything
March 4, 2021 Event: Codeheat Ask Me Anything
March 31, 2021 Codeheat period III ends. Participants submit Gist with a links to their work through a link on the program spreadsheet to participate in the winners evaluations.
Participants provide a Gist with info on their work outcome on the program spreadsheet until March 31, 2021, 23:00 (SGT/GMT+8).
April 1, 2021 Codeheat Period IV Starts
Codeheat period IV takes place over the period of two months until May 31, 2021, 23:00 (SGT/GMT+8).
April 8, 2021 Winners of Codeheat Period III
Winners of Codeheat Period III will be announced.
April 8, 2021 Event: Codeheat Ask Me Anything
May 6, 2021 Event: Codeheat Ask Me Anything
May 31, 2021 Codeheat period IV ends. Participants submit Gist with a links to their work through a link on the program spreadsheet to participate in the winners evaluations.
Participants provide a Gist with info on their work outcome on the program spreadsheet until May 31, 2021, 23:00 (SGT/GMT+8).
June 8, 2021 Winners of Codeheat Period IV
Winners of Codeheat Period IV will be announced.
June 12, 2021 Codeheat Closing Event
At a special Codeheat Online Event developers, maintainers, contributors together with jury members and mentors celebrate the end of the contest and share insights and learnings.
Frequently Asked Questions
Who can participate
We are looking for great coders no matter the status, age, gender or background.
What are the prizes?
Everyone who gets five pull requests merged during the entire contest (October 2020 - June 2021) will receive a digital certificate of participation from the FOSSASIA organization. Developers with 10 merged PRs or more in the contest will receive a Tshirt or other cool items from FOSSASIA (if postal distribution is feasible).
Out of the top ten contributors in each contest period three grand prize winners will be chosen by the jury. The grand prize winners will receive a 100 SGD cash prize as a token of appreciation. Plus, they will have the chance to present their work at the Codeheat online event. An additional three finalists will receive a 50 SGD appreciation token.
How are the Winners chosen?
When deciding on the Winners, the jury will review the work of the 10 developers with the highest number of contributions gained during the specific contest period. Apart from the code commits other contributions like blog posts can also be taken into account of the jury.
Basically we are looking for good developers who are team players. That is why the sheer number of resolved issues alone is not the only criteria for choosing the grand prize winners. In the end from the 10 highest scoring developers, the jury will name 3 finalists as grand prize winners that will receive the cash prize token of appreciation. Because some issues are more challenging than others just by the nature of the type of issues (for example, heavy coding versus solving a text typo bug), it is entirely possible that someone who completed 11 issues could be chosen as a Grand Prize Winner over someone who completed 15 issues, if they are both among the top 10 contributors.
How to contribute code in the contest?
* At first developers sign up on a Google form
here to participate.
* Then join the FOSSASIA org on GitHub through this linke here.
* Each developer then searches for issues labeled Codeheat that interests them and claims ownership of a particular issue. The developer works on the issue and if there are questions asks on the chat channel of the project. The main channel for decision making is however always the GitHub issue itself.
* Once finished, the developers make a pull request from his/her own forked repository to the development branch of the project and submit their work for review.
* Pull requests need to pass Travis builds, code CI tests and ensure migrations work.
* Mentors and maintainers from the organization evaluate the work submitted. If the work is accepted, the developer earns 1 point for each accepted pull request and 1 point if they close an issue. So you could earn two points if you close an issue with a pull requests. [Please Note: Sometimes developers try to “beat the system” by submitting lots of small improvements as pull requests. Please consider that the jury is mainly interested in the substantiality and quality of code contributions and the sheer number is not the main criteria.]
* After the pull request has been merged developers can claim another issue to work on if they wish.
* If the work needs polishing, the task remains open and the core-developer may give the submitter additional time and guidance on improving their work.
* If the work does not meet expectations, the task can be reopened for another developer contestant to claim and work on.
Please follow FOSSASIA Best Practices to achieve the desired outcome.
What other contributions are part of the contest?
Other contributions in the contest are blog posts, weekly scrum updates to the project mailing list and sharing some info on social media. The following contributions from participants in the contest would be great:
* A weekly (or daily) scrum to the mailing list by Sunday 10AM your local time using the scrum helper
* A regular project update on your Twitter and Facebook and address it @fossasia @mariobehling @hpdang
* Create a Gist with a list of the work outcome at the end of the contest period you are participating in
When does the contest begin? Can I join the contest at any time?
The contest begins at 9:00 AM (SGT/GMT+8) on October 1, 2020 and runs until 11:00 PM (SGT/GMT+8) on June 1, 2020. Participants should take the time to read through the contest website and familiarize themselves with the introductory information and Readme.md of the project before starting to work on an issue. Interested developers can join the contest at any time during the program.
How do developers register for the contest?
1. Developers should join the community and sign up for the following channels
* Signup for the FOSSASIA Newsletter
* Star and fork repositories you are interested in on GitHub
* Join the FOSSASIA Chat on Gitter
* Follow FOSSASIA on Twitter and the Codeheat Twitter account
* Like FOSSASIA on Facebook
* Join the FOSSASIA Group on Linkedin
* Follow the FOSSASIA Linkedin Page
* Subscribe to the FOSSASIA YouTube Channel
2. Once the contest is open developers will be able to sign up on a Google form here.
3. Developers will receive an invite to the FOSSASIA GitHub within a week (usually earlier). All developers should then make their participation public by showing their membership as “public” in their GitHub profile.
Why should developers participate in the contest?
The idea of the contest is to introduce developers to the FOSSASIA projects and to provide an opportunity to build
up their development profile, learn how to work according to
Best Development Practices and ultimately become part of the development team. The contest also provides an entry
point and preparation for future coding programs like the FOSSASIA Google Summer of Code.
Many young developers are not yet deeply familiar with Open Source and the contest is an easy way to get involved in this international community of developers, who want to help you learn and succeed. The contest is a gateway to learning new skills as well as learning to work in a collaborative software development team. At the end of the contest, developers can show their friends, teachers, co-developers and family members the work they did on public repositories and the project applications itself - used by people around the world.
What programming languages do participants need to know?
There are various programming languages used in FOSSASIA projects ranging from web front-end to back-end technologies
and Linux technologies. You could even code on hardware firmwares and design hardware as a project. Here are a few
What do I need to do to be among the winners?
For us everyone is a winner, who contributes in whatever way in the community. However in contest setting there are
some points you should fulfil to increase your chances to be a finalist. To be among them it is important to work
according to the
FOSSASIA Best Practices and to provide the following:
* Continuous substantial contributions, pull requests, and code reviews
* Participate in chats on the project channels
* Provide continuous updates in weekly scrums
* Provide a Gist with a list of the work outcome of your work at the end of the contest period you are participating in
What is a scrum and where should I submit it?
A scrum is a simple update (also called standup) to inform others about what a developer is working on and if there are any impediments a developer encounters. In many company software projects developers provide a daily scrum in a live standup face to face. As Codeheat is not a full-time program and happening online, weekly scrum updates on the mailing list are a good start. If you are able to send out more scrums during the week that is definitely a bonus. Please use the FOSSASIA scrum helper to create your scrum report.
There are three questions that should be answered in a daily scrum mail:
1. What have you worked on last week/yesterday?
2. What are you planning to work on this week/today?
3. Are there any impediments that prevent you from achieving your goal?
Each answer should include a short sum up of the item and a link to the respective issue/pull request. Each pull request should have an issue that it is related to. Weekly scrum mails should be send out every Sunday morning before 10AM local time.
How can I start working on the project and claim issues that I would like to work on?
We can outline this in three easy steps:
1. Comment on which issue you are working on so another person doesn't work on the same issue.
2. Work on one issue at a time. If you can't solve an issue and want to move on next, comment on the previous issue that it is open for others to take.
3. Send a PR on issues that are marked with the codeheat label. There is no need for approval to work on an issue if you are the only one who commented on the issue to take it up or it has been several days with no activity since the last person's comment.
Note: If in the process of solving an issue you realize that you are more interested in another issue or find it is not suitable for you, please comment on the issue and mention that it is free to be taken up by others.
When should I claim an issue?
You should claim an issue when you are ready to work on it. Please be careful that you do not just claim an issue that you do not plan to work on immediately after you claimed it. Sometimes we see developers claim an issue and then only start to work on it after several days. This slows down the progress of a project a lot and potentially blocks other developers from making a contribution.
How many issues can I take up at a time?
Please only take up one issue at a time and solve it as quickly as possible after you claimed it. If there is no apparent activity on an issue others are free to take it up or maintainers will solve or assign it to someone else.
What about priority and urgent issues? Can I claim them?
Please be extra cautious about high priority or urgent priority issues. These are issues that need to be solved super quickly as they are very important for the progress of the project. For high priority issues, we want to reduce contention over these issues so they are solved ASAP. Hence, if no codeheat participant has taken them up, we solve them ourselves. It should be very clear to you that taking up a high/urgent priority issue is a big responsibility in the project and you should solve it very quickly. Before you claim an issue be sure that you have the knowledge of solving it. If there is no apparent activity on an issue other participants are free to claim them as well.
Can I open an issue and ask maintainers to label it “codeheat”?
We always welcome contributors who test applications and find bugs. This is an integral part of software development. However, usually in Codeheat we focus on solving issues that are already open for some time or issues opened by maintainers. This also helps to stay focused on the current project goals and avoids that developers focus on issues with low priority. Nevertheless, if maintainers consider an issue important they might mark it with the label “codeheat” still.
Are there any good beginner level issues? How can I see which issues are easy or difficult?
Usually we do not add starter level labels to issues for a number of reasons. Firstly, what is easy or what is difficult often depends on a personal perspective. For example some have experience on frontend technologies, while others know backend technologies. Secondly, our experience with labeling issues according to their level has been mixed and taking care of labeling issues according to their level often adds more overhead for maintainers who are already busy with bringing the project forward. The “bandwidth” of developers taking care of things is limited. Furthermore, if a project has started to label things “beginner level” and there are no “beginner” level issues anymore, new contributors often ask for more issues labeled beginners again keeping devs busy creating beginner issues. Thirdly, this contradicts the goals of fast and focused project development and possibly diverts the attention of maintainers from the project development workflow. While Open Source is all about sharing, collaboration and learning, maintainers of projects actually do have the goal to develop their project further and provide a great application - this is indeed their main focus and they love people who join up with them in creating something amazing. Finally, developers of a project do not usually consider themselves as teachers even if they are happy to share their knowledge. Open Source development is a hands-on approach to learn new things just like in real life. However, for new developers who are looking for solving easy issues only or trying to learn about the basics of technologies in a traditional teacher-student style we recommend to get started first with online courses or join a university or school program to learn about coding.
So, how is the cash prize token of appreciation paid out?
Just to avoid expectations - if you read through the program description carefully you will realize that the cash prizes are modest and they are mainly intended as a token of appreciation. Instead of cash prizes we would prefer to support new contributors to come to one of our events and meet up with maintainers. As this is currently not possible we hope contributors see our appreciation of their contributions by accepting a cash prize. The cash prize tokens of appreciation will be paid out through Paypal or another low cost transfer method.