Здравствуйте!
Во-первых, непонятно в каком объеме у вас на данный момент реализовано текущее приложение на Spring.
Сайт на подобие визитки.
И вообще странно, что если это просто сайт-визитка, то зачем она писалась на Spring + VueJS. Там банально CMS WordPress хватит с лихвой. Ну в крайнем случае можно было взять рнр фреймворк (Yii2, Laravel) - обошлось бы дешевле для школы)
Нужно прикрутить к нему сервис для тестирования учеников, с возможностью заходить в личный кабинет для ученика и учителя отдельно.
1) Эндпоинты для ЛК учителя и ученика должны быть разными.
2) Эндпоинты аутентификации учителя и ученика тоже можно сделать разными.
3) Тестирование бывает разным. Нужно для начала разобраться с тем, какое тестирование вам нужно и как его можно реализовать.
Например, есть тестирование при котором проверяется правильность выбранного ответа. Т.е. пользователь выбрал ответ "а" и соответственно, проверяем корректный ответ, хранимый в БД. Этот тест можно усложнить тем, что каждый раз при прохождении теста изменять местами варианты ответов, чтобы ученики не запоминали ответы по буквам.
Другой вид тестирования, когда каждому ответу присваивается определенный балл. Далее высчитывается набранная сумма и выдается ему некий результат (часто встречается в психологических тестах).
Иной вид тестирования, когда проверяется количество выбранных ответов варианта "А", "В" и т.д. Т.е. пользователь выбрал "А" - 5 раз, "В" - 2 раза. И если например, А < 5 и B >2, то отдаем один результат, иначе другой и т.д.
4)
Особенно как лучше сделать саму логику обработки ответов и последующую их проверку?
Например, по мере прохождения теста формируем массив ответов и записываем их в LS, чтобы в случае чего не потерять данные. Затем по сабмиту "отправить на проверку" отправляем массив на сервер и перебирая ответы сравниваем их со значениями в БД. Если предусматривается возможность изменение варианта ответа для того или иного вопроса, то при изменении ответа, вносим правки в массив и сохраняем LS.
Как реализовать страницу для тестирования учеников?
Вообще, как по мне тут больше работы с фронтом, нежели с бэком.
На самом деле тут много нюансов, которые нужно уточнить. Например, должны ли тесты делиться по темам или по каким-то категориями? Сколько тестов всего бывает и сколько из них отдается на клиент? Как корректно сфорировать сущности пользователей, тестов, тематик и т.д.?
Либо попробуйте поискать готовые решения, которые потом можете встроить в сайт. Правда, не самое лучшее решение.
Например,
https://www.classmarker.com/online-testing/how-to-...
https://quiz.proprofs.com/how-do-i-embed-a-quiz-on...
https://www.riddle.com/blog/embed-online-quizzes-site/
Google
В общем, все зависит от ваших навыков программирования, от бюджета, от сроков и т.д.
Самое быстрое решение возможно, использование CMS с готовыми плагинами.
Например, WordPress + плагины
https://ru.wordpress.org/plugins/quiz-master-next/
https://ru.wordpress.org/plugins/wp-quiz/
https://www.wpbeginner.com/showcase/best-quiz-plug...
https://ru.wordpress.org/plugins/hd-quiz/
https://ru.wordpress.org/plugins/quiz-maker/
Google
Для более объективного ответа нужно больше данных.