summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorjwansek <eddie.atten.ea29@gmail.com>2022-04-28 20:11:13 +0100
committerjwansek <eddie.atten.ea29@gmail.com>2022-04-28 20:11:13 +0100
commitfd13b16ba823bcd7b6f9c7163e7e75585855d33f (patch)
tree15496a2f336488f90810dbdf6f343441aff6135e /docs
parentd5c63e2ed3a5feaaa51e9cb315e6c0601ae01813 (diff)
downloadSmarker-fd13b16ba823bcd7b6f9c7163e7e75585855d33f.tar.gz
Smarker-fd13b16ba823bcd7b6f9c7163e7e75585855d33f.zip
Updated readme and docs
Diffstat (limited to 'docs')
-rw-r--r--docs/source/_static/readme_error.pngbin0 -> 42530 bytes
-rw-r--r--docs/source/_static/readme_functionanalysis.pngbin0 -> 48916 bytes
-rw-r--r--docs/source/_static/readme_pytest.pngbin0 -> 52787 bytes
-rw-r--r--docs/source/_static/readme_runtimeanalysis.pngbin0 -> 16063 bytes
-rw-r--r--docs/source/assessmentyaml.rst47
-rw-r--r--docs/source/conf.py4
-rw-r--r--docs/source/index.rst29
-rw-r--r--docs/source/readme.md24
8 files changed, 99 insertions, 5 deletions
diff --git a/docs/source/_static/readme_error.png b/docs/source/_static/readme_error.png
new file mode 100644
index 0000000..9d9ac90
--- /dev/null
+++ b/docs/source/_static/readme_error.png
Binary files differ
diff --git a/docs/source/_static/readme_functionanalysis.png b/docs/source/_static/readme_functionanalysis.png
new file mode 100644
index 0000000..b51a1dd
--- /dev/null
+++ b/docs/source/_static/readme_functionanalysis.png
Binary files differ
diff --git a/docs/source/_static/readme_pytest.png b/docs/source/_static/readme_pytest.png
new file mode 100644
index 0000000..05ae579
--- /dev/null
+++ b/docs/source/_static/readme_pytest.png
Binary files differ
diff --git a/docs/source/_static/readme_runtimeanalysis.png b/docs/source/_static/readme_runtimeanalysis.png
new file mode 100644
index 0000000..9f1e636
--- /dev/null
+++ b/docs/source/_static/readme_runtimeanalysis.png
Binary files differ
diff --git a/docs/source/assessmentyaml.rst b/docs/source/assessmentyaml.rst
new file mode 100644
index 0000000..1d4cb14
--- /dev/null
+++ b/docs/source/assessmentyaml.rst
@@ -0,0 +1,47 @@
+.. _assessmentyaml:
+
+Assessment configuration yaml
+=============================
+
+A yaml file defines how assessments work. Here's the `example configuration <https://github.com/jwansek/Smarker/blob/master/ExampleAssessments/example.yml>`_ on git:
+
+.. literalinclude:: ../../ExampleAssessments/example.yml
+ :linenos:
+ :language: yaml
+
+Configuration files must have a name, from which the assessment will be referred to from now often
+Pay attention to the use of lists, even if there is only one file or class, it must still be in a list
+Tests are put into pytest and must include the name of the module in functions and classes as shown,
+for example it's ``example.MyDate()`` not just ``MyDate``. You must use exactly 4 spaces of indentation.
+
+``run:`` blocks can analyse the output to stdout of a python file, or read any file. Add a
+``monitor:`` block to monitor a specific file or omit to analyse stdout.
+
+``dependencies:`` blocks add required files using ``files:`` and pypi dependencies using ``libraries:``.
+
+``produced_files`` lists files that are produced by the code. To analyse files they must be in
+this list. They will be deleted after the program runs.
+
+Functions and methods have a number in their arguments. An error will be shown in the report
+if not enough arguments are found.
+
+Assessment configurations are added to the database:
+
+.. code-block:: bash
+
+ python3 Smarker/assessments.py -c ExampleAssessments/example.yml -e 1
+
+The ``-e`` flag is the number of student enrolled and is optional. The assessments in the
+database are listed:
+
+.. code-block:: bash
+
+ python3 Smarker/assessments.py -l yes
+
+Which returns a string in the yaml format. Assessments can be deleted (will also deleted
+associated submissions)
+
+.. code-block:: bash
+
+ python3 Smarker/assessments.py -rm example
+
diff --git a/docs/source/conf.py b/docs/source/conf.py
index bef233e..5dd644b 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -13,6 +13,7 @@
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join("..", "..", "Smarker")))
+sys.path.insert(0, os.path.abspath(os.path.join("..", "..", "ExampleAssessments")))
# print(os.listdir(os.path.abspath(os.path.join("..", "..", "Smarker"))))
@@ -32,7 +33,8 @@ extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.coverage',
'sphinx.ext.napoleon',
- "sphinx_mdinclude"
+ "sphinx_mdinclude",
+ 'sphinxarg.ext'
]
# Add any paths that contain templates here, relative to this directory.
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 4da39e2..e36cc86 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -6,6 +6,30 @@ Setting up
* Set up a MySQL/MariaDB server. The database will be generated automatically.
* Add ``smarker.conf`` to the root directory of the code. See :ref:`configfile` for the structure of this file.
* Decide how you want to run the program: with or without docker.
+* Add an assessment yaml- :ref:`assessmentyaml`.
+* Enroll students: ``python3 Smarker/assessments.py -s 123456789,Eden,Attenborough,E.Attenborough@uea.ac.uk``
+
+``smarker.py`` usage
+********************
+
+Now we are ready to make some reports! For which we use the main file ``smarker.py``:
+
+.. argparse::
+ :module: smarker
+ :func: getparser
+ :prog: python Smarker/smarker.py
+
+Please note that the ``-o`` flag is required for rendering to PDFs.
+
+``assessments.py`` usage
+************************
+
+``assessments.py`` contains many useful arguments for interacting with the database:
+
+.. argparse::
+ :module: assessments
+ :func: getparser
+ :prog: python Smarker/assessments.py
.. toctree::
:maxdepth: 2
@@ -20,10 +44,7 @@ Setting up
configfile.rst
docker.rst
-
-
-
-
+ assessmentyaml.rst
Indices and tables
==================
diff --git a/docs/source/readme.md b/docs/source/readme.md
index a9ab9e3..e7f7c9c 100644
--- a/docs/source/readme.md
+++ b/docs/source/readme.md
@@ -6,3 +6,27 @@ formats.
- [Read the documentation](http://smarker.eda.gay/)
- [Get the source code](https://github.com/jwansek/Smarker) - [Mirror](https://git.eda.gay/Smarker/files.html)
+
+### Features
+
+- Analyse code and get results as pdf, json, yaml, markdown, or plaintext
+- Analyse code outputs and check for regexes
+- Test functions and methods
+- Generate plagarism reports
+- Isolate code in a docker container for security
+
+![Function Analysis](https://smarker.eda.gay/_static/readme_functionanalysis.png)
+
+Function Analysis
+
+![Runtime Analysis](https://smarker.eda.gay/_static/readme_runtimeanalysis.png)
+
+Runtime Analysis
+
+![File with an exception](https://smarker.eda.gay/_static/readme_error.png)
+
+File with an exception
+
+![pytest](https://smarker.eda.gay/_static/pytest_error.png)
+
+Using pytest