GC-STEM/it140-m2-assignment: what the IT 140 Module Two starter repo actually contains
IT 140 Module Two assignment for developing a beginner Python name-and-age program while practicing the Software Development Life Cycle (SDLC), including analysis, design, construction, testing, and debugging.
At a glance
- What is it?
- This is a course scaffold, not a library. It ships two assignment folders, a pinned Ruff config and a README that walks students from a Codio virtual desktop to a submitted GitHub repository, and it is worth understanding before you clone it.
- Who is it for?
- Adopt this repository only if you are enrolled in IT 140 and were told to work from the Module Two starter: it is a graded assignment scaffold, and the README explicitly asks students not to fork it or press the template button, but to create a private copy with gh repo create --template instead. Do not adopt it as a general Python project template, a teaching library or a CI example, because it contains no reusable package code, no tests and no licence file.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 4 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What the IT 140 Module Two assignment repository is for
This repository is the distribution mechanism for one graded task in SNHU's IT 140 Introduction to Scripting course, titled 2-3: Software Development Introduction. The README describes it as required and graded, with one submission, two graded files and one ungraded supporting file. The work itself is a beginner Python program that asks for a name and an age, which is a small enough scope that the assignment is really about the process around the code: analysis, design, construction, testing and debugging, the phases the repository topics list as the SDLC.
The audience is therefore narrow and specific. It is a student who has already completed the GitHub and Codio sections of the Module One setup tasks, since the README lists those as a required prerequisite before starting. The repository also expects the student to have worked through the Module One and Two zyBooks participation and lab activities in D2L Brightspace, which it marks as recommended rather than required.
If you are not in that position, nothing here is aimed at you. There is no library to import, no CLI to install and no service to run. The value is in the folder layout, the pinned linter configuration and the step-by-step instructions that produce a private copy of the assignment under the student's own GitHub account.
How the starter repo is organised: Part-A, Part-B and a pinned Ruff config
The top level holds two assignment directories, Part-A/ and Part-B/, alongside README.md, pyproject.toml, a .vscode/ directory, .gitignore and .gitattributes. The split matters because the submission requires two graded files plus one ungraded supporting file, and the README walks through Part A and Part B as separate numbered procedures with their own steps.
The only configuration file with content worth reading is pyproject.toml. It carries a warning comment telling students not to modify it and to file a GitHub issue or pull request if something is wrong with it. Under [tool.ruff] it sets line-length = 80, and under [tool.ruff.lint] it selects the rule families ["E", "F"], which are pycodestyle errors and Pyflakes. That is a deliberately minimal lint surface: it catches unused imports, undefined names and basic style violations without imposing a broader opinionated ruleset on a first-term student. The 80-character limit is the same width the README uses in its own command blocks.
The .vscode/ directory implies the intended editor is Visual Studio Code, which matches the repository topic list and the README instruction to type code . to open the project after cloning. Note what is absent: there is no test runner configuration, no CI workflow file at the top level, and no packaging metadata such as a build backend or project name. The pyproject.toml exists to configure Ruff, not to make the directory installable.
Installing the IT 140 Module Two starter and running your first check
The README does not describe a package installation, because there is no package. Setup means creating your own private copy of the template under your GitHub account from a terminal. The README states that the same commands work on the Codio Virtual Desktop, Linux, macOS and Windows, provided Windows users run them in Git Bash rather than PowerShell or Command Prompt.
The block below is the setup sequence as the README gives it. The first line moves into your local Repos directory, the second configures Git to use your GitHub credentials, the third stars the upstream repository through the GitHub API, the fourth creates a private repository from the template and clones it, and the last prints the configured remotes.
cd ~/Repos
gh auth setup-git
gh api --method PUT user/starred/GC-STEM/it140-m2-assignment
gh repo create it140-m2-assignment --template GC-STEM/it140-m2-assignment --private --clone
cd it140-m2-assignment
git remote -vAccording to the README, the output of git remote -v should resemble its screenshot except with your own GitHub username in place of the example account. That is the check that the clone points at your copy and not at the upstream organisation. The README also warns that these commands only work the first time you run them successfully, and that restarting or updating the repository later requires the Technical Support section instead.
Once the clone exists, the README offers two paths: type code . and press Enter to continue straight into Part A, or type exit to close the terminal and return later. Before any of this, Codio Virtual Desktop users are told to run update_it140.sh and look for Failures: 0 and the Restart required message in the output.
The fork and template buttons the README tells you not to press
The most unusual thing about this repository is its opening instructions. A highlighted block tells readers not to fork the repo and not to click the green Use this template button, then directs them to the gh repo create --template command instead. For anyone who has used GitHub templates before, this inverts the normal workflow, and it is the single design decision most likely to confuse a first-term student who skims the page.
The reason is visible in the surrounding text. The README wants each student to end up with a private repository under their own account, created through the GitHub CLI, which is why the command carries --private and --clone. A fork would keep a public link back to the upstream repository and a template-button copy would be created through the web interface, bypassing the CLI steps the assignment is trying to teach. Whether that distinction is worth the friction is a fair question. The README compensates by showing the expected git remote -v output as an image, so a student who does fork or use the template button has at least one visible signal that something differs.
The same block asks readers to star the repository to bookmark it, and describes Watch as optional, with an explicit note that students are not recommended to watch because it generates unnecessary notifications. Faculty are pointed toward Watch then Custom then Releases + Issues. That asymmetry, students off and faculty on, is a deliberate choice about notification volume rather than a technical constraint.
Where this repository is the wrong tool
Treating this as a Python project template is a mistake. There is no importable module, no entry point declared in pyproject.toml, no dependency list and no test suite. The Ruff configuration is the only tooling it pins, and the file itself tells you not to modify it. If your goal is to start a real Python application, you would be copying a course scaffold and inheriting its constraints, including an 80-character line limit and a two-family lint selection, without any of the packaging or testing setup you would want.
The licence position is also unresolved. The repository has no licence file at the top level and the metadata records the licence as unknown. For a student submitting coursework inside the course, that is not a practical problem. For anyone considering reusing the content elsewhere, it means there is no stated permission to do so, and the README's own instruction to open an issue or pull request for problems with the repository is the only route it offers for changes.
There is one more boundary worth naming. This repository is a starter, not a reference implementation. The README describes setup, Part A, Part B, saving to GitHub and submitting, but it does not document rollback, and it does not document what to do if you have already created the repository once and want to start over beyond pointing at the Technical Support section. The troubleshooting path for a failed setup is a section reference, not a procedure you can read in place.
How this differs from a normal Python starter template
The obvious comparison is a general-purpose Python template such as a Cookiecutter or Copier scaffold, or a framework's own project generator. Those tools create a directory with packaging metadata, a test directory, a CI workflow and a licence, and they leave you to fill in the application logic. This repository inverts that: the application logic is the whole point and it is left to the student, while the surrounding infrastructure is kept to a single Ruff configuration and an editor settings folder.
The difference in approach is about who supplies the structure. A general template assumes the developer already knows what a project needs and wants the boilerplate removed. The IT 140 starter assumes the opposite, that the student is learning what a project looks like, and therefore supplies a README that narrates every step from launching a virtual desktop to verifying the Git remote. The setup commands are the deliverable as much as the Python file is.
That also explains the choice to route students through the GitHub CLI rather than the web interface. A template generator optimises for the fastest path to a working directory. This repository optimises for the student having typed gh auth setup-git and read the output of git remote -v at least once. If you already know those commands, the scaffold will feel like overhead, and that is the correct reading.
Maintenance, versions and what upgrading actually means
The README carries a repository version of 1.0.4 with a version timestamp of 2026-09-07-12-00, and the last push to the repository was on 2026-09-14. There are no releases recorded, so versioning happens through README edits and commits rather than tagged artifacts. The README notes that IT 140 began using GitHub repositories for starter files, development resources and documentation for the 2026 C-5 term, which places the whole distribution model as recent.
Upgrading is not a package operation. The README states plainly that the setup commands only work the first time you run them successfully, and that updating your repository later or starting over is covered in the Technical Support section rather than in the main flow. In practice that means a student who falls behind a README revision has to reconcile their private copy manually, and the README does not describe a merge or rebase procedure for that case.
On licensing, the repository provides no licence file and the metadata records the licence as unknown, so there is no stated grant of rights beyond what the course itself provides. Anyone outside the course should treat the absence of a licence as the operative fact rather than assuming permission. Inside the course, the README's instruction to file a GitHub issue or pull request against the upstream repository is the intended channel for fixes, and the pyproject.toml warning comment repeats that instruction for the configuration file specifically.
Editorial conclusion
Adopt this repository only if you are enrolled in IT 140 and were told to work from the Module Two starter: it is a graded assignment scaffold, and the README explicitly asks students not to fork it or press the template button, but to create a private copy with gh repo create --template instead. Do not adopt it as a general Python project template, a teaching library or a CI example, because it contains no reusable package code, no tests and no licence file. Before you start, verify three things: that you have finished the Module One GitHub and Codio setup tasks, that gh auth setup-git succeeds in your terminal, and that git remote -v prints your own GitHub username rather than the upstream organisation.
Frequently asked questions
Should I fork the GC-STEM/it140-m2-assignment repository or use the template button?
Neither. The README explicitly says not to fork the repo and not to click the green Use this template button, and instead directs you to create a private copy with the gh repo create --template command block.
What Python tooling does the GC-STEM/it140-m2-assignment repository configure?
It ships a pyproject.toml that configures Ruff with line-length = 80 and selects the E and F lint rule families. The file carries a warning telling students not to modify it and to open a GitHub issue or pull request if something is wrong with it.
What do I need to have finished before starting the GC-STEM/it140-m2-assignment work?
The README lists the GitHub and Codio sections of the Module One setup tasks as a required prerequisite, and completing the Module One and Two zyBooks participation and lab activities in D2L Brightspace as recommended.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/gc-stem-it140-m2-assignment)