Python Code Jam

Hacktoberfest Online Meetup

Tuesday October 20, 2020
12.00am to Nov 20, 12.00am IST
Event is hosted online

Event Description

Event theme

Theme is to be announced after the qualifiers are done.

Event technology

Codejam will be coded in Python, implementations: PyPy, CPython, versions: 3.6, 3.7, 3.8 (pick any of those)
using Hata library as the selected technology github.com/HuyaneMatsu/hata

Hata is an async Discord API wrapper written in Python named after Hata no Kokoro.

Prize pool:

  • 23+ Discord Nitro (full one not the classic one).
  • Virtual Koishi currency that can be used with Koishi bot.
  • 3 x VPS 1 core 1gb each for 3 months.
  • 3 x 2GB databases for 1 year.
  • Special role Event Winner in Tortoise Server

*since we do not know team sizes yet (depends on number of qualifiers, read below) we do not know yet
specifically how much of what goes to which place, but you can expect standard thing: first place gets a lot, second
less and third the least.

Event host

Tortoise Server will be the main in hosting and organizing event, in partnership with Neko Dungeon.

Neko Dungeon is the official support server for the Hata library

Event organizers

You can find us in any of the 2 host servers, we are:

  • HuyaneMatsu#2016
  • BrainDead#6105
  • Ryūga#0001

If you have any questions ping us specifically or by pinging the role @Event Organizator, although try not to spam.

Timeline

Times are in UTC-0 24h hour format,
start date means 00:01am while end date means by 23:59pm that day.

  • Qualifier: October 21th - 31th
  • Team organization: November 1st - 4th
  • Codejam duration: November 5th - 17th
  • Deciding winners: November 18th - 20th

Qualifier: October 21-31

Qualifier is currently open!

For any questions/problems/suggestion with the scripts feel free to ask @Event Organizator

Depending on how good you solve the qualifier you will be classed into one of these groups: beginner / intermediate / advanced.

Later when we're making teams we will try to make them balanced based on your qualifier class.

Running qualifier tests

How to setup the scripts is explained in the top of the testing script but will be repeated here too.

Your project structure should optimally look like this:

/qualifier/
    nya.py
    test_nya.py

where nya.py is the qualifier script and test_nya.py is the testing script.
Now to run tests you can either run test_nya.py directly, same as you would run any Python script or you can use
terminal: cd into qualifier folder and run the following command:
python -m unittest discover

Submitting qualifier

To submit the qualifier you need to DM our bot @Tortoise#9435 and you will be presented with a message on which
you can react. React to the message with Event submission emoji and follow instructions.

If you have any problems with the procedure please ping event organizer role @Event Organizator.

Note: You can submit multiple times but only your last submission will be counted!

Note: As stated below in Team organization you can express your preference for your teammates, but we might or
might not accept it. To do so just add a docstring at the beginning of the qualifier stating Discord username and tag
of the member you want to be teamed with, example """I want to be teamed with BrainDead#6105 if possible.""
, only requirement is that the member will participating in the codejam of course.

Qualifier ratings

As previously stated, depending on how good you solve the qualifier you will be classes as beginner / intermediate / advanced.

You should just try to code it the best you can, without help from other members.

Googling for documentation/Python help is good but asking for solutions is not.

As to what is exactly rated we will only reveal that you should "do it how you feel is the best", as long as it passes tests.
You should stick to PEP8 but not all of it is strictly enforced, just keep it consistent if you deviate from it.
It should be readable and logical.

  • note that we allow max of 119 chars per line

Do not code-golf (like adding a bunch of code functionality into one line which is often unreadable).

Team organization: November 1-4:

By the @Event Organizator depending on member qualifiers.

We will take this time to review qualifiers and form fair teams.

Members can also express their preference if they want to work in a team with some specific member but ultimately we will decide that.

Teams:

Team size depends on the number of participants and how many people join for solving the qualifier, so we can't say for
sure right now and we will be decided later (when qualifier is done).

Though we can say that team size will be either 2 or 3 team members.

Also every team will have a leader, which would be the most experienced person in the team.
We might not have those in case of 2 person teams.

Codejam: November 5th-17th

By this point you should be already teamed up with other members by @Event Organizator.

For first day our recommendation is to try to take it easy and just try to see if all team members are still going to
participate (there might be cases where some members drop out). If you have problems with team members not responding
ping event organizators and we will try to move the teams around.

Also you can see who knows what and from which country the are so you know the timezones, get to know each other.

Codejam theme

Theme is to be announced after the qualifiers are done.

Codejam rating rules

To get you approximate idea on what we rate on how will your submissions be scored we've made the following table:

  • Clean code: (25%)
    • Code style and standards (readability, docstrings, PEP8, is it logical etc)
    • note that we allow max of 119 chars per line, not the default 80 as per PEP
    • PEP8 in its whole is not strictly enforced, but if you pick one way to do it then stick to it - consistency is the key.
  • Idea: (40%)
    • How original the idea is, how well it sticks to the theme and how much we like it.
  • Functionality: (35%)
    • Whether the bot features work as intended, are there any bugs.
    • If there is a wrapper feature for something, use it instead of trying to implement it yourself (aka don't reinvent the wheel)
    • Bad approaches such as: Blocking code in async, bloat code, unnecessary lines etc

Codejam submissions

By using Github, this will be explained later on.

Codejam notes

  • If you use static ID-s, please have them as constants in one file and each having a comment about what it is for, if they are not already self-explanatory. This will help us set up environment to test out your submission more easily.
    • Please note the minimum required python version of the project, if you are using 3.6+ features.

Advertising:

If you want to advertise you can but WITH PERMISSION, do not go in servers and randomly post our event/invite.

Talk about it first and ask about permission. We do not condone any kind of spam.

Who can attend?

Locations have different requirements for who can attend. This location is open to the following:

Schedule

Type: Code Jam in teams.
Technology:
Hata Discord API wrapper https://github.com/HuyaneMatsu/hata
Language: Python, Implementations: PyPy, CPython, versions: 3.6, 3.7, 3.8.
Teams:
Team size depends on the number of participants, will be decided later, tho the minimal size will be 2 and the maximal will be 3.
Every team will have a leader, an intermediate or advanced coder.
There will be a channel created for each team in the Tortoise server.
Qualifier: Oct 20-31
Everyone will be qualified to 1 group: beginner / intermediate / advanced.
Will help us to make balanced teams.
Team organization: Nov 1-4
By the @Event Organizators depending on member qualifiers.
Members can also express their preference if they want to work in a team with some specific member but ultimately we will decide that.
Start date: Nov 5-17
Before the start date there will be a period (2 weeks) for members to submit their qualifiers. (We can also use this time to promote the event.)
Deciding winners: Nov 18-20
Prizes:
@BrainDead#6105: 1 or 2 Discord Nitro (full one)
@HuyaneMatsu#2016: Up to 20 Discord Nitro and virtual Koishi currency. :stonks:
cynderhost: 3 VPS 1 core 1gb each for 3 months.
@Ryūga#0001: 3 x 2GB databases.

Links & Resources

Mattermost

Chat platform where all the activities and fun happens.

Open link →

Hosted by

Vaishnav MG

A discord based non-profit python community for python programmers.