Skip to content

Commit 6c5cbd3

Browse files
author
Jim Bennett
authored
Initial commit
0 parents  commit 6c5cbd3

36 files changed

+1030
-0
lines changed

.devcontainer/devcontainer.json

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
2+
// https://github.com/microsoft/vscode-dev-containers/tree/v0.238.1/containers/javascript-node
3+
{
4+
"name": "Node.js",
5+
"image": "mcr.microsoft.com/vscode/devcontainers/typescript-node:0-12",
6+
7+
// Configure tool-specific properties.
8+
"customizations": {
9+
// Configure properties specific to VS Code.
10+
"vscode": {
11+
// Add the IDs of extensions you want installed when the container is created.
12+
"extensions": [
13+
"dbaeumer.vscode-eslint",
14+
"visualstudioexptteam.vsc",
15+
"eamodio.gitlens",
16+
"redhat.vscode-yaml",
17+
"vsls-contrib.codetour"
18+
]
19+
}
20+
},
21+
22+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
23+
// "forwardPorts": [],
24+
25+
// Use 'postCreateCommand' to run commands after the container is created.
26+
// "postCreateCommand": "yarn install",
27+
28+
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
29+
"remoteUser": "node"
30+
}
+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
name: "\U0001F41E Bug report"
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Do something
16+
2. Then do something else
17+
18+
**Expected behavior**
19+
A clear and concise description of what you expected to happen.
20+
21+
**Screenshots**
22+
If applicable, add screenshots to help explain your problem.
23+
24+
**Desktop (please complete the following information):**
25+
- OS: [e.g. iOS]
26+
- Browser [e.g. chrome, safari]
27+
- Version [e.g. 22]
28+
29+
**Smartphone (please complete the following information):**
30+
- Device: [e.g. iPhone6]
31+
- OS: [e.g. iOS8.1]
32+
- Browser [e.g. stock browser, safari]
33+
- Version [e.g. 22]
34+
35+
**Additional context**
36+
Add any other context about the problem here.

.github/ISSUE_TEMPLATE/---question.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
name: "\U0001F914 Question"
3+
about: I'd like to know more about something.
4+
title: ''
5+
labels: question
6+
assignees: ''
7+
8+
---
9+
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: "✨ Feature request"
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

.github/day1-issues/font-issue.md

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: Change the Score Font to Something Not Comic Sans
3+
labels: enhancement
4+
---
5+
6+
The scoreboard is currently being drawn with the comic sans font...
7+
8+
That's configured in hud.js.
9+
10+
![](https://user-images.githubusercontent.com/1161329/184423685-8d31ad1c-b4fd-4dc3-9304-beb154df3577.png)
11+
12+
Can we change this to something else? Maybe `parchment`?
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: Add more greetings
3+
labels: enhancement
4+
---
5+
6+
There are a number of greetings in the `Constants` file. Lets add a few more to introduce some extra variety to the game.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: Add High Score View
3+
labels: enhancement
4+
---
5+
6+
Add some way to track the High Score over a session that keeps track of how high a player has scored in the hud file and displays the maximum score that anyone has achieved during that play.

.github/day1-issues/pause-issue.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
title: Need a pause between hitting an object and being able to restart
3+
labels: bug
4+
---
5+
6+
Not sure if this is a bug report or a feature request.
7+
8+
**To Reproduce**
9+
1. Play the game, tapping space to stay flying
10+
2. Collide with an obstacle just as you tap space to fly
11+
3. The tapping of space just after the game ends quickly restarts the game, not giving you time to realize you hit an object
12+
13+
**Expected behavior**
14+
The game should obviously end and give you time to realize before you restart

.github/day1-issues/scoring-issue.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
title: Support Player Scoring
3+
labels: enhancement
4+
---
5+
6+
Add the ability to score in the game. The hud file already supports displaying the score but there isn't any way to actually score anything yet.
7+
8+
Let's find a way to earn points and track that!
9+
10+
Some ideas:
11+
12+
- Score points the longer you are able to play.
13+
- Score points when an obstacle is past the player (or created)
14+
- Add coins that can be picked up to earn points
15+
- Something else?
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: Art and design
3+
labels: enhancement
4+
---
5+
6+
The CubeFlyer game has graphics that are somewhat basic - it is a cube flying through blocks. This can be improved, so those attendees with an art or design background can help make both the UI and the game graphics better.
7+
8+
An a **user interface** team, you have been tasked with:
9+
10+
* Changing the cube for a different object
11+
* Improving the look of the columns
12+
* Making general improvements to the user interface such as color schemes, fonts, or the layout
13+
14+
<!--
15+
@runewake2 - can you add guidance here including links to relevant babylonjs docs.
16+
-->
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
title: Continuous integration and deployment
3+
labels: enhancement
4+
---
5+
6+
CubeFlyer is fun to play locally, but how much better would it be if your friends could play?
7+
8+
One way to do this is to deploy the game to a static site hosting service. Static hosting services are web hosts that serve up HTML files, but don't run any server-side code. This is fine for CubeFlyer as it is a self-contained HTML file with the game logic as JavaScript that runs locally.
9+
10+
The easiest static hosting service to use with GitHub is [GitHub pages](https://pages.github.com). This takes code from a GitHub repo and hosts it as a web site.
11+
12+
As a **devops** team, you have been tasked with:
13+
14+
* Deploying the contents of the `game` folder to GitHub pages
15+
* Ensuring that every time the game is updated, a new deploy happens, testing this out with some basic changes
16+
17+
The deploy on every update can be achieved with GitHub actions, workflows that are configured and run inside a repository.
18+
19+
To help you learn about GitHub pages, you should work through the [GitHub pages lab on GitHub skills](https://github.com/skills/github-pages). You can also use the [GitHub pages documentation](https://docs.github.com/pages).
20+
21+
To help you learn about GitHub actions, there are [multiple GitHub actions labs on GitHub skills](https://skills.github.com/#automate-workflows-with-github-actions) that you can work through, using the [GitHub actions documentation](https://docs.github.com/actions) for further reference.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
title: Add a configuration service
3+
labels: enhancement
4+
---
5+
6+
The game is fun with the current configuration of greetings and gravity, and it may have a local high score if this was implemented by teams in day 1. It would be nicer if this could all be in a service running somewhere that would allow the configuration to be updated without having to change the game code, or for high scores to be persisted.
7+
8+
> A lot of software does this - it has certain values set from a configuration service that can be tweaked without redeploying the application based on data gathered from users of the application. For example, in a game if a lot of users are failing to defeat a certain boss, the game can be tweaked through configuration to make the boss easier to beat.
9+
10+
As a **software engineering** team, you have been tasked with:
11+
12+
* Creating a service that hosts a web API that you can use to retrieve configuration every time the page is refreshed
13+
* Adding the ability to store high scores using this web API.
14+
15+
How this is created is up to the team. It can be a local Python/Flask web app that stores the scores in memory, it can use a database to store the scores and configuration, use a cloud-based gaming service, or even a cloud-based serverless application. It depends on the skill level of the team, though the recommendation is to start as simple as possible.
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
title: Deploy to the cloud
3+
labels: enhancement
4+
---
5+
6+
**This is an advanced task and is only recommended for attendees with cloud experience.**
7+
8+
As CubeFlyer grows with web APIs to manage configuration and scores, and who knows what extra features, the game will need to deployed and managed in the cloud. This goes beyond using GitHub pages to host the site and a local configuration service.
9+
10+
As a **cloud engineering** team, you have been tasked with:
11+
12+
* Using a static hosting service to host the game site
13+
* Providing a hosted web API for configuration hosted in the cloud
14+
* Automating the deployment of both services when code is merged
15+
16+
What platform you use is up to you. Ideally you want to use a free service, and ensure you delete it after you have finished. It can take time to sign up for cloud services, and potentially need a credit card, so this task should only be undertaken by more advanced teams.
17+
18+
> Do **not** share cloud credentials or access with teammates unless you know what you are doing t control access. You don't want a teammate to accidentally spin up extra services that cost you money.
19+
20+
Some suggestions to help you learn how to do this are:
21+
22+
* [Azure static web apps on Microsoft Learn](https://learn.microsoft.com/training/paths/azure-static-web-apps/)
23+
* [Build an AI web app by using Python and Flask on Microsoft Learn](https://learn.microsoft.com/training/modules/python-flask-build-ai-web-app/)

.github/day2-issues/docs-issue.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: Documentation
3+
labels: enhancement
4+
---
5+
6+
One of the most needed parts of open source projects is documentation. Many developers will want to work on code, but few want to work on docs. This is a shame, as docs are the most important part of an open source project for a new person to start using it. You can have the most perfect library, but it is useless if no-one knows how to use it.
7+
8+
The CubeFlyer project is lacking in good documentation.
9+
10+
As a **documentation** team, you have been tasked with actually creating documentation. This includes:
11+
12+
* A markdown file with a guide to running the project locally
13+
* Documentation on the structure of the code, also as a markdown file
14+
* Documentation for the features being added by other teams
15+
16+
This documentation should all be in markdown. To add documentation for features being added by other teams, you will need to collaborate with those teams to generate the documentation in tandem. This will be good learning for the other teams to help cement the idea that documentation is a continuous process that includes everyone.
17+
18+
To help you learn markdown syntax, you should work through the [Communicate using Markdown lab on GitHub skills](https://github.com/skills/communicate-using-markdown).
19+
20+
VS Code has great support for markdown built in, and its markdown functionality can be improved using a number of extensions. You can learn more in the [markdown in VS Code documentation](https://code.visualstudio.com/docs/languages/markdown).

.github/day2-issues/pm-issue.md

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
title: Project management
3+
labels: enhancement
4+
---
5+
6+
One challenging part of managing open source projects is governance and management. Most developers want to write code, not manage a project, which is where project, product and program management comes in.
7+
8+
The CubeFlyer project has been run without much governance so far, so is in need of being managed.
9+
10+
As a **project management** team, you have been tasked with:
11+
12+
* Organizing all the open issues into projects
13+
* Adding appropriate labelling
14+
* Defining the workflow for contributing to the project
15+
* Adding a CLA that must be agreed to before contributing
16+
* Adding issue templates
17+
* Adding relevant protections to ensure compliance to the contribution rules
18+
19+
> For some of these tasks, members of your team may need admin rights on the repository. The event organizer should be able to enforce this
20+
21+
To help you learn some of these concepts, you can check out the following learning resources:
22+
23+
* [Create a release based workflow lab on GitHub skills](https://github.com/skills/release-based-workflow)
24+
* [GitHub issues documentation](https://docs.github.com/issues/tracking-your-work-with-issues)
25+
* [GitHub projects documentation](https://docs.github.com/issues/planning-and-tracking-with-projects)
26+
* [GitHub labelling documentation](https://docs.github.com/issues/using-labels-and-milestones-to-track-work)
27+
* [CLA assistant](https://cla-assistant.io/)
+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Create issues for day 2 on demand.
2+
on: [workflow_dispatch]
3+
permissions:
4+
contents: read
5+
issues: write
6+
jobs:
7+
create-issues:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v3
11+
- uses: JasonEtco/create-an-issue@v2
12+
env:
13+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
14+
with:
15+
filename: .github/day2-issues/art-design-issue.md
16+
- uses: JasonEtco/create-an-issue@v2
17+
env:
18+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19+
with:
20+
filename: .github/day2-issues/ci-deploy-issue.md
21+
- uses: JasonEtco/create-an-issue@v2
22+
env:
23+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24+
with:
25+
filename: .github/day2-issues/config-service-issue.md
26+
- uses: JasonEtco/create-an-issue@v2
27+
env:
28+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29+
with:
30+
filename: .github/day2-issues/deploy-cloud-issue.md
31+
- uses: JasonEtco/create-an-issue@v2
32+
env:
33+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
34+
with:
35+
filename: .github/day2-issues/docs-issue.md
36+
- uses: JasonEtco/create-an-issue@v2
37+
env:
38+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
39+
with:
40+
filename: .github/day2-issues/pm-issue.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Create initial issues when creating a repo from this template
2+
on: [create]
3+
permissions:
4+
contents: read
5+
issues: write
6+
jobs:
7+
create-issues:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v3
11+
- uses: JasonEtco/create-an-issue@v2
12+
env:
13+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
14+
with:
15+
filename: .github/day1-issues/greetings-issue.md
16+
- uses: JasonEtco/create-an-issue@v2
17+
env:
18+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19+
with:
20+
filename: .github/day1-issues/font-issue.md
21+
- uses: JasonEtco/create-an-issue@v2
22+
env:
23+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24+
with:
25+
filename: .github/day1-issues/scoring-issue.md
26+
- uses: JasonEtco/create-an-issue@v2
27+
env:
28+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29+
with:
30+
filename: .github/day1-issues/high-scoring-issue.md
31+
- uses: JasonEtco/create-an-issue@v2
32+
env:
33+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
34+
with:
35+
filename: .github/day1-issues/pause-issue.md

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
.DS_Store

0 commit comments

Comments
 (0)