aboutsummaryrefslogtreecommitdiffstats
path: root/templates/main/info/jams.html
blob: 8abc5d8f39e0243cac2efebaa1764621c176cbcb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
{% extends "main/base.html" %}
{% block title %}Code Jams{% endblock %}
{% block og_title %}Code Jams{% endblock %}
{% block og_description %}Information about our code jams - monthly events where users are grouped into pairs to solve a Python task{% endblock %}
{% block content %}
    <div class="uk-section">
        <div class="uk-container uk-container-small">
            <article class="uk-article">
                <h1 class="uk-article-title hover-title" id="top">
                    Code Jams

                    <a href="#top" class="uk-text-primary" title="Permanent link to this header">
                        <i class="fas fa-paragraph" data-fa-transform="shrink-8"></i>
                    </a>
                </h1>
                <p class="uk-article-meta">
                    We jammin'
                </p>

                <p>
                    Every three months or so, we aim to host a server-wide code jam, suitable for all members of the server. In
                    these, we announce a theme and date in advance, and users may sign up via a link provided in the
                    announcements channel on the server. Once the sign-up period is over, users are grouped into
                    teams. On the day of the code jam, we announce a task - each team will then work on a solution
                    to this task.
                </p>
                <p>
                    Once the code jam is over, our staff team will review and test each submission. Once that's done,
                    a winner will be decided!
                </p>
                <p>
                    If you'd like to join one of our code jams, feel free to ask a member of staff about the next one.
                </p>

                <h2 class="uk-article-title hover-title" id="rules">
                    Rules and Guidelines

                    <a href="#rules" class="uk-text-primary" title="Permanent link to this header">
                        <i class="fas fa-paragraph" data-fa-transform="shrink-8"></i>
                    </a>
                </h2>
                <p class="uk-article-meta">
                    Keeping the fight clean
                </p>
                <p>
                    In order to keep things fair and on-topic, the following rules must be adhered to. Failure to
                    follow these rules will result in disqualification.
                </p>
                <ul>
                    <li>
                        Projects must be strongly Python-oriented.

                        <ul>
                            <li>You may mix in other languages, but the project must be Python-based.</li>
                        </ul>
                    </li>
                    <li>You may not write any code in advance.</li>
                    <li>You may not write any code after the deadline.</li>
                    <li>The work must be your own - don't copy another team's work.</li>
                </ul>
                <p>
                    Additionally, the following suggestions could be helpful for all teams.
                </p>
                <ul>
                    <li>All team members should contribute to the project in some way. Work together!</li>
                    <li>Open your pull request early - that way, you know it'll be there by the deadline.</li>
                    <li>Lint your code - we lint each pull request using Flake8, and your code should validate.</li>
                    <li>Communicate with your teammates - Add them as a friend, start a group DM, and work together on the problem.</li>
                </ul>

                <h2 class="uk-article-title hover-title" id="getting-started">
                    Getting Started

                    <a href="#getting-started" class="uk-text-primary" title="Permanent link to this header">
                        <i class="fas fa-paragraph" data-fa-transform="shrink-8"></i>
                    </a>
                </h2>
                <p class="uk-article-meta">
                    Git good - Dropbox bad
                </p>
                <p>
                    All of our code jams happen on <a href="http://github.com/">GitHub</a>. If you don't have an
                    account there, you'll need to create one before you can join one of our code jams. Teams are required
                    to fork the repository we have set up for the current code jam, commit their code to their fork, and
                    then open a pull request with their project on the code jam repository.
                </p>
                <p>
                    Once the challenge task has been announced, head to the link provided to reach the challenge repository.
                    In order to work on the task, you will need to fork the repository - this will create a copy of the
                    repository under your account, which you will be able to work on with your teammates. To do so,
                    log into GitHub and click on the "Fork" button on the repository page. Select your username from the
                    dialogue, and it will be forked to your account.
                </p>
                <figure>
                    <img src="{{ static_file('images/jams/jams_1.png') }}" class="uk-align-center uk-border-rounded" />
                    <img src="{{ static_file('images/jams/jams_2.png') }}" class="uk-align-center uk-border-rounded" />
                </figure>
                <p>
                    Once this has been done, you should find yourself looking at your new copy of the repository. Next
                    up, you'll need to give your teammates access to it! Click on the "Settings" tab, click on
                    "Collaborators", enter your password if you're prompted for it, and add your teammates as
                    collaborators.
                </p>
                <figure>
                    <img src="{{ static_file('images/jams/jams_3.png') }}" class="uk-align-center uk-border-rounded" />
                    <img src="{{ static_file('images/jams/jams_4.png') }}" class="uk-align-center uk-border-rounded" />
                    <img src="{{ static_file('images/jams/jams_5.png') }}" class="uk-align-center uk-border-rounded" />
                </figure>
                <p>
                    Now that you've set up your repository, it's time to install Git. If you're on Linux, you can
                    install Git using your system's package manager. Windows users can install
                    <a href="https://git-scm.com/download/win">Git for Windows</a>, and Mac users can install Git
                    using <a href="https://brew.sh">Homebrew</a>. Once you're all installed, open up a terminal
                    (or open Git Bash if you're on Windows). For the purpose of illustration we will be working on
                    Windows, but this will work on any platform.
                </p>
                <p>
                    We will use Git to clone the repository to the machine. Simply type <code>git clone &lt;url&gt;</code>
                    and Git will download a copy of the repository. The URL is the same one you use to get to the
                    repository page on GitHub. Use <code>cd project-name</code> to change directory to the repository.
                </p>
                <figure>
                    <img src="{{ static_file('images/jams/jams_6.png') }}" class="uk-align-center uk-border-rounded" />
                </figure>
                <p>
                    Now, open the newly-cloned repository in your favourite editor and make some edits. We'll be using
                    <a href="https://code.visualstudio.com/">Visual Studio Code</a> in this example, but use whatever
                    you prefer. For example, let's create a file named "hello.py", and add a line of code to it.
                </p>
                <figure>
                    <img src="{{ static_file('images/jams/jams_7.png') }}" class="uk-align-center uk-border-rounded" />
                </figure>
                <p>
                    Now that we've edited a file, we need to make Git aware of our changes. Head back over to your
                    terminal, and type <code>git add hello.py</code> to add this file to our changeset.
                </p>
                <p>
                    Next up, we'll need to bundle up our changes into a commit, and push it to GitHub. To do that, we'll
                    use <code>git commit -am "message"</code>. Make sure you use a descriptive message explaining why
                    you made your changes and what they are, but try to keep it to a single line of text if you can.
                    Following this, we can use <code>git push origin master</code> to push our commit up to GitHub.
                </p>
                <figure>
                    <img src="{{ static_file('images/jams/jams_8.png') }}" class="uk-align-center uk-border-rounded" />
                    <img src="{{ static_file('images/jams/jams_9.png') }}" class="uk-align-center uk-border-rounded" />
                </figure>
                <p>
                    In order to pull the latest version of the code when the repository was cloned earlier, we can
                    simply use the <code>git pull</code> command. In order to illustrate this, we will need to enlist
                    the help of our lovely assistant...
                </p>
                <figure>
                    <img src="{{ static_file('images/jams/jams_10.png') }}" class="uk-align-center uk-border-rounded" />
                    <img src="{{ static_file('images/jams/jams_11.png') }}" class="uk-align-center uk-border-rounded" />
                    <img src="{{ static_file('images/jams/jams_12.png') }}" class="uk-align-center uk-border-rounded" />
                </figure>
                <p>
                    Oh boy.
                </p>
                <p>
                    Once you've pushed some code to the repository, you will notice a "Pull request" link. Click on
                    that to create a pull request, which will let us know that you're working on the task and help us
                    to keep track of things. Simply click on the "Create pull request" button on the next page, fill
                    in the "Title" box with your team number - for example, "Team 1" - and click the big green
                    button to finish.
                </p>
                <figure>
                    <img src="{{ static_file('images/jams/jams_13.png') }}" class="uk-align-center uk-border-rounded" />
                    <img src="{{ static_file('images/jams/jams_14.png') }}" class="uk-align-center uk-border-rounded" />
                    <img src="{{ static_file('images/jams/jams_15.png') }}" class="uk-align-center uk-border-rounded" />
                    <img src="{{ static_file('images/jams/jams_16.png') }}" class="uk-align-center uk-border-rounded" />
                </figure>
                <p>
                    Now that your pull request has been created, keep working on your project! Code that you push to
                    GitHub will automatically be added to your pull request in real-time. As the code jam continues on,
                    you may find review comments waiting from us. These are just suggestions to help you improve as
                    a programmer - free advice from us. Feel free to incorporate our suggestions into your project
                    if you wish.
                </p>
                <figure>
                    <img src="{{ static_file('images/jams/jams_17.png') }}" class="uk-align-center uk-border-rounded" />
                </figure>
                <p>
                    That's all there is to it! Keep working at your task, do your best and you might just come out
                    on top!
                </p>
            </article>
        </div>
    </div>
{% endblock %}