From c45e6f6f9e77ffe62a4454812890d2be758f6995 Mon Sep 17 00:00:00 2001 From: Maab Mohamedkhair <231225om@aou.edu.om> Date: Wed, 27 Nov 2024 18:42:27 +0400 Subject: [PATCH] Initial commit --- .github/workflows/ci-checks.yml | 18 +++++ .gitignore | 7 ++ .ls-lint.yml | 17 +++++ .markdownlint.yml | 39 +++++++++++ .vscode/extensions.json | 29 ++++++++ .vscode/settings.json | 120 ++++++++++++++++++++++++++++++++ LICENSE | 21 ++++++ README.md | 0 8 files changed, 251 insertions(+) create mode 100644 .github/workflows/ci-checks.yml create mode 100644 .gitignore create mode 100644 .ls-lint.yml create mode 100644 .markdownlint.yml create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 LICENSE create mode 100644 README.md diff --git a/.github/workflows/ci-checks.yml b/.github/workflows/ci-checks.yml new file mode 100644 index 0000000..a350b06 --- /dev/null +++ b/.github/workflows/ci-checks.yml @@ -0,0 +1,18 @@ +name: ET CI Checks + +on: [push, pull_request, workflow_dispatch] + +jobs: + ls_linting: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ls-lint/action@v2.2.3 + + md_linting: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: DavidAnson/markdownlint-cli2-action@v18 + with: + globs: '**/*.md' diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dad0f86 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +__pycache__ +*.pytest_cache +venv/ +.env +*.db +*.idea +*.ruff_cache diff --git a/.ls-lint.yml b/.ls-lint.yml new file mode 100644 index 0000000..311a9cb --- /dev/null +++ b/.ls-lint.yml @@ -0,0 +1,17 @@ +ls: + .dir: snake_case + .*: snake_case + .md: snake_case | regex:[0-9A-Z\-]+ + .txt: snake_case + .yml: snake_case + +ignore: + - .ls-lint.yml + - .markdownlint.yml + - .git + - .github + - .vscode + - venv + - .ruff_cache + - .pytest_cache + - __pycache__ diff --git a/.markdownlint.yml b/.markdownlint.yml new file mode 100644 index 0000000..d9f838d --- /dev/null +++ b/.markdownlint.yml @@ -0,0 +1,39 @@ +# Focuses on core readability and consistency practices + +# Headings +MD003: # Heading style + style: consistent +MD004: # Unordered list style + style: consistent +MD007: # Unordered list indentation + indent: 2 + +# Line length and whitespace +MD013: # Line length + line_length: 80 + strict: false + stern: false + +# Spacing and formatting +MD022: # Headings should be surrounded by blank lines + lines_above: 1 + lines_below: 1 +MD023: # Headings must start at the beginning of the line +MD030: # Spaces after list markers + ul_single: 1 + ol_single: 1 + ul_multi: 1 + ol_multi: 1 + +# Emphasis and strong +MD036: # Emphasis used instead of a heading + punctuation: ".,;:!?" + +# General best practices +MD047: true # Files should end with a single newline character +MD048: # Code block style (consistent backticks) + style: consistent + +# Disable some strict rules for beginners +MD024: false # Allow multiple headings with the same content +MD041: false # First line in a file being a top-level heading diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..0768f8d --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,29 @@ +{ + "recommendations": [ + // For Pair Programming + "MS-vsliveshare.vsliveshare", + + // For Git & GitHub + "mhutchie.git-graph", + "eamodio.gitlens", + "GitHub.vscode-pull-request-github", + "donjayamanne.githistory", + + // For programming generally + "streetsidesoftware.code-spell-checker", + "leodevbro.blockman", + "alefragnani.project-manager", + "vscode-icons-team.vscode-icons", + "alefragnani.bookmarks", + "visualstudioexptteam.vscodeintellicode", + "aaron-bond.better-comments", + "christian-kohler.path-intellisense", + "usernamehw.errorlens", + "tamasfe.even-better-toml", + + // For writing Markdown + "DavidAnson.vscode-markdownlint", + "yzhang.markdown-all-in-one", + "bierner.markdown-preview-github-styles" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..4620061 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,120 @@ +{ + // https://vscode-docs.readthedocs.io/en/stable/customization/userandworkspace/#default-settings + //-------- Editor configuration -------- + + // Controls auto save of editors that have unsaved changes.: https://code.visualstudio.com/docs/editor/codebasics#_save-auto-save + "files.autoSave": "onFocusChange", + + // Format a file on save. A formatter must be available. + "editor.formatOnSave": true, + + // Controls whether the editor should automatically format the pasted content. A formatter must be available. + "editor.formatOnPaste": true, + + // Controls whether the editor should render indent quides + "editor.guides.indentation": true, + + // Controls whether the editor should highlight the active indent guide. + "editor.guides.highlightActiveIndentation": true, + + // Controls the rendering size of tabs in characters. Accepted values: "auto", 2, 4, 6, etc. If set to "auto", the value will be guessed when a file is opened. + "editor.tabSize": 2, + + // Defines a default formatter which takes precedence over all other formatter settings. Must be the identifier of an extension contributing a formatter + "editor.defaultFormatter": "esbenp.prettier-vscode", + + // Controls bracket pair colorization is enabled or not + "editor.bracketPairColorization.enabled": true, + + // Controls whether bracket pair guides are enabled or not. (true, active, false) + "editor.guides.bracketPairs": "active", + + // Controls whether horizontal bracket pair guides are enabled or not. + "editor.guides.bracketPairsHorizontal": "active", + + // Controls whether the editor should highlight the active bracket pair. + "editor.guides.highlightActiveBracketPair": true, + + // Controls whether the editor has linked editing enabled. + "editor.linkedEditing": true, + + //-------- HTML configuration -------- + + // Enable/disable auto closing of HTML tags + "html.autoClosingTags": true, + + // Configures if the built-in HTML language suggests HTML5 tags, properties and values. + "html.suggest.html5": true, + + // Defines a default HTML formatter which takes precedence over all other formatter settings. Must be the identifier of an extension contributing a formatter + "[html]": { + "editor.defaultFormatter": "vscode.html-language-features" + }, + + //-------- Emmet configuration -------- + + // Enables completion when you are writing Emmet appreveation. + "html-css-class-completion.enableEmmetSupport": true, + + //-------- JavaScript configuration -------- + + // Enable/disable auto closing of JSX tags. + "javascript.autoClosingTags": true, + + // Enable/disable auto import suggestions. + "javascript.suggest.autoImports": true, + + // Enable/disable automatic updating of import paths when you rename or move a file in VS Code. + "javascript.updateImportsOnFileMove.enabled": "always", + + // Enable/disable suggestoins for paths in import statement and require calls. (change it to false to be able to use Path Intellisense extension) + "javascript.suggest.paths": false, + + //-------- TypeScript configuration -------- + + // Enable/disable auto closing of JSX tags. + "typescript.autoClosingTags": true, + + // Enable/disable auto import suggestions. + "typescript.suggest.autoImports": true, + + // Enable/disable automatic updating of import paths when you rename or move a file in VS Code. + "typescript.updateImportsOnFileMove.enabled": "always", + + // Enable/disable suggestoins for paths in import statement and require calls. (change it to false to be able to use Path Intellisense extension) + "typescript.suggest.paths": false, + + //-------- Work Bench configuration -------- + + // Controls whether a top border is drawn on tabs for editors that have unsaved changes. + "workbench.editor.highlightModifiedTabs": true, + + //-------- Files configuration -------- + + // When enabled, will trim all new lines after the final new line at the end of the file when saving it. + "files.trimFinalNewlines": true, + + // When enabled, insert a new final line at the end of the file when saving it. + "files.insertFinalNewline": true, + + //-------- Live Server configuration -------- + + // Set Custom Port Number of Live Server. Set 0 if you want random port. + "liveServer.settings.port": 5504, + + //-------- Markdown configuration -------- + + // Enable path suggestoins while writing links in markdown files + "markdown.suggest.paths.enabled": true, + "markdown.validate.enabled": true, + "markdown.preview.breaks": true, + + // Defines a default markdown formatter which takes precedence over all other formatter settings. Must be the identifier of an extension contributing a formatter + "[markdown]": { + "editor.defaultFormatter": "DavidAnson.vscode-markdownlint" + }, + "markdownlint.configPath": ".markdownlint.yml", + + // Enable/disable update table of contents on save + "markdown.extension.toc.updateOnSave": false +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6e628e4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 MIT Emerging Talent + +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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29