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 optional body? #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 typo It should be "guest" and not "gest" ``` ```sh refactor(cli): drop support for node 6 BREAKING 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`.