This project is used -with others- to auto-grade image processing projects. It can operate on a folder that includes multiple students' submissions. For portability, it uses docker and conda environment to provide a level of flexibility. ** Notes: docker related files shouldn't be changed and might be replaced during the final test.
Your work should be inside students-work with folder structure as shown in later sections. You should change contents as following:
- Modify main.py to run your code with the same structure and cmd arguments.
- Modify requirements.yml to match your requirements.
- Run your code through docker and check the results. Repeat this step regularly to make sure your code will work eventually.
After activating the environment. Execute:
conda env export > requirements.yml
Note: It might need more changes after creating it.
students-work/<submitterid>/<team-form>
** submitterid: id of sumbitter student. It is added directly by elearn submit system. For testing use any id.
** team-form: Folder name should be SEM-## or CRD-## not Team number only.
inside the <team-form> directoy: There should be at least:
- requirements.yml: conda requirements file.
- main.py: main python file.
- DockerFile: to construct docker image. Shouldn't be changed.
- docker-compose.yml: to run docker image with parameters. Change image name only as written in the todo inside the file.
- All other code files.
output-folder: it will conatain the output texts after executing the code. it must be outside code directory.
test-cases-folder: it should contain test cases images. it must be outside code directory.
** Don't use spaces in any directory path.
** All paths should be absolute in the commands and should NOT include any spaces.
python run-students-docker-STD.py [code-directory] [test-cases-folder] [output-folder] -v 1
With down:
python run-students-docker-STD.py [code-directory] [test-cases-folder] [output-folder] -v 1 -d 1
You will submit one zip file directly including one directory named [team-form] as explained above. Other directories and files shouldn't be submitted!
- python 3.6+
- Linux
- docker-compose: Check here, here and here
-- Code and test methods need more improvement and testing. Only use as a guideline.