Що може бути цілком можливо:
- Створіть 2 сховища: студент та викладач.
- Клоніруйте їх на свою машину (це можна зробити з клієнтом Github)
- Ви працюєте лише вчителем , ніколи не торкайтеся учня.
Отже, структура вашого каталогу - це 2 клоновані git repo:
- / студент (із папкою .git)
- / вчитель (із папкою .git)
Ви ставите маркери навколо "приватного" коду в коментарях до своєї мови, наприклад, javascript нижче. Маркери вказують, де починається і закінчується приватний код.
function sum(a, b) {
// -----------------------START
return a + b; // so this is what you expect from the student
// -----------------------END
}
console.log(sum(1,1)); // I expect 2 as a result of your homework
Потім складіть простий скрипт на локальній машині:
files.forEach((fileContent, fileName) => {
let newFileContent = '';
let public = true;
fileContent.forEach((line) => {
switch(line) {
case '// -----------------------START':
public = false;
break;
case '// -----------------------END':
public = true;
break;
default:
if(public) {
newFileContent = newFileContent + line + "\n";
}
}
});
writeFile('../student/' + fileName, newFileContent);
});
Буде: візьміть усі ваші файли та скопіюйте вміст в / студент (перезапис) без приватних позначених частин коду. Якщо ви хочете, ви можете вставити туди порожні рядки, але це може підказати, яке рішення ви очікуєте.
Це неперевірений код прикладу, тому, ймовірно, вам доведеться виконати налагодження.
Тепер єдине, що вам потрібно зробити, це зробити фіксацію та натискання у сховищі студентів, коли ви раді раді. Це можна зробити одним кліком при використанні клієнта GitHub (так що ви можете зробити швидкий візуальний огляд) або просто зробити це вручну в командному рядку.
Студентське репо - це лише сховище вихідних даних, тому воно завжди буде в курсі сучасних даних, і студентам зрозуміло, що зміниться, переглянувши коміти (адже вони показують лише зміни), і це легко обробляти.
Ще одним кроком було б створити гак-коміт, який автоматично запускає ваш сценарій.
Редагувати: Дивіться, що ви внесли зміни до своєї публікації:
Очевидно, я не хочу, щоб студенти мали доступ до рішення (поки завдання не закінчиться).
Я підозрюю, що це зрозуміло, але бути повним: просто видаліть теги навколо закінченої вправи, ви отримаєте відповідь так само, як і для звичайних оновлень вправ.