Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/madlabsinc/teachcode
A tool to develop and improve a student’s programming skills by introducing the earliest lessons of coding.
https://github.com/madlabsinc/teachcode
cli commander github hacktoberfest inquirer javascript node-js nodejs nodejs-cli python python3 teaching
Last synced: 4 days ago
JSON representation
A tool to develop and improve a student’s programming skills by introducing the earliest lessons of coding.
- Host: GitHub
- URL: https://github.com/madlabsinc/teachcode
- Owner: madlabsinc
- License: gpl-3.0
- Created: 2018-10-28T05:50:27.000Z (about 6 years ago)
- Default Branch: next
- Last Pushed: 2024-01-09T17:28:18.000Z (10 months ago)
- Last Synced: 2024-05-02T05:58:45.707Z (6 months ago)
- Topics: cli, commander, github, hacktoberfest, inquirer, javascript, node-js, nodejs, nodejs-cli, python, python3, teaching
- Language: JavaScript
- Homepage: https://teachcode.surge.sh
- Size: 2.22 MB
- Stars: 374
- Watchers: 7
- Forks: 64
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-cli-apps - teachcode - Guide for the earliest lessons of coding. (Command Line Learning / Internet Speedtest)
- fucking-awesome-cli-apps - teachcode - Guide for the earliest lessons of coding. (Command Line Learning / Internet Speedtest)
README
teachcode
A tool to develop and improve a student’s programming skills by introducing the earliest lessons of coding.
---
**Chat: _[Telegram](https://t.me/teach_code)_**
**Donate: _[PayPal](https://www.paypal.me/jamesgeorge007), [Patreon](https://www.patreon.com/jamesgeorge007)_**
## Installation
`npm install -g teach-code`
## How to use
Users are required to solve 30 tasks that take them through the basic constructs of the programming language of their choice. The tasks are designed in such a way that the complexity increases as users progress through the tasks. One can't move forward until the current task is completed. Previously submitted tasks can be viewed if he/she wants but can't be worked on again.
- `teachcode` expects you to have a GitHub account. Make sure that you create one if you don't have one. [Learn more - Github Signup](https://docs.github.com/en/github/getting-started-with-github/signing-up-for-a-new-github-account)
- Navigate to the directory of your choice and type in `teachcode init`.
- Choose your track. Currently, we provide two tracks, Python and Javascript
- Enter your name. We ask for your name mainly for greeting purpose.
- Enter your GitHub username.
- Enter your GitHub personal token with repo access. [Learn more - GitHub Personal Token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)
- Now type in `cd teachcode-solutions`.
- Type in `teachcode fetchtask`.
- Hurray :tada: you've got your first task.
- Type in your solution for the task in the file `task1.py` (opted learning track) using any code editor of choice. We recommend using [VS Code](https://code.visualstudio.com/)
- Now type in `teachcode submit` to submit your solution.
- Enter your Git credentials when prompted. [Learn more - Git Credentials](https://docs.github.com/en/github/getting-started-with-github/getting-started-with-git)
- Fetch the next task with `teachcode fetchtask`.## Available Commands
| command | description |
| ------------------------- | ------------------------------------------------------------------------------------- |
| teachcode init | Initializes all the tasks |
| teachcode fetchtask [key] | Fetches the task correponding to the key if provided (defaults to the very next task) |
| teachcode submit | Submits the current task |
| teachcode showkeys | Lists all the keys associated with the submitted tasks |## Contributing
Contributions of any kind are welcomed. Make sure that you go through these [guidelines](https://teachcode.madlabs.xyz/guide/contributing.html).
### How should I write a commit message?
This project uses [Commitlint](https://github.com/conventional-changelog/commitlint/#what-is-commitlint) to check if the commit messages meet the [conventional commit format](https://www.conventionalcommits.org/en/v1.0.0/).
The full pattern is:
```sh
type(scope?): subject #scope is optionalbody? #body is optional
footer? #footer is optional
```Following that pattern, your commit messages should look like these:
```sh
feat: activate open collective
``````sh
chore: correct typoIt should be "guest" and not "gest"
``````sh
refactor(cli): drop support for node 6BREAKING CHANGE: you will need to update your node version to keep using this CLI
This closes #123
```### How should I name my branches?
Prefix your branch names with `feat/`, `docs/` or `hotfix/` for feature proposals, documentation and bug fixes, respectively.
## License
Licensed under `GNU General Public License V3.0`.