Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
266 commits
Select commit Hold shift + click to select a range
deefc35
Create new readme.md
MeGaGiGaGon Aug 10, 2025
11e4de2
Merge pull request #16 from Mannyvv/create-new-readme
Mannyvv Aug 10, 2025
cc9f868
Create new folder and __init__ for rpg-style input. Name may have to …
MeGaGiGaGon Aug 10, 2025
7459079
Add basic page for the RPG style input to make sure other pages work.…
MeGaGiGaGon Aug 10, 2025
f125dac
Add basic on-screen keyboard rendering to RPG style input
MeGaGiGaGon Aug 10, 2025
31f037c
Add selector movement to RPG style input
MeGaGiGaGon Aug 10, 2025
e7c991a
Add template input sending to RPG style input
MeGaGiGaGon Aug 10, 2025
2112f5c
Fix logic error in movement wrapping in RPG style input
MeGaGiGaGon Aug 10, 2025
a8bcce4
Improve keyboard documentation and add post_init for internal invaria…
MeGaGiGaGon Aug 10, 2025
c0f417d
Fix some pre-commit related errors in README.md
MeGaGiGaGon Aug 10, 2025
f9a3dc5
Copy input_view from original repo
afx8732 Aug 10, 2025
5240b37
Switch out OK for backspace symbol
MeGaGiGaGon Aug 10, 2025
5638dd8
Improve docstrings a lot
afx8732 Aug 10, 2025
69f587d
Make cursor visible before first set_text call
afx8732 Aug 11, 2025
12bc5cf
Fixed weird overflow bug
afx8732 Aug 11, 2025
a9e90cd
Added images and sounds for audio style input page
Mannyvv Aug 11, 2025
200e50d
Hide cursor if input is completed length
afx8732 Aug 11, 2025
09742f9
fake homepage and initial audio page
Mannyvv Aug 11, 2025
36294d6
added image and a lable
Mannyvv Aug 11, 2025
79cb300
Merge pull request #21 from Mannyvv/add-input-view-component
MeGaGiGaGon Aug 11, 2025
2140d98
Added play, pause, skip, rewind, and select buttons with working actions
Mannyvv Aug 11, 2025
3a1dd77
Merge branch 'main' into add-audio-style-input-method
Mannyvv Aug 11, 2025
a1cb15f
Add WPM-test page.
afx8732 Aug 11, 2025
b9b6030
Merge pull request #18 from Mannyvv/fix-readme-pre-commit-issues
Mannyvv Aug 11, 2025
a86deda
Merge pull request #19 from Mannyvv/add-controller-style-input-method
Mannyvv Aug 11, 2025
8db61a3
Merge branch 'main' into add-audio-style-input-method
Mannyvv Aug 11, 2025
326eebe
Create sample input method module
afx8732 Aug 11, 2025
61cf35b
Add sample input method to wpm-test module method list
afx8732 Aug 11, 2025
e4cc132
Merge branch 'main' into create-wpm-test-page
afx8732 Aug 11, 2025
a3cff30
Update main.py
afx8732 Aug 11, 2025
b58fcb0
fixed Ruff401 issue in main.py
Mannyvv Aug 11, 2025
788754d
fixed Ruff F104 issue in main.py
Mannyvv Aug 11, 2025
e0d1962
Fix formatting in imports
afx8732 Aug 11, 2025
3a9e95e
Merge pull request #24 from Mannyvv/add-audio-style-input-method
afx8732 Aug 11, 2025
09c470c
Create homepage outline
enskyeing Aug 12, 2025
016d17f
Define color theme
enskyeing Aug 12, 2025
548db4b
Revert "Define color theme"
enskyeing Aug 12, 2025
d3d3597
Change background color
enskyeing Aug 12, 2025
d695fae
Add page header
enskyeing Aug 12, 2025
7216a44
Add input method buttons
enskyeing Aug 12, 2025
72e831b
Fix page formatting error
enskyeing Aug 12, 2025
ceba59f
Fix Ruff formatting errors
enskyeing Aug 12, 2025
e9031db
Remove redundant semi-colon
enskyeing Aug 12, 2025
8fa1929
Remove ui.run()
enskyeing Aug 12, 2025
b36dd4d
Merge pull request #25 from Mannyvv/create-wpm-test-page
Mannyvv Aug 12, 2025
7199e8f
Merge pull request #27 from Mannyvv/10-create-the-home-page
Mannyvv Aug 12, 2025
61e55e7
Merge pull request #28 from Mannyvv/add-sample-input-method
Mannyvv Aug 12, 2025
4ba1235
Import the homepage module and render it in main.
afx8732 Aug 12, 2025
1ef9ef9
added audio files back
Mannyvv Aug 12, 2025
5797720
refactored intro_card and main_content
Mannyvv Aug 12, 2025
21a358d
refactored buttons
Mannyvv Aug 12, 2025
02ed88a
refactored logic funtions
Mannyvv Aug 12, 2025
6616a78
added interface functions and some refactoring
Mannyvv Aug 12, 2025
3136fe2
Merge pull request #29 from Mannyvv/import-homepage-in-main
Mannyvv Aug 12, 2025
d0a6162
Merge branch 'main' into refactor-audio-style
Mannyvv Aug 12, 2025
de50c7e
edited main.py and test page in order to see audio input tool
Mannyvv Aug 12, 2025
567cd70
Fix header to top of page
enskyeing Aug 13, 2025
2edad88
Add button screen size support
enskyeing Aug 13, 2025
797bd4b
Merge pull request #33 from Mannyvv/30-header-overlaps-in-homepage
Mannyvv Aug 13, 2025
a93479d
Adding file with color input method implementation
jks85 Aug 13, 2025
4d29b62
Adding directory with color input method implementation
jks85 Aug 13, 2025
b68255a
Delete __init__.py
jks85 Aug 14, 2025
b91da40
changed input to return text thus far instead of single letter
Mannyvv Aug 14, 2025
9bd111d
added backspace feature and button
Mannyvv Aug 14, 2025
835e6ce
Update input method names
enskyeing Aug 14, 2025
506dc6a
Add list with input method info
enskyeing Aug 14, 2025
cba641f
Merge pull request #34 from Mannyvv/14-create-color-picker-input-method
afx8732 Aug 14, 2025
378c802
Add button links
enskyeing Aug 14, 2025
a42c30f
Add homepage link support
enskyeing Aug 14, 2025
8aaa2fa
added space char and button
Mannyvv Aug 14, 2025
c090c2f
Update pyproject.toml to exclude COM812
MeGaGiGaGon Aug 14, 2025
2d14ca7
Merge pull request #39 from Mannyvv/MeGaGiGaGon-exclude-COM812
enskyeing Aug 14, 2025
f2135a4
Implementing kam's fix to stop palette from minimizing. Other minor c…
jks85 Aug 15, 2025
44641a8
Merge pull request #41 from Mannyvv/40-fix-color-picker-input-method
jks85 Aug 15, 2025
321a2c9
combined play and pause button
Mannyvv Aug 16, 2025
b62b0ce
fixed issues with spaces and backspaces on input_view.py
Mannyvv Aug 16, 2025
87dbaa7
Remove duplicate page link
enskyeing Aug 16, 2025
2d0fd31
Add config.py
enskyeing Aug 16, 2025
4284e07
Move input file to src
enskyeing Aug 16, 2025
4fc6988
Revert "Move input file to src"
enskyeing Aug 16, 2025
ce176f1
Move config file to src
enskyeing Aug 16, 2025
1233b99
Remove hard-coded buttons
enskyeing Aug 16, 2025
c410ee2
Remove extra line
enskyeing Aug 16, 2025
b51ec3e
Merge pull request #45 from Mannyvv/input_view_fix_spaces
afx8732 Aug 16, 2025
5a24fce
Merge pull request #31 from Mannyvv/refactor-audio-style
afx8732 Aug 16, 2025
9248750
Change button navigation to /test
enskyeing Aug 16, 2025
d662197
Update audio input path
enskyeing Aug 16, 2025
54b9f7d
Add components to input methods
enskyeing Aug 16, 2025
54ad25e
Remove forward slash in path
enskyeing Aug 16, 2025
aafadba
Merge pull request #37 from Mannyvv/32-link-input-methods-to-homepage
Mannyvv Aug 16, 2025
b6d994c
fixed imports
Mannyvv Aug 16, 2025
16740fa
connected homepage to wpm_tester.py via INPUT_METHODS
Mannyvv Aug 16, 2025
5b90b38
Merge pull request #48 from Mannyvv/connect-homepage-2-compnts
enskyeing Aug 16, 2025
5e7988d
added timer
Mannyvv Aug 16, 2025
ffdbf67
added wpm and wph with buttons
Mannyvv Aug 17, 2025
04697fd
styled to timer,wpm,wph
Mannyvv Aug 17, 2025
cc7ad36
Basic movement and rendering
afx8732 Aug 17, 2025
c31385e
import platformer input method in config
afx8732 Aug 17, 2025
10d94bf
Adding button so user can confirm letters separately from selecting t…
jks85 Aug 17, 2025
6c1f25d
Merge pull request #52 from Mannyvv/43-add-confirmation-button-for-se…
jks85 Aug 17, 2025
a91595a
Update audio_style_input to use builtin string constants more
MeGaGiGaGon Aug 17, 2025
8a5a7fa
Add egg files to gitignore
MeGaGiGaGon Aug 17, 2025
07da401
Merge pull request #55 from Mannyvv/add-egg-files-to-gitignore
enskyeing Aug 17, 2025
2f87297
Improve the typing in config.py
MeGaGiGaGon Aug 17, 2025
94f7bcc
remove debug print from simulation
afx8732 Aug 17, 2025
68d78b2
Name text callback type
MeGaGiGaGon Aug 17, 2025
835cfb2
Merge pull request #53 from Mannyvv/audio_style_input-use-string-more
Mannyvv Aug 17, 2025
278a206
Merge pull request #56 from Mannyvv/improve-config-typing
Mannyvv Aug 17, 2025
458ff9c
fix rendering on y axis -- it was upside-down
afx8732 Aug 17, 2025
9fbe1ad
Merge pull request #58 from Mannyvv/name-text-callback-type
afx8732 Aug 17, 2025
491a310
Switch input_method_proto imports to froms
MeGaGiGaGon Aug 17, 2025
fc6f7d0
only render visible tiles
afx8732 Aug 17, 2025
7596aec
Create frame page function outline
enskyeing Aug 14, 2025
5485258
Create header layout
enskyeing Aug 14, 2025
d3eb51c
Add header with sidebar
enskyeing Aug 15, 2025
2812c26
Add labelling comments
enskyeing Aug 15, 2025
a846a8d
Add config file support
enskyeing Aug 15, 2025
67403a8
Add input path support to sidebar
enskyeing Aug 16, 2025
72aad93
Link home on sidebar
enskyeing Aug 16, 2025
fd49753
Add color palette
enskyeing Aug 16, 2025
d24451c
Change primary color
enskyeing Aug 16, 2025
e579c81
Add color style dict support
enskyeing Aug 16, 2025
e28b68d
Add input method container
enskyeing Aug 17, 2025
f659b25
Add hover color to sidebar
enskyeing Aug 17, 2025
22d8d7e
Make hover color dynamic
enskyeing Aug 17, 2025
f014405
Update color style
enskyeing Aug 17, 2025
440b888
Add comments and organization
enskyeing Aug 17, 2025
e2d892f
Add styling into wpm tester
enskyeing Aug 17, 2025
f234c83
Delete input_method_frame
enskyeing Aug 17, 2025
eb6653e
Increase font size
enskyeing Aug 17, 2025
afba4b7
Evenly distribute items in column
enskyeing Aug 17, 2025
e7fa1f8
Update rpg_text_input to work with new input scheme
MeGaGiGaGon Aug 17, 2025
b2f49fe
document constants
afx8732 Aug 17, 2025
2e14069
Realtime rendering (set-FPS-based)
afx8732 Aug 17, 2025
2eb9b4d
remove debug print
afx8732 Aug 17, 2025
620463c
Merge pull request #59 from Mannyvv/switch-input_method_proto-imports…
Mannyvv Aug 17, 2025
62270f3
FLOATy movement!
afx8732 Aug 17, 2025
0a6bd68
Reference config color style
enskyeing Aug 17, 2025
a243637
Merge pull request #50 from Mannyvv/Add-Timer-WPM-Calc
enskyeing Aug 17, 2025
fc189c0
Merge branch 'main' into 38-create-a-frame-ui-for-the-input-method-page
enskyeing Aug 17, 2025
f7e8aaf
Use deltatime + new decay algo
afx8732 Aug 17, 2025
682ca07
Ultra-fast renderer!
afx8732 Aug 17, 2025
0826fbe
Display player
afx8732 Aug 17, 2025
215e321
Fix platformer renderer start position
afx8732 Aug 17, 2025
a1c45c1
Add typing overrides
MeGaGiGaGon Aug 17, 2025
25bfb12
refactored with css and ruff fixes
Mannyvv Aug 17, 2025
2060a0e
movement adjustments
afx8732 Aug 17, 2025
d189dbd
Merge pull request #60 from Mannyvv/38-create-a-frame-ui-for-the-inpu…
Mannyvv Aug 17, 2025
7c8cd16
Merge pull request #62 from Mannyvv/51-change-homepage-to-reference-c…
MeGaGiGaGon Aug 17, 2025
582ae21
Fix header spacing
enskyeing Aug 17, 2025
93e4e09
Increase title size
enskyeing Aug 17, 2025
0dade0b
Add main page div
enskyeing Aug 17, 2025
103e2df
gravity and vertical collision
afx8732 Aug 17, 2025
5a7a1fc
Fix main page div alignment
enskyeing Aug 17, 2025
381fb72
Remove add.css()
enskyeing Aug 17, 2025
6a6e17b
Fix sidebar
enskyeing Aug 17, 2025
5285857
Update create_header() docstring
enskyeing Aug 17, 2025
91b6d53
Add create_header() comments
enskyeing Aug 17, 2025
a5a84c6
Jumping
afx8732 Aug 17, 2025
9a7bd12
Horizontal movement
afx8732 Aug 17, 2025
49cc843
fix falling through the ground on spawn
afx8732 Aug 17, 2025
7c90de1
qol
afx8732 Aug 17, 2025
368a8f0
include letters in collision detection
afx8732 Aug 17, 2025
de72617
Merge pull request #66 from Mannyvv/65-fix-input-page-styling-errors
Mannyvv Aug 17, 2025
078e46b
collision refactor: can detect letter hits
afx8732 Aug 17, 2025
c881fa5
Display letter in letter tiles
afx8732 Aug 17, 2025
74ffd0c
Full letter handling into input method
afx8732 Aug 17, 2025
21dc283
Text callback in component
afx8732 Aug 17, 2025
03116a8
small qol
afx8732 Aug 17, 2025
81479e6
play tile effect on activate
afx8732 Aug 17, 2025
809d03d
installed faker and updated pyproject.toml
Mannyvv Aug 18, 2025
c4d47c6
imports for faker and random
Mannyvv Aug 18, 2025
77f777a
map update
afx8732 Aug 18, 2025
add0938
function to create sentence
Mannyvv Aug 18, 2025
6d634d6
6 words for sentence
Mannyvv Aug 18, 2025
53011ea
Adjust render to input page
enskyeing Aug 18, 2025
9b1a767
Merge pull request #68 from Mannyvv/63-update-input-method-components…
Mannyvv Aug 18, 2025
8d12c5f
Update layout
enskyeing Aug 18, 2025
10145cf
Change contrast color
enskyeing Aug 18, 2025
bc5eb27
Merge pull request #61 from Mannyvv/update-rpg_style_input-to-new-inp…
enskyeing Aug 18, 2025
36ed358
Merge pull request #57 from Mannyvv/add-typing-overrides
enskyeing Aug 18, 2025
c6c0daf
scene fix: remove empty line
afx8732 Aug 18, 2025
00472cc
Merge pull request #67 from Mannyvv/46-get-sentence-from-babbler-modu…
enskyeing Aug 18, 2025
aff8a41
Merge pull request #69 from Mannyvv/update-audio-input-layout
Mannyvv Aug 18, 2025
8b9a8d7
renderer perf: use transform: translate
afx8732 Aug 18, 2025
afb770b
Render using EMOJIS
afx8732 Aug 18, 2025
9e6950f
rename PlatformerSceneComponent to PlatformerRendererComponent
afx8732 Aug 18, 2025
5b8bef7
Refactor color input method to interface with WPM tester page
jks85 Aug 18, 2025
d41bd26
Add color input to config
enskyeing Aug 18, 2025
42d88a6
Use emoji for player sprite
afx8732 Aug 18, 2025
6f16e63
Create base layout
enskyeing Aug 18, 2025
cc382f1
Add config color style support
enskyeing Aug 18, 2025
9341eab
Merge pull request #70 from Mannyvv/change-config-contrast-color
Mannyvv Aug 18, 2025
9b653d3
Merge branch 'main' into 11-platformer-input-method
afx8732 Aug 18, 2025
9b72e46
Merge pull request #72 from Mannyvv/11-platformer-input-method
Mannyvv Aug 18, 2025
c6fc920
centered scene and resized
Mannyvv Aug 18, 2025
90e2ff5
Refactor color input method to interface with WPM tester page
jks85 Aug 18, 2025
01a883e
Reverting imports from config and input_method_proto for main repo. I…
jks85 Aug 18, 2025
6591ec3
Remove duplicate line in wpm_tester.py
MeGaGiGaGon Aug 18, 2025
123a610
Merge pull request #77 from Mannyvv/remove-duplicate-line-in-wpm_tester
Mannyvv Aug 18, 2025
73d439c
Make wpm_tester.py check that inputed text is equal to target text fo…
MeGaGiGaGon Aug 18, 2025
ebaa981
rounded corners and margin
Mannyvv Aug 18, 2025
198ef8f
Clean up comments in main.py
MeGaGiGaGon Aug 18, 2025
9c1801c
added border
Mannyvv Aug 18, 2025
c66384a
Make wpm_tester.py header project name into a link
MeGaGiGaGon Aug 18, 2025
33d861a
Merge pull request #79 from Mannyvv/clean-up-comments-in-main.py
afx8732 Aug 18, 2025
ff933b4
color border and size
Mannyvv Aug 18, 2025
6b4339f
Merge pull request #80 from Mannyvv/make-wpm_tester-header_name-into-…
afx8732 Aug 18, 2025
caf87a9
double border and remove child border
Mannyvv Aug 18, 2025
d8ba824
Add keyboard styling
enskyeing Aug 18, 2025
c1c3f57
Merge pull request #76 from Mannyvv/73-platformer-input-style-size
afx8732 Aug 18, 2025
297bff5
Merge pull request #78 from Mannyvv/make-wpm_tester-check-equal-for-f…
Mannyvv Aug 18, 2025
ea6b564
Merge pull request #74 from Mannyvv/36-integrate-color-picker-input-m…
enskyeing Aug 18, 2025
9654914
Unstack line in audio_style_input __init__.py
MeGaGiGaGon Aug 18, 2025
c0f52f9
Fade background emojis in platformer
afx8732 Aug 18, 2025
219dd1f
Merge pull request #86 from Mannyvv/unstack-line-in-audio_style_input
Mannyvv Aug 18, 2025
a7402f9
fix stupid type error
afx8732 Aug 18, 2025
afff29c
Merge pull request #85 from Mannyvv/fade-platformer-background-emojis
MeGaGiGaGon Aug 18, 2025
377f0a2
replace some physics comments with simulation
afx8732 Aug 18, 2025
e19961f
replace letter handler property with callback list
afx8732 Aug 18, 2025
d5a4775
Merge pull request #81 from Mannyvv/71-refactor-wasd-input-to-work-wi…
MeGaGiGaGon Aug 18, 2025
e3341ad
Switch comma for exclamation mark in rpg_text_input
MeGaGiGaGon Aug 18, 2025
4f7fb56
Merge pull request #87 from Mannyvv/switch-comma-for-exclamation-mark…
Mannyvv Aug 18, 2025
4a52ea9
Make rpg_style_input keys more readable
MeGaGiGaGon Aug 18, 2025
cc61f02
add exclusions to ruff ignore
afx8732 Aug 18, 2025
937d560
capitalization on jump
afx8732 Aug 18, 2025
37de23e
Invert platformer capitalization on up arrow rather than executed jump
afx8732 Aug 18, 2025
65dacda
Update keyboard docstring to remove raises
MeGaGiGaGon Aug 18, 2025
4e0c69b
Merge branch 'main' into 82-platformer-support-capital-letters
afx8732 Aug 18, 2025
f4ea98e
Merge pull request #88 from Mannyvv/make-rpg_style_input-keys-more-re…
Mannyvv Aug 18, 2025
76146e7
Fix config.py platformer entry formatting
MeGaGiGaGon Aug 18, 2025
aab59d7
Merge pull request #90 from Mannyvv/update-keyboard-docstring
Mannyvv Aug 18, 2025
9afea8e
Remove color style from config
enskyeing Aug 18, 2025
e802321
Create color style dataclass
enskyeing Aug 18, 2025
c93df32
Merge pull request #89 from Mannyvv/82-platformer-support-capital-let…
MeGaGiGaGon Aug 18, 2025
e733c28
Add color style class support
enskyeing Aug 18, 2025
f3d03fa
Remove circle imput method
MeGaGiGaGon Aug 18, 2025
5644dce
Add color style class support
enskyeing Aug 18, 2025
e55c0ef
Merge pull request #92 from Mannyvv/remote-circle-input-method
afx8732 Aug 18, 2025
253899f
Merge branch 'main' into fix-config.py-platformer-formatting
afx8732 Aug 18, 2025
0f019b3
Merge pull request #91 from Mannyvv/fix-config.py-platformer-formatting
afx8732 Aug 18, 2025
043dde8
Add logo icon
enskyeing Aug 18, 2025
2cf7385
Make platformer work with wasd and spacebar
MeGaGiGaGon Aug 18, 2025
ae23340
Merge pull request #93 from Mannyvv/75-put-color-style-in-an-external…
Mannyvv Aug 18, 2025
8d4e6da
Merge pull request #95 from Mannyvv/make-platformer-work-with-wasd-space
Mannyvv Aug 18, 2025
35a94ce
Add favicon
enskyeing Aug 18, 2025
51a439b
Remove path from main
enskyeing Aug 18, 2025
f32c5ea
added favicon and header logo clickable to home
Mannyvv Aug 18, 2025
765e364
Merge pull request #96 from Mannyvv/94-add-logo-and-icon
Mannyvv Aug 18, 2025
359d239
Add 'monumental-monsteras/' from commit '765e364a1df5e6d1ab83c7bb9e56…
janine9vn Sep 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions monumental-monsteras/.github/workflows/lint.yaml

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For projects with static typing, mypy should be in here somewhere.

Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# GitHub Action workflow enforcing our code style.

name: Lint

# Trigger the workflow on both push (to the main repository, on the main branch)
# and pull requests (against the main repository, but from any repo, from any branch).
on:
push:
branches:
- main
pull_request:

# Brand new concurrency setting! This ensures that not more than one run can be triggered for the same commit.
# It is useful for pull requests coming from the main repository since both triggers will match.
concurrency: lint-${{ github.sha }}

jobs:
lint:
runs-on: ubuntu-latest

env:
# The Python version your project uses. Feel free to change this if required.
PYTHON_VERSION: "3.12"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not use 3.13?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3.12 is just the default that comes with the repo template, and we never bothered changing it since it didn't really matter to us.


steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Run pre-commit hooks
uses: pre-commit/action@v3.0.1
39 changes: 39 additions & 0 deletions monumental-monsteras/.gitignore

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be a .gitattributes file to mark mp3, png, and ico files as binary.

Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Files generated by the interpreter
__pycache__/
*.py[cod]

# Environment specific
.venv
venv
.env
env

# Unittest reports
.coverage*

# Logs
*.log

# PyEnv version selector
.python-version

# Built objects
*.so
dist/
build/

# IDEs
# PyCharm
.idea/
# VSCode
.vscode/
# MacOS
.DS_Store

# Since uv is not required for the project and all dependancies are pinned,
# ignore the lock file for the convenience of people using uv
uv.lock

# Useless build-specific files generated if you run the project a certain way
*.egg-info/
*.egg
18 changes: 18 additions & 0 deletions monumental-monsteras/.pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Pre-commit configuration.
# See https://github.com/python-discord/code-jam-template/tree/main#pre-commit-run-linting-before-committing

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: check-toml
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.12.2
hooks:
- id: ruff-check
- id: ruff-format
7 changes: 7 additions & 0 deletions monumental-monsteras/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Copyright 2025 Mannyvv, afx8732, enskyeing, husseinhirani, jks85, MeGaGiGaGon

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
186 changes: 186 additions & 0 deletions monumental-monsteras/README-template.md

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file probably should have been deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
# Python Discord Code Jam Repository Template

## A primer

Hello code jam participants! We've put together this repository template for you to use in [our code jams](https://pythondiscord.com/events/) or even other Python events!

This document contains the following information:

1. [What does this template contain?](#what-does-this-template-contain)
2. [How do I use this template?](#how-do-i-use-this-template)
3. [How do I adapt this template to my project?](#how-do-i-adapt-this-template-to-my-project)

> [!TIP]
> You can also look at [our style guide](https://pythondiscord.com/events/code-jams/code-style-guide/) to get more information about what we consider a maintainable code style.

## What does this template contain?

Here is a quick rundown of what each file in this repository contains:

- [`LICENSE.txt`](LICENSE.txt): [The MIT License](https://opensource.org/licenses/MIT), an OSS approved license which grants rights to everyone to use and modify your project, and limits your liability. We highly recommend you to read the license.
- [`.gitignore`](.gitignore): A list of files and directories that will be ignored by Git. Most of them are auto-generated or contain data that you wouldn't want to share publicly.
- [`pyproject.toml`](pyproject.toml): Configuration and metadata for the project, as well as the linting tool Ruff. If you're interested, you can read more about `pyproject.toml` in the [Python Packaging documentation](https://packaging.python.org/en/latest/guides/writing-pyproject-toml/).
- [`.pre-commit-config.yaml`](.pre-commit-config.yaml): The configuration of the [pre-commit](https://pre-commit.com/) tool.
- [`.github/workflows/lint.yaml`](.github/workflows/lint.yaml): A [GitHub Actions](https://github.com/features/actions) workflow, a set of actions run by GitHub on their server after each push, to ensure the style requirements are met.

Each of these files have comments for you to understand easily, and modify to fit your needs.

### Ruff: general style rules

Our first tool is Ruff. It will check your codebase and warn you about any non-conforming lines.
It is run with the command `ruff check` in the project root.

Here is a sample output:

```shell
$ ruff check
app.py:1:5: N802 Function name `helloWorld` should be lowercase
app.py:1:5: ANN201 Missing return type annotation for public function `helloWorld`
app.py:2:5: D400 First line should end with a period
app.py:2:5: D403 First word of the first line should be capitalized: `docstring` -> `Docstring`
app.py:3:15: W292 No newline at end of file
Found 5 errors.
```

Each line corresponds to an error. The first part is the file path, then the line number, and the column index.
Then comes the error code, a unique identifier of the error, and then a human-readable message.

If, for any reason, you do not wish to comply with this specific error on a specific line, you can add `# noqa: CODE` at the end of the line.
For example:

```python
def helloWorld(): # noqa: N802
...

```

This will ignore the function naming issue and pass linting.

> [!WARNING]
> We do not recommend ignoring errors unless you have a good reason to do so.

### Ruff: formatting

Ruff also comes with a formatter, which can be run with the command `ruff format`.
It follows the same code style enforced by [Black](https://black.readthedocs.io/en/stable/index.html), so there's no need to pick between them.

### Pre-commit: run linting before committing

The second tool doesn't check your code, but rather makes sure that you actually *do* check it.

It makes use of a feature called [Git hooks](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) which allow you to run a piece of code before running `git commit`.
The good thing about it is that it will cancel your commit if the lint doesn't pass. You won't have to wait for GitHub Actions to report issues and have a second fix commit.

It is *installed* by running `pre-commit install` and can be run manually by calling only `pre-commit`.

[Lint before you push!](https://soundcloud.com/lemonsaurusrex/lint-before-you-push)

#### List of hooks

- `check-toml`: Lints and corrects your TOML files.
- `check-yaml`: Lints and corrects your YAML files.
- `end-of-file-fixer`: Makes sure you always have an empty line at the end of your file.
- `trailing-whitespace`: Removes whitespaces at the end of each line.
- `ruff-check`: Runs the Ruff linter.
- `ruff-format`: Runs the Ruff formatter.

## How do I use this template?

### Creating your team repository

One person in the team, preferably the leader, will have to create the repository and add other members as collaborators.

1. In the top right corner of your screen, where **Clone** usually is, you have a **Use this template** button to click.
![use-this-template-button](https://docs.github.com/assets/images/help/repository/use-this-template-button.png)
2. Give the repository a name and a description.
![create-repository-name](https://docs.github.com/assets/images/help/repository/create-repository-name.png)
3. Click **Create repository from template**.
4. Click **Settings** in your newly created repository.
![repo-actions-settings](https://docs.github.com/assets/images/help/repository/repo-actions-settings.png)
5. In the "Access" section of the sidebar, click **Collaborators**.
![collaborators-settings](https://github.com/python-discord/code-jam-template/assets/63936253/c150110e-d1b5-4e4d-93e0-0a2cf1de352b)
6. Click **Add people**.
7. Insert the names of each of your teammates, and invite them. Once they have accepted the invitation in their email, they will have write access to the repository.

You are now ready to go! Sit down, relax, and wait for the kickstart!

> [!IMPORTANT]
> Don't forget to change the project name, description, and authors at the top of the [`pyproject.toml`](pyproject.toml) file, and swap "Python Discord" in the [`LICENSE.txt`](LICENSE.txt) file for the name of each of your team members or the name of your team *after* the start of the code jam.

### Using the default pip setup

Our default setup includes a dependency group to be used with a [virtual environment](https://docs.python.org/3/library/venv.html).
It works with pip and uv, and we recommend this if you have never used any other dependency manager, although if you have, feel free to switch to it.
More on that [below](#how-do-i-adapt-this-template-to-my-project).

Dependency groups are a relatively new feature, specified in [PEP 735](https://peps.python.org/pep-0735/).
You can read more about them in the [Python Packaging User Guide](https://packaging.python.org/en/latest/specifications/dependency-groups/).

#### Creating the environment

Create a virtual environment in the folder `.venv`.

```shell
python -m venv .venv
```

#### Entering the environment

It will change based on your operating system and shell.

```shell
# Linux, Bash
$ source .venv/bin/activate
# Linux, Fish
$ source .venv/bin/activate.fish
# Linux, Csh
$ source .venv/bin/activate.csh
# Linux, PowerShell Core
$ .venv/bin/Activate.ps1
# Windows, cmd.exe
> .venv\Scripts\activate.bat
# Windows, PowerShell
> .venv\Scripts\Activate.ps1
```

#### Installing the dependencies

Once the environment is created and activated, use this command to install the development dependencies.

```shell
pip install --group dev
```

#### Exiting the environment

Interestingly enough, it is the same for every platform.

```shell
deactivate
```

Once the environment is activated, all the commands listed previously should work.

> [!IMPORTANT]
> We highly recommend that you run `pre-commit install` as soon as possible.

## How do I adapt this template to my project?

If you wish to use Pipenv or Poetry, you will have to move the dependencies in [`pyproject.toml`](pyproject.toml) to the development dependencies of your tool.

We've included a porting to both [Poetry](samples/pyproject.toml) and [Pipenv](samples/Pipfile) in the [`samples` folder](samples).
Note that the Poetry [`pyproject.toml`](samples/pyproject.toml) file does not include the Ruff configuration, so if you simply replace the file then the Ruff configuration will be lost.

When installing new dependencies, don't forget to [pin](https://pip.pypa.io/en/stable/topics/repeatable-installs/#pinning-the-package-versions) them by adding a version tag at the end.
For example, if I wish to install [Click](https://click.palletsprojects.com/en/8.1.x/), a quick look at [PyPI](https://pypi.org/project/click/) tells me that `8.1.7` is the latest version.
I will then add `click~=8.1`, without the last number, to my requirements file or dependency manager.

> [!IMPORTANT]
> A code jam project is left unmaintained after the end of the event. If the dependencies aren't pinned, the project will break after any major change in an API.

## Final words

> [!IMPORTANT]
> Don't forget to replace this README with an actual description of your project! Images are also welcome!

We hope this template will be helpful. Good luck in the jam!
58 changes: 58 additions & 0 deletions monumental-monsteras/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Monumental Monsteras CJ25 Project
Monumental Monsteras CJ25 Project is a typing speed test,
but with a twist: You cannot type with a normal keyboard.
Copy link

@ZeroIntensity ZeroIntensity Sep 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"You" should not be capitalized here. Edit: Nevermind, I don't know what I was thinking here.

You can only use the **wrong tool for the job**.

Try different wrong methods of writing text, with a score at
the end if you would like to flex on your friends.

Input methods:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where are the input methods?


# Running the project
## Using `uv` (recommended)

The recommended way to run the project is using `uv`.

If you do not have `uv` installed, see https://docs.astral.sh/uv/getting-started/installation/

```
$ git clone https://github.com/Mannyvv/cj25-monumental-monsteras-team-repo.git
$ cd cj25-monumental-monsteras-team-repo.git

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is wrong. The .git at the end is not included in the directory containing the clone.

$ uv run src/main.py
```

## Without `uv`

```
$ git clone https://github.com/Mannyvv/cj25-monumental-monsteras-team-repo.git
$ cd cj25-monumental-monsteras-team-repo.git
$ py -3.12 -m venv .venv
$ py -m pip install .
$ py src/main.py
```

# Contributing
## Setting up the project for development
If you do not have `pre-commit` installed, see https://pre-commit.com/#installation

You can also use `uvx pre-commit` to run `pre-commit` commands without permanently installing it.

Once you have `pre-commit` installed, run this command to set up the commit hooks.
```
$ pre-commit install
```

## Development process
If the change you are making is large, open a new
issue and self-assign to make sure no duplicate work is done.

When making a change:
1. Make a new branch on the main repository
2. Make commits to the branch
3. Open a PR from that branch to main

You can run the pre-commit checks locally with:
```
$ pre-commit run -a
```
If you installed the commit hook in the previous step, they should also be run locally on commits.
Loading