This repository is inactive, but I will fix bugs or continue development if there is interest. A vocabulary learning platform.
- Learning vocabulary
- Learning groups
- Live Mode (Competition)
- Group right system
Here are all the groups that the student has access to. Teachers can see all courses and create new ones.
They are also quickly accessible via a drop-down menu.
A group can contain multable sets, including sets that are in different groups.
Teachers can set information for tests and exams, with directly selectable vocabulary.
Each user has a personalised view of a set, they see witch words they know they want with which direction.
They can then choose a learning mode, for the go 'Card' is great because you don't need to type and at home 'Text'. But 'Full' automatically gives you cards and then text, depending on how well you know the word.
Here are a few screenshots for the 'Card' mode:
Here are a few screenshots for the 'Text' mode:
The user can customise the learning algorithm.
So if you want to type the word correctly every time and then move on, you can tweak the sliders.
For administrators and teachers there is also an admin panel with all users and the ability to change their rank and password (the system generates a random password for the user and then forces them to change it on their first login) and delete the account.
You can use verbo via docker-compose, here is one example:
version: '3.7'
services:
verbo:
image: qrqrqr/verbo:latest
ports:
- "80:80"
environment:
- spring.datasource.url=jdbc:mariadb://localhost:3306/verbo
- spring.datasource.username=root
- spring.datasource.password=root
- spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
To configure the Config, set the environment variables as shown.
The default admin user is root
:root
.
Here is a quick start docker compose file for a mariadb setup for Verbo.
version: '3.7'
services:
mariadb:
image: mariadb:latest
restart: always
environment:
- MYSQL_ROOT_PASSWORD=my_root_password
- MYSQL_DATABASE=verbo
- MYSQL_USER=my_user
- MYSQL_PASSWORD=my_password
volumes:
- verbo_data:/var/lib/mysql
verbo:
image: qrqrqr/verbo:latest
depends_on:
- mariadb
ports:
- "80:80"
environment:
- spring.datasource.url=jdbc:mariadb://mariadb:3306/verbo
- spring.datasource.username=my_user
- spring.datasource.password=my_password
- spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
volumes:
verbo_data:
The configuration for my Verbo application can be set up in several ways, but the three most common methods are
- You can pass config values as command line arguments when starting the program. For example, if you want to set the value of a property called "apiKey" to "abc123", you can pass the argument "-DapiKey=abc123" when starting the program.
- You can create a file called "application.properties" or "application.yml" in the same location as the .jar and set configuration values for the program. These values will be used as the default configuration for the application if no other configuration values are specified.
For more information about configuring the application, refer to the Spring Boot documentation: 24. Externalised Configuration
The table below lists all supported SQL databases. If you don't see yours in the list, create a new issue.
SQL Implementation | spring.datasource.url |
spring.datasource.driver-class-name |
---|---|---|
MySQL | jdbc:mysql://<url>:<port>/<database> |
com.mysql.cj.jdbc.Driver |
MariaDB | jdbc:mariadb://<url>:<port>/<database> |
org.mariadb.jdbc.Driver |
PostgreSQL | jdbc:postgresql://<url>:<port>/<database> |
org.postgresql.Driver |
Microsoft SQL Server | jdbc:sqlserver://<url>:<port>/<database> |
com.microsoft.sqlserver.jdbc.SQLServerDriver |
SQLite | jdbc:sqlite://<url>:<port>/<database> |
org.sqlite.JDBC |
HSQLDB | jdbc:hsqldb://<url>:<port>/<database> |
org.hsqldb.jdbc.JDBCDriver |
Example database configuration for MariaDB:
spring.datasource.url=jdbc:mariadb://localhost:3306/verbo
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
Btw. if you want to change the port because you don't run this in a docker container you can add server.port=<port>
.