Vue.js web application and Spring-boot API
with multiple choice questions for students
and quiz management for teachers
About • Technologies • Installation • Testing • Patreons • Contributing • License
Quizzes Tutor allows teachers to create and reuse, multiple-choice questions with images and topics which can be inserted in assessments and quizzes. Its development started as an effort of project IMPRESS to share and reuse questions and quizzes of software engineering.
It is currently integrated with IST authentication such that it can be used for any course.
Students can then answer those questions in sugested quizzes or generated quizzes (pseudo-random) providing them with a useful self-assessment tool to improve their learning.
- Require download
- Postgres 18
- Java 25
- Node 24 (Node Version Manager recommended)
- Docker
- No download required
- Maven (
backend/mvnwfetches the pinned version) - Spring-boot
- Vue.js
- Maven (
- Install
sudo apt update && sudo apt upgrade
sudo apt install openjdk-25-jdk postgresql
- Start db, change to postgres user and create DB
sudo service postgresql start
sudo su -l postgres
dropdb tutordb
createdb tutordb
- Create user to access db
psql tutordb
CREATE USER your-username WITH SUPERUSER LOGIN PASSWORD 'yourpassword';
\q
exit
- Go to API Service Agreement and then to Applications and create an application that redirects to http://localhost:8081/login and accessess curricular and information
- Rename
backend/src/main/resources/application-dev.properties.exampletoapplication-dev.propertiesand fill its fields - Run server
cd backend
./mvnw clean spring-boot:run
- See documentation on http://localhost:8080/swagger-ui.html
- Rename
frontend/example.envto.envand fill its fields - Run frontend
cd frontend
npm install
npm run dev
- Access http://localhost:8081
cd backend && ./mvnw clean -Ptest test # unit tests (Spock, H2 in memory)
cd frontend && npm run test:unit # unit tests (vitest)
cd frontend && npm run test:e2e # end-to-end (Cypress, needs both servers)
See RUNNING-AND-TESTING.md for the integration and load tests, for running against a database dump, and for where the demo quizzes come from.
The Cypress suite and the backend integration tests delete data without a
WHEREclause. Point them at a disposable database only.
A special thanks to our patreons for supporting this project:
|
|
|
|
Your contributions are always welcome! Please have a look at the contribution guidelines first.
This project is licensed under the MIT License - see the LICENSE file for details.
