elaastic is an interactive system dedicated to the orchestration of formative assessment sequences during face-to-face
or distance learning.
elaastic is developed in the context of research
conducted by
the TALENT team at IRIT on
the design and implementation of formative
assessment systems.
elaastic is developed with the spring-boot framework and the Kotlin language.
- Java (version 17)
- Gradle
- Docker
Those services are containerized and can be launched with docker compose:
docker-compose up -d [<service>]
| Service name | Description |
|---|---|
| elaastic-questions-db-8 | mySQL 8 Database used for running elaastic |
| elaastic-questions-db-test-8 | mySQL 8 Database used for running integration tests |
| cas | a CAS server just for testing CAS integration in dev mode |
| cas-2 | another CAS server for testing multiple CAS servers integration |
| elaastic-mailhog | a mail server for testing email sending |
| auth-iam | a keycloak server to connect with OpenID Connect |
| auth-idp-saml2 | identity provider using SAML2 protocole |
The generated autosigned certificate must be imported on the JDK used to launch elaastic.
From JAVA_HOME, run the following command :
.\bin\keytool.exe -importcert -cacerts -alias "elaastic-cas" -file <elaastic-questions-server>\docker-resources\cas\etc\cas\config\elaastic-cas-certificate.cerTo launch the application in development mode:
You have to launch at least this container :
- elaastic-questions-db-8
- elaastic-mailhog
- auth-iam
docker compose up -d elaastic-questions-db-8 elaastic-mailhog auth-iamThen, you can run the application with the following command:
gradle bootRunThe application is then accessible at http://localhost:8080.
You can access the MailHog web interface at http://localhost:8025 to check the emails sent by the application.
To manage the authentification service Keycloak, you can access the web interface at http://localhost:8081/.
To connect to the console as admin, use the password set in the .env file
(see .env.template).
More information about the Keycloak server can be found in the README.md file.
| Login | Password | role |
|---|---|---|
| fsil | 1234 | teacher |
| tsil | 1234 | student |
| jtra | 1234 | student |
| admin | admin | admin |
The project elaastic is composed of two modules:
server: The Spring Boot webapp developed in Kotlinui-components: A set of UI components developed in Vue 3
elaastic can be deployed in stand-alone mode (with an embedded Tomcat server) or in a Tomcat server.
gradle bootJarGet the elaastic-questions-server.jar file from the build/libs folder.
It is possible to test this packaged mode
by running the services in the docker-compose.konsolidation.yml file.
The application will be available at http://localhost:8080/elaastic-questions.
gradle bootWar
Get the elaastic-questions-server.war file from the build/libsfolder.
The project elaastic is composed of two modules:
server: The Spring Boot webapp developed in Kotlinui-components: A set of UI components developed in Vue 3
You can follow the README.md in the ui-components folder for more information
on how to use it in Elaastic.
One can add to an Elaastic URL the oidc_hint parameter. When set to an OAuth2 server, it will be used for
authentication.
With the development config and the Keycloak test service, you can log into Elaastic using Keycloak with
http://localhost:8080/home?oidc_hint=keycloak
Elaastic - formative assessment system Copyright (C) 2019. Université Toulouse 1 Capitole, Université Toulouse 3 Paul Sabatier
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.