From b4d4d7a6279b5eac61892b06fc7b8d849b706b01 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Wed, 20 May 2020 00:15:08 +0200 Subject: [PATCH 01/25] Add basics of feature --- SerialExaminer.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/SerialExaminer.py b/SerialExaminer.py index 7d4b163..cbeb886 100644 --- a/SerialExaminer.py +++ b/SerialExaminer.py @@ -146,14 +146,16 @@ def importKey(self): title = "Select exam key file", initialdir = '.', filetypes =(("Exam Key File", "*.exkey"), - ("All files", "*.*")) + ("Text file", "*.txt"), + ) )) self.keyButtonImport['state'] = NORMAL self.keyButtonCreate['state'] = NORMAL if ('.exkey', '.txt') in KEY_FILE: global questionCount, KEY_DICT - with open(KEY_FILE, 'rb') as keyf: - KEY_DICT = pickle.load(keyf) + if '.exkey' in KEY_FILE: + with open(KEY_FILE, 'rb') as keyf: + KEY_DICT = pickle.load(keyf) questionCount = len(KEY_DICT.keys()) self.inputButton['state'] = NORMAL def browseExams(self): From 5c5091d0d21ea6e8b356af7af73a5cc543979b08 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sat, 23 May 2020 02:32:52 +0200 Subject: [PATCH 02/25] Fix diledialog initialdir --- SerialExaminer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SerialExaminer.py b/SerialExaminer.py index 7d4b163..b3c3ed1 100644 --- a/SerialExaminer.py +++ b/SerialExaminer.py @@ -379,7 +379,7 @@ def die(self): global KEY_FILE KEY_FILE = os.path.normpath(filedialog.asksaveasfilename( title = "Select exam key file", - initialdir = '.', + initialdir = 'keys', filetypes =(("Exam Key File", "*.exkey"),) )) if '.exkey' not in KEY_FILE: From 090ba6675be2ba83c394c98132925a01952ce5f2 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sat, 23 May 2020 03:05:04 +0200 Subject: [PATCH 03/25] Basic .txt key import file feature --- SerialExaminer.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/SerialExaminer.py b/SerialExaminer.py index cbeb886..e52547f 100644 --- a/SerialExaminer.py +++ b/SerialExaminer.py @@ -151,11 +151,16 @@ def importKey(self): )) self.keyButtonImport['state'] = NORMAL self.keyButtonCreate['state'] = NORMAL - if ('.exkey', '.txt') in KEY_FILE: + if '.exkey' in KEY_FILE or '.txt' in KEY_FILE: global questionCount, KEY_DICT if '.exkey' in KEY_FILE: with open(KEY_FILE, 'rb') as keyf: KEY_DICT = pickle.load(keyf) + elif '.txt' in KEY_FILE: + with open(KEY_FILE, 'r') as keyf: + for line in keyf: + line = splitLine(line) + KEY_DICT[line[0]] = line[1] questionCount = len(KEY_DICT.keys()) self.inputButton['state'] = NORMAL def browseExams(self): From f643518fc682c06aafc938de6bcc6da8b1887fcd Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sat, 23 May 2020 03:11:44 +0200 Subject: [PATCH 04/25] Name feature option in filedialog --- SerialExaminer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SerialExaminer.py b/SerialExaminer.py index e52547f..23e10c1 100644 --- a/SerialExaminer.py +++ b/SerialExaminer.py @@ -145,8 +145,8 @@ def importKey(self): KEY_FILE = os.path.normpath(filedialog.askopenfilename( title = "Select exam key file", initialdir = '.', - filetypes =(("Exam Key File", "*.exkey"), - ("Text file", "*.txt"), + filetypes =(("Exam key file", "*.exkey"), + ("Find similar files to...", "*.txt"), ) )) self.keyButtonImport['state'] = NORMAL From 2ad315357e4003b8430a682bcba96247f8f87b39 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sat, 23 May 2020 15:32:59 +0200 Subject: [PATCH 05/25] Basic template --- README.md | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6199dd9..e7a55f2 100644 --- a/README.md +++ b/README.md @@ -3,15 +3,31 @@ SerialExaminer is a small tool to speed up assessing tests and detecting potenti Ask your students to send you test responses in .txt files named after their full names, journal number, any ID numbers or anything else, that can identify them. Aks them to write answers in these files in format `.`, line by line. The order of questions and letter size don't matter -## Table of Contents +#### Table of Contents - [Installation](https://github.com/Pixel48/SerialExaminer#installation) + - [Windows](https://github.com/Pixel48/SerialExaminer#windows) + - [Linux](https://github.com/Pixel48/SerialExaminer#linux) - [Usage](https://github.com/Pixel48/SerialExaminer#usage) + - [Generating an exam key](https://github.com/Pixel48/SerialExaminer#generating-an-exam-key) + - [Importing an exam key](https://github.com/Pixel48/SerialExaminer#importing-an-exam-key) + - [Checking tests](https://github.com/Pixel48/SerialExaminer#checking-tests) + - [Searching for cheaters](https://github.com/Pixel48/SerialExaminer#-searching-for-cheaters) ## Installation -Download application installer from [last release](https://github.com/Pixel48/SerialExaminer/releases/latest), install it and run using fresh desktop shortcut +### Windows +To install SerialExaminer download installer from [last release](https://github.com/Pixel48/SerialExaminer/releases/latest), install it and run using fresh desktop shortcut > For now every installer will trigger [UAC](https://en.wikipedia.org/wiki/User_Account_Control), because it's not digitally signed, because I'm just a student developing a small project and (for now) I can't afford digital certification ## Usage +### Generating an exam key + +![Check button](docs/img/check_button.png) + +### Importing an exam key +### Checking tests +### Searching for cheaters + +## Usage (old) ### Creating exam key file ![Exam file example](docs/img/exam_file.png) 1. Run SerialExaminer from desktop shortcut and create or import exam key file (\*.exkey). @@ -38,4 +54,4 @@ Download application installer from [last release](https://github.com/Pixel48/Se ![Example results table](docs/img/results.png) > Future updates will add export options and `predicted grade` column in results -Copyright (c) 2020 [Pixel48](https://github.com/Pixel48/) All Rights Reserved. +###### Copyright (c) 2020 [Pixel48](https://github.com/Pixel48/) All Rights Reserved From 1574c4e368dc5ac3f60521085397d5b9fa58ba9f Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 12:49:18 +0200 Subject: [PATCH 06/25] Corrcet a UAC explanation Sadly I just can't sign my project for now --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index e7a55f2..d7b239c 100644 --- a/README.md +++ b/README.md @@ -16,12 +16,11 @@ Ask your students to send you test responses in .txt files named after their ful ## Installation ### Windows To install SerialExaminer download installer from [last release](https://github.com/Pixel48/SerialExaminer/releases/latest), install it and run using fresh desktop shortcut -> For now every installer will trigger [UAC](https://en.wikipedia.org/wiki/User_Account_Control), because it's not digitally signed, because I'm just a student developing a small project and (for now) I can't afford digital certification +> For now, downloading the installer will launch [UAC] (https://en.wikipedia.org/wiki/User_Account_Control) "Unknown publisher" alert because it is not digitally signed - I'm just a student developing a small project and I can't afford digital certification ## Usage ### Generating an exam key -![Check button](docs/img/check_button.png) ### Importing an exam key ### Checking tests From 90ada1b0bb8051768a170a3ceb8415272c63394a Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 12:52:59 +0200 Subject: [PATCH 07/25] Remove two newlines --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index d7b239c..9c24860 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,6 @@ To install SerialExaminer download installer from [last release](https://github. ## Usage ### Generating an exam key - - ### Importing an exam key ### Checking tests ### Searching for cheaters From 424c93cdac8767f9acd7c7ede61a1b2ac495f9b5 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 13:37:29 +0200 Subject: [PATCH 08/25] Write key createing section --- README.md | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 9c24860..ea01059 100644 --- a/README.md +++ b/README.md @@ -11,44 +11,54 @@ Ask your students to send you test responses in .txt files named after their ful - [Generating an exam key](https://github.com/Pixel48/SerialExaminer#generating-an-exam-key) - [Importing an exam key](https://github.com/Pixel48/SerialExaminer#importing-an-exam-key) - [Checking tests](https://github.com/Pixel48/SerialExaminer#checking-tests) - - [Searching for cheaters](https://github.com/Pixel48/SerialExaminer#-searching-for-cheaters) + - [Searching for cheaters](https://github.com/Pixel48/SerialExaminer#searching-for-cheaters) ## Installation -### Windows -To install SerialExaminer download installer from [last release](https://github.com/Pixel48/SerialExaminer/releases/latest), install it and run using fresh desktop shortcut +Download the latest [SerialExaminer installer](https://github.com/Pixel48/SerialExaminer/releases/latest) > For now, downloading the installer will launch [UAC] (https://en.wikipedia.org/wiki/User_Account_Control) "Unknown publisher" alert because it is not digitally signed - I'm just a student developing a small project and I can't afford digital certification ## Usage +How to use SerialExaminer interface +![Main window dummy](./docs/img/main_window.png) + ### Generating an exam key -### Importing an exam key +![Key parameters](./docs/img/key_parameters.png) +1. Provide the exact number of questions and answers in the exam and hit `Create key!` button + +![Key parameters](./docs/img/key_parameters.png) +2. Provide answers to questions about the given number. If you make a mistake you can go back using the `<` button. Window will disappear automatically after entering the last answer +> Now the key creator supports the number of answers from 4 to 12, future updates will gradually expand this range until they finally remove this restriction + +3. After key answer window vanish, hit `Done` button and provide where to save exam key for potential future use. (You dont need to import key after creating it, it's imported immediately after save). + ### Checking tests ### Searching for cheaters ## Usage (old) ### Creating exam key file -![Exam file example](docs/img/exam_file.png) +![Exam file example](./docs/img/exam_file.png) 1. Run SerialExaminer from desktop shortcut and create or import exam key file (\*.exkey). - If you create exam key file... - Provide the exact number of questions and answers in the exam and hit `Create key!` button - ![Key parameters](docs/img/key_parameters.png) + ![Key parameters](./docs/img/key_parameters.png) > Now the key creator supports the number of answers from 4 to 12, future updates will gradually expand this range until they finally remove this restriction - Provide answers to questions about the given number. If you make a mistake you can go back using the `<` button. Window will disappear automatically after entering the last answer - ![Key answers](docs/img/key_ans.png) + ![Key answers](./docs/img/key_ans.png) - After key answer window vanish, hit `Done` button and provide where to save exam key for potential future use. (You dont need to import key after creating it, it's imported immediately after save). - If you already had created exam key file... 2. Hit `Browse` button and provide folder with files from step 1. 3. Hit `Check!` button to calculate results -![Check button](docs/img/check_button.png) +![Check button](./docs/img/check_button.png) > Future updates will automate this process and remove this button 4. Use `Display` button to show test results -![Example results table](docs/img/results.png) +![Example results table](./docs/img/results.png) > Future updates will add export options and `predicted grade` column in results ###### Copyright (c) 2020 [Pixel48](https://github.com/Pixel48/) All Rights Reserved From 6770d1e09a6af5f573a038eb286d559630ab5900 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 14:03:27 +0200 Subject: [PATCH 09/25] 'Searching for cheaters' section --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index ea01059..9865a2c 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,18 @@ How to use SerialExaminer interface 3. After key answer window vanish, hit `Done` button and provide where to save exam key for potential future use. (You dont need to import key after creating it, it's imported immediately after save). ### Checking tests +1. Create or import correct exam key +2. Hit `Browse` button and provide folder with files written by your students +3. Hit `Check!` button to calculate results +4. Hit `Display` button to show test results + ### Searching for cheaters +1. Hit `Import` button +2. In new dialog change file extension to *Plain text (*.txt)* +3. Select the source file to which you want to check the similarity in other tests +4. Hit `Browse` button and provide folder with other tests +5. Hit `Check!` button to calculate results +6. Hit `Display` button to show similarity of other tests to source test ## Usage (old) ### Creating exam key file From 6076d80c950f13ee54e30a91e55863664e67c0e1 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 14:16:25 +0200 Subject: [PATCH 10/25] Add indents --- README.md | 95 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index 9865a2c..549fca9 100644 --- a/README.md +++ b/README.md @@ -1,75 +1,76 @@ # SerialExaminer -SerialExaminer is a small tool to speed up assessing tests and detecting potential fraudsters. It's easy to use, fast to use and will be long developed and improved + SerialExaminer is a small tool to speed up assessing tests and detecting potential fraudsters. It's easy to use, fast to use and will be long developed and improved -Ask your students to send you test responses in .txt files named after their full names, journal number, any ID numbers or anything else, that can identify them. Aks them to write answers in these files in format `.`, line by line. The order of questions and letter size don't matter + Ask your students to send you test responses in .txt files named after their full names, journal number, any ID numbers or anything else, that can identify them. Aks them to write answers in these files in format `.`, line by line. The order of questions and letter size don't matter #### Table of Contents -- [Installation](https://github.com/Pixel48/SerialExaminer#installation) - - [Windows](https://github.com/Pixel48/SerialExaminer#windows) - - [Linux](https://github.com/Pixel48/SerialExaminer#linux) -- [Usage](https://github.com/Pixel48/SerialExaminer#usage) - - [Generating an exam key](https://github.com/Pixel48/SerialExaminer#generating-an-exam-key) - - [Importing an exam key](https://github.com/Pixel48/SerialExaminer#importing-an-exam-key) - - [Checking tests](https://github.com/Pixel48/SerialExaminer#checking-tests) - - [Searching for cheaters](https://github.com/Pixel48/SerialExaminer#searching-for-cheaters) + - [Installation](https://github.com/Pixel48/SerialExaminer#installation) + - [Windows](https://github.com/Pixel48/SerialExaminer#windows) + - [Linux](https://github.com/Pixel48/SerialExaminer#linux) + - [Usage](https://github.com/Pixel48/SerialExaminer#usage) + - [Generating an exam key](https://github.com/Pixel48/SerialExaminer#generating-an-exam-key) + - [Importing an exam key](https://github.com/Pixel48/SerialExaminer#importing-an-exam-key) + - [Checking tests](https://github.com/Pixel48/SerialExaminer#checking-tests) + - [Searching for cheaters](https://github.com/Pixel48/SerialExaminer#searching-for-cheaters) ## Installation -Download the latest [SerialExaminer installer](https://github.com/Pixel48/SerialExaminer/releases/latest) -> For now, downloading the installer will launch [UAC] (https://en.wikipedia.org/wiki/User_Account_Control) "Unknown publisher" alert because it is not digitally signed - I'm just a student developing a small project and I can't afford digital certification + Download the latest [SerialExaminer installer](https://github.com/Pixel48/SerialExaminer/releases/latest) + > For now, downloading the installer will launch [UAC] (https://en.wikipedia.org/wiki/User_Account_Control) "Unknown publisher" alert because it is not digitally signed - I'm just a student developing a small project and I can't afford digital certification ## Usage -How to use SerialExaminer interface -![Main window dummy](./docs/img/main_window.png) + How to use SerialExaminer interface + ![Main window dummy](./docs/img/main_window.png) ### Generating an exam key -![Key parameters](./docs/img/key_parameters.png) -1. Provide the exact number of questions and answers in the exam and hit `Create key!` button + ![Key parameters](./docs/img/key_parameters.png) + 1. Provide the exact number of questions and answers in the exam and hit `Create key!` button -![Key parameters](./docs/img/key_parameters.png) -2. Provide answers to questions about the given number. If you make a mistake you can go back using the `<` button. Window will disappear automatically after entering the last answer -> Now the key creator supports the number of answers from 4 to 12, future updates will gradually expand this range until they finally remove this restriction + ![Key parameters](./docs/img/key_parameters.png) + 2. Provide answers to questions about the given number. If you make a mistake you can go back using the `<` button. Window will disappear automatically after entering the last answer + > Now the key creator supports the number of answers from 4 to 12, future updates will gradually expand this range until they finally remove this restriction -3. After key answer window vanish, hit `Done` button and provide where to save exam key for potential future use. (You dont need to import key after creating it, it's imported immediately after save). + 3. After key answer window vanish, hit `Done` button and provide where to save exam key for potential future use. (You dont need to import key after creating it, it's imported immediately after save). ### Checking tests -1. Create or import correct exam key -2. Hit `Browse` button and provide folder with files written by your students -3. Hit `Check!` button to calculate results -4. Hit `Display` button to show test results + 1. Create or import correct exam key + 2. Hit `Browse` button and provide folder with files written by your students + 3. Hit `Check!` button to calculate results + 4. Hit `Display` button to show test results + > Future updates will add export options and `predicted grade` column in results ### Searching for cheaters -1. Hit `Import` button -2. In new dialog change file extension to *Plain text (*.txt)* -3. Select the source file to which you want to check the similarity in other tests -4. Hit `Browse` button and provide folder with other tests -5. Hit `Check!` button to calculate results -6. Hit `Display` button to show similarity of other tests to source test + 1. Hit `Import` button + 2. In new dialog change file extension to *Plain text (*.txt)* + 3. Select the source file to which you want to check the similarity in other tests + 4. Hit `Browse` button and provide folder with other tests + 5. Hit `Check!` button to calculate results + 6. Hit `Display` button to show similarity of other tests to source test ## Usage (old) ### Creating exam key file -![Exam file example](./docs/img/exam_file.png) -1. Run SerialExaminer from desktop shortcut and create or import exam key file (\*.exkey). - - If you create exam key file... - - Provide the exact number of questions and answers in the exam and hit `Create key!` button + ![Exam file example](./docs/img/exam_file.png) + 1. Run SerialExaminer from desktop shortcut and create or import exam key file (\*.exkey). + - If you create exam key file... + - Provide the exact number of questions and answers in the exam and hit `Create key!` button - ![Key parameters](./docs/img/key_parameters.png) - > Now the key creator supports the number of answers from 4 to 12, future updates will gradually expand this range until they finally remove this restriction + ![Key parameters](./docs/img/key_parameters.png) + > Now the key creator supports the number of answers from 4 to 12, future updates will gradually expand this range until they finally remove this restriction - - Provide answers to questions about the given number. If you make a mistake you can go back using the `<` button. Window will disappear automatically after entering the last answer + - Provide answers to questions about the given number. If you make a mistake you can go back using the `<` button. Window will disappear automatically after entering the last answer - ![Key answers](./docs/img/key_ans.png) + ![Key answers](./docs/img/key_ans.png) - - After key answer window vanish, hit `Done` button and provide where to save exam key for potential future use. (You dont need to import key after creating it, it's imported immediately after save). - - If you already had created exam key file... -2. Hit `Browse` button and provide folder with files from step 1. -3. Hit `Check!` button to calculate results + - After key answer window vanish, hit `Done` button and provide where to save exam key for potential future use. (You dont need to import key after creating it, it's imported immediately after save). + - If you already had created exam key file... + 2. Hit `Browse` button and provide folder with files from step 1. + 3. Hit `Check!` button to calculate results -![Check button](./docs/img/check_button.png) -> Future updates will automate this process and remove this button + ![Check button](./docs/img/check_button.png) + > Future updates will automate this process and remove this button -4. Use `Display` button to show test results + 4. Use `Display` button to show test results -![Example results table](./docs/img/results.png) -> Future updates will add export options and `predicted grade` column in results + ![Example results table](./docs/img/results.png) + > Future updates will add export options and `predicted grade` column in results ###### Copyright (c) 2020 [Pixel48](https://github.com/Pixel48/) All Rights Reserved From a6f2b5921c0497d33374c59c21173b708659dbde Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 14:21:01 +0200 Subject: [PATCH 11/25] Remove old Usage section --- README.md | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/README.md b/README.md index 549fca9..9c7157c 100644 --- a/README.md +++ b/README.md @@ -46,31 +46,4 @@ 5. Hit `Check!` button to calculate results 6. Hit `Display` button to show similarity of other tests to source test -## Usage (old) -### Creating exam key file - ![Exam file example](./docs/img/exam_file.png) - 1. Run SerialExaminer from desktop shortcut and create or import exam key file (\*.exkey). - - If you create exam key file... - - Provide the exact number of questions and answers in the exam and hit `Create key!` button - - ![Key parameters](./docs/img/key_parameters.png) - > Now the key creator supports the number of answers from 4 to 12, future updates will gradually expand this range until they finally remove this restriction - - - Provide answers to questions about the given number. If you make a mistake you can go back using the `<` button. Window will disappear automatically after entering the last answer - - ![Key answers](./docs/img/key_ans.png) - - - After key answer window vanish, hit `Done` button and provide where to save exam key for potential future use. (You dont need to import key after creating it, it's imported immediately after save). - - If you already had created exam key file... - 2. Hit `Browse` button and provide folder with files from step 1. - 3. Hit `Check!` button to calculate results - - ![Check button](./docs/img/check_button.png) - > Future updates will automate this process and remove this button - - 4. Use `Display` button to show test results - - ![Example results table](./docs/img/results.png) - > Future updates will add export options and `predicted grade` column in results - ###### Copyright (c) 2020 [Pixel48](https://github.com/Pixel48/) All Rights Reserved From 3bc6a9f8a34a49ab40b76498215c7ee336417f35 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 14:23:01 +0200 Subject: [PATCH 12/25] Fix photo position --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9c7157c..0fe117f 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ ## Usage How to use SerialExaminer interface + ![Main window dummy](./docs/img/main_window.png) ### Generating an exam key From 12e23e063e81d520a1b2ebba4113b65a572285c1 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 14:24:27 +0200 Subject: [PATCH 13/25] Swap photos with descriptions --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0fe117f..6889d40 100644 --- a/README.md +++ b/README.md @@ -19,15 +19,17 @@ ## Usage How to use SerialExaminer interface - + ![Main window dummy](./docs/img/main_window.png) ### Generating an exam key - ![Key parameters](./docs/img/key_parameters.png) 1. Provide the exact number of questions and answers in the exam and hit `Create key!` button ![Key parameters](./docs/img/key_parameters.png) + 2. Provide answers to questions about the given number. If you make a mistake you can go back using the `<` button. Window will disappear automatically after entering the last answer + + ![Key parameters](./docs/img/key_parameters.png) > Now the key creator supports the number of answers from 4 to 12, future updates will gradually expand this range until they finally remove this restriction 3. After key answer window vanish, hit `Done` button and provide where to save exam key for potential future use. (You dont need to import key after creating it, it's imported immediately after save). From 48b48ac4be87ebfe6e1a73c7c8b0137c41b351e7 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 14:25:35 +0200 Subject: [PATCH 14/25] Fix markdown --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6889d40..0ec0972 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ ### Searching for cheaters 1. Hit `Import` button - 2. In new dialog change file extension to *Plain text (*.txt)* + 2. In new dialog change file extension to *Plain text (\*.txt)* 3. Select the source file to which you want to check the similarity in other tests 4. Hit `Browse` button and provide folder with other tests 5. Hit `Check!` button to calculate results From e9ad7baa8e3e0bc5a80696fc6419b460f97c9ee0 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 14:28:40 +0200 Subject: [PATCH 15/25] Change markdown --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0ec0972..65a89c8 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ ### Searching for cheaters 1. Hit `Import` button - 2. In new dialog change file extension to *Plain text (\*.txt)* + 2. In new dialog change file extension to ***Plain text (\*.txt)*** 3. Select the source file to which you want to check the similarity in other tests 4. Hit `Browse` button and provide folder with other tests 5. Hit `Check!` button to calculate results From 9956593f6687ba773187df180737c99ebd102627 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 14:30:50 +0200 Subject: [PATCH 16/25] Fix link markdown --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 65a89c8..956d7eb 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ ## Installation Download the latest [SerialExaminer installer](https://github.com/Pixel48/SerialExaminer/releases/latest) - > For now, downloading the installer will launch [UAC] (https://en.wikipedia.org/wiki/User_Account_Control) "Unknown publisher" alert because it is not digitally signed - I'm just a student developing a small project and I can't afford digital certification + > For now, downloading the installer will launch [UAC](https://en.wikipedia.org/wiki/User_Account_Control) "Unknown publisher" alert because it is not digitally signed - I'm just a student developing a small project and I can't afford digital certification ## Usage How to use SerialExaminer interface From 06ff585ebdd7f1b9fa90934acf74890a17da6b3c Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 14:31:27 +0200 Subject: [PATCH 17/25] Change uac markdown --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 956d7eb..7307446 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ ## Installation Download the latest [SerialExaminer installer](https://github.com/Pixel48/SerialExaminer/releases/latest) - > For now, downloading the installer will launch [UAC](https://en.wikipedia.org/wiki/User_Account_Control) "Unknown publisher" alert because it is not digitally signed - I'm just a student developing a small project and I can't afford digital certification + > For now, downloading the installer will launch [UAC](https://en.wikipedia.org/wiki/User_Account_Control) *Unknown publisher* alert because it is not digitally signed - I'm just a student developing a small project and I can't afford digital certification ## Usage How to use SerialExaminer interface From 552a356043d9b90e137287dc8efed1a3e512d247 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 14:33:30 +0200 Subject: [PATCH 18/25] Change description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7307446..ee41ef2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # SerialExaminer SerialExaminer is a small tool to speed up assessing tests and detecting potential fraudsters. It's easy to use, fast to use and will be long developed and improved - Ask your students to send you test responses in .txt files named after their full names, journal number, any ID numbers or anything else, that can identify them. Aks them to write answers in these files in format `.`, line by line. The order of questions and letter size don't matter + Ask your students to send you test responses in .txt files named after their full names, journal number, any ID numbers or anything else, that can identify them. Aks them to write answers in these files in format `.`, line by line. The order of questions and letter size don't matter #### Table of Contents - [Installation](https://github.com/Pixel48/SerialExaminer#installation) From dff23830bd858f3849f481127067f36301004dcb Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 15:20:54 +0200 Subject: [PATCH 19/25] Minor update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ee41ef2..f1507a3 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ 2. Provide answers to questions about the given number. If you make a mistake you can go back using the `<` button. Window will disappear automatically after entering the last answer ![Key parameters](./docs/img/key_parameters.png) - > Now the key creator supports the number of answers from 4 to 12, future updates will gradually expand this range until they finally remove this restriction + > Now the key creator supports the number of answers in range from 4 to 12, future updates will gradually expand this range until they finally remove this restriction 3. After key answer window vanish, hit `Done` button and provide where to save exam key for potential future use. (You dont need to import key after creating it, it's imported immediately after save). From 5a65e0b682cfd5ded62262bcdc85fdb115934121 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 15:26:35 +0200 Subject: [PATCH 20/25] Change filetype name --- SerialExaminer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SerialExaminer.py b/SerialExaminer.py index 23e10c1..d3cde0f 100644 --- a/SerialExaminer.py +++ b/SerialExaminer.py @@ -146,7 +146,7 @@ def importKey(self): title = "Select exam key file", initialdir = '.', filetypes =(("Exam key file", "*.exkey"), - ("Find similar files to...", "*.txt"), + ("Plain text", "*.txt"), ) )) self.keyButtonImport['state'] = NORMAL From 1dd2379c080de6a040f3195722c828ea4dd06248 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 15:28:45 +0200 Subject: [PATCH 21/25] Change photo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f1507a3..87b9552 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ 2. Provide answers to questions about the given number. If you make a mistake you can go back using the `<` button. Window will disappear automatically after entering the last answer - ![Key parameters](./docs/img/key_parameters.png) + ![Key data](./docs/img/key_ans.png) > Now the key creator supports the number of answers in range from 4 to 12, future updates will gradually expand this range until they finally remove this restriction 3. After key answer window vanish, hit `Done` button and provide where to save exam key for potential future use. (You dont need to import key after creating it, it's imported immediately after save). From 00c8a43cac1ea560ac8b33c11c29c152e22ecbf6 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 15:30:41 +0200 Subject: [PATCH 22/25] Add result window photo --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 87b9552..53b3aa3 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,8 @@ 2. Hit `Browse` button and provide folder with files written by your students 3. Hit `Check!` button to calculate results 4. Hit `Display` button to show test results + + ![Result window](./docs/img/results.png) > Future updates will add export options and `predicted grade` column in results ### Searching for cheaters From c7074ee2be2753d535fc0242345a0354c02a752a Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Fri, 22 May 2020 04:19:02 +0200 Subject: [PATCH 23/25] Add keys folder and uninstall functions --- SerialExaminer.py | 2 +- installer.nsi | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/SerialExaminer.py b/SerialExaminer.py index 9768648..afe2272 100644 --- a/SerialExaminer.py +++ b/SerialExaminer.py @@ -386,7 +386,7 @@ def die(self): global KEY_FILE KEY_FILE = os.path.normpath(filedialog.asksaveasfilename( title = "Select exam key file", - initialdir = 'keys', + initialdir = './keys', filetypes =(("Exam Key File", "*.exkey"),) )) if '.exkey' not in KEY_FILE: diff --git a/installer.nsi b/installer.nsi index be19f30..e2a98ba 100644 --- a/installer.nsi +++ b/installer.nsi @@ -22,29 +22,31 @@ RequestExecutionLevel admin Section "SerialExaminer" SerialExaminer SetOutPath $INSTDIR File /r "dist\SerialExaminer\*" - ;InstallDirRegKey HKLM "Software\SerialExaminer" "" + CreateDirectory "$INSTDIR\keys" WriteRegStr HKLM SOFTWARE\NSIS_Example2 "Install_Dir" "$INSTDIR" - WriteRegStr HKLM "Software\SerialExaminer" "DisplayName" "SerialExaminer" WriteRegStr HKLM "Software\SerialExaminer" "UninstallString" '"$INSTDIR\Uninstall.exe"' + WriteRegDWORD HKLM "Software\SerialExaminer" "NoModify" 1 WriteRegDWORD HKLM "Software\SerialExaminer" "NoRepair" 1 + WriteUninstaller "$INSTDIR\Uninstall.exe" SectionEnd +Section "Desktop shortcut" + CreateShortcut "$DESKTOP\SerialExaminer.lnk" "$INSTDIR\SerialExaminer.exe" +SectionEnd + ;------------------ ;Uninstaller !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES Section "Uninstall" + Delete "$DESKTOP\SerialExaminer.lnk" Delete "$INSTDIR\Uninstall.exe" RMDir "$INSTDIR\*" RMDir /r "$INSTDIR" DeleteRegKey HKLM "Software\SerialExaminer" SectionEnd - -Section "Desktop shortcut" - CreateShortcut "$DESKTOP\SerialExaminer.lnk" "$INSTDIR\SerialExaminer.exe" -SectionEnd From 1314c6820d95c67735d58802405b2015fa0d2751 Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 15:56:46 +0200 Subject: [PATCH 24/25] Maintain installer --- installer.nsi | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/installer.nsi b/installer.nsi index e2a98ba..303cc1b 100644 --- a/installer.nsi +++ b/installer.nsi @@ -4,7 +4,7 @@ ;------------------ ;Atributes Name "SerialExaminer" -OutFile "InstallSerialExaminer.exe" +OutFile "SerialExaminerSetup.exe" InstallDir $PROGRAMFILES\SerialExaminer RequestExecutionLevel admin ;Unicode True @@ -24,13 +24,10 @@ Section "SerialExaminer" SerialExaminer File /r "dist\SerialExaminer\*" CreateDirectory "$INSTDIR\keys" - WriteRegStr HKLM SOFTWARE\NSIS_Example2 "Install_Dir" "$INSTDIR" + WriteRegStr HKLM "SOFTWARE\SerialExaminer" "InstallPath" "$INSTDIR" WriteRegStr HKLM "Software\SerialExaminer" "DisplayName" "SerialExaminer" WriteRegStr HKLM "Software\SerialExaminer" "UninstallString" '"$INSTDIR\Uninstall.exe"' - WriteRegDWORD HKLM "Software\SerialExaminer" "NoModify" 1 - WriteRegDWORD HKLM "Software\SerialExaminer" "NoRepair" 1 - WriteUninstaller "$INSTDIR\Uninstall.exe" SectionEnd @@ -46,7 +43,6 @@ SectionEnd Section "Uninstall" Delete "$DESKTOP\SerialExaminer.lnk" Delete "$INSTDIR\Uninstall.exe" - RMDir "$INSTDIR\*" RMDir /r "$INSTDIR" DeleteRegKey HKLM "Software\SerialExaminer" SectionEnd From e71d552e0be3d634769e3495ab6cdbfd65deb61e Mon Sep 17 00:00:00 2001 From: Pixel48 Date: Sun, 24 May 2020 16:01:15 +0200 Subject: [PATCH 25/25] Change displayed version tag --- SerialExaminer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SerialExaminer.py b/SerialExaminer.py index afe2272..56f8de6 100644 --- a/SerialExaminer.py +++ b/SerialExaminer.py @@ -9,7 +9,7 @@ import tkinter.font as tkFont import os, pickle -versionTag = 'v0.2.2' +versionTag = 'v0.3.0' # SOME GLOBALS R = 0