diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a825ac2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.venv + + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr diff --git a/README.md b/README.md index d7e968e..4f0e5db 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ In this README, we will highlight the following elements of template-project cre - [Getting started](#getting-started) - [Course info configuration file](#course-info-configuration-file) - [Course ignore file](#course-ignore-file) +- [Course dependencies](#course-dependencies) - [Sample code](#sample-code) - [Testing](#testing) - [Useful links](#useful-links) @@ -44,7 +45,7 @@ All you need to do is click the Use this template button (you must be ![Use this template][file:use-template-blur] The most convenient way of getting your new project from GitHub is the Get from VCS action available on the Welcome Screen, -where you can filter your GitHub repository by its name. +where you can filter your GitHub repository by its name. ![Get from version control][file:get_from_vcs.png] @@ -57,6 +58,7 @@ A generated JetBrains Academy Python Course Template repository contains the fol . ├── LICENSE ├── README.md README +├── requirements.txt Course dependencies ├── common Course sources common for all sections │ └── resources Resources - images, icons ├── course-info.yaml Course info configuration file @@ -117,9 +119,24 @@ README.md You can find more information about the course preview in the [Course preview][ref:course.preview] section. Information about creating a course archive and uploading it to the marketplace is in the [Course distribution][ref:course.distribution] section. +## Course dependencies +You should write all your course dependencies in the [`requirements.txt`](requirements.txt) file. +It will be used for creating a virtual environment before students begin the course. + +Before developing the course, you should set up the environment yourself: +* For Windows: + ```shell + python3 -m venv .venv && .\.venv\Scripts\activate && pip install -r requirements.txt + ``` + +* For Linux/MacOS: + ```bash + python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt + ``` + ## Sample code -The prepared template provides an example of a course with one section, two lessons, and five tasks in total. +The prepared template provides an example of a course with one section, two lessons, and six tasks in total. ![Course structure in the course creator mode][file:course-structure-author] @@ -128,9 +145,6 @@ Students will see almost the same course structure as the educator (course autho ![Course structure in the course student mode][file:course-structure-student] -The main difference is in framework lessons, which display -only task files, without intermediate steps. - You can read more about framework lessons in the official documentation in the [Framework Lessons Creation][ref:framework.lessons.creation] section. > **Note** @@ -144,8 +158,8 @@ You can read more about tasks in the official documentation in the [Task][ref:ta ## Testing -To check the programming exercises for [**edu**][ref:tasks] tasks, you need to write tests ungin [unittest](https://docs.python.org/3/library/unittest.html) framework. - +To check the programming exercises for [**edu**][ref:tasks] tasks, +you need to write tests using [unittest](https://docs.python.org/3/library/unittest.html) framework. You can find little examples of programming tasks in the repository in the `test.py` files: in [course lesson][file:course.lesson.tests] and [course framework lesson][file:course.framework.lesson.tests]. diff --git a/common/resources/images/course-structure-author.png b/common/resources/images/course-structure-author.png index ceb51eb..76fe2f5 100644 Binary files a/common/resources/images/course-structure-author.png and b/common/resources/images/course-structure-author.png differ diff --git a/common/resources/images/course-structure-student.png b/common/resources/images/course-structure-student.png new file mode 100644 index 0000000..ca8ccec Binary files /dev/null and b/common/resources/images/course-structure-student.png differ diff --git a/course_section/course_lesson/multi_file_task/task-info.yaml b/course_section/course_lesson/multi_file_task/task-info.yaml index f0f1c35..d479117 100644 --- a/course_section/course_lesson/multi_file_task/task-info.yaml +++ b/course_section/course_lesson/multi_file_task/task-info.yaml @@ -14,7 +14,7 @@ files: length: 24 placeholder_text: pass - name: __init__.py - visible: true + visible: false - name: tests/output.txt visible: false - name: tests/input.txt diff --git a/course_section/course_lesson/quiz_task/task-info.yaml b/course_section/course_lesson/quiz_task/task-info.yaml index 939dc85..39c4031 100644 --- a/course_section/course_lesson/quiz_task/task-info.yaml +++ b/course_section/course_lesson/quiz_task/task-info.yaml @@ -10,5 +10,5 @@ files: - name: main.py visible: true - name: __init__.py - visible: true + visible: false custom_name: Course quiz task diff --git a/course_section/course_lesson/theory_task/task-info.yaml b/course_section/course_lesson/theory_task/task-info.yaml index 6fcb491..508426c 100644 --- a/course_section/course_lesson/theory_task/task-info.yaml +++ b/course_section/course_lesson/theory_task/task-info.yaml @@ -6,4 +6,4 @@ files: - name: invisible_main.py visible: false - name: __init__.py - visible: true + visible: false diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..1af03cd --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +# Here you should write the course dependecies +numpy==1.26.4