Citation: Y. Cui, L. W. Ge, Y. Ding, F. Yang, L. Harrison and M. Kay, "Adaptive Assessment of Visualization Literacy," in IEEE Transactions on Visualization and Computer Graphics, vol. 30, no. 1, pp. 628-637, Jan. 2024, doi: 10.1109/TVCG.2023.3327165
- Cloud Firestore from Firebase
- Github account
- Adaptive backend API
- Create a new Cloud Firestore database in Firebase.
- Add a new web app and copy the configuration. Replace the configuration in the file src/firebase.js.
- Create a collection name "settings".
- Create a document with ID: debug (it is the default database name).
- Add two fields to the document:
mode
with the valuedemo
on
with the valuetrue
- Run
npm install
. - Run
npm run dev
to start the app. - open http://localhost:5173/AdaptiveVLATSup/demo/consent in your browser(Port may change).
If you want to deploy this assessment to a public domain, follow these steps:
- Change homepage URL to your forked Github repository, and change the name to repository name in
package.json
- Change the base URL in
vite.config.js
to your forked repository name. - Change the basename in
App.jsx
to your forked repository name. - run
npm run deploy
to deploy the app to Github Pages. - Turn on Github pages in your repository settings and select the
gh-pages
branch.
You can change the sequence of view that present to participants at app.jsx
And you can plug in any component you created
Follow the comments in app.jsx
to insert attention check questions.
- Follow the pattern of "demo" in
app.jsx
, you can create as many as assessments you want, and they can be launched and collecting data independently. - After create the Routes, you need to add one entry in settings collection in the database.The mode in database should match the path name.
- Add your new mode to
src/components/StepperVertical.jsx
if it has a different experiment flow.
The A-CALVI has more features than A-VLAT as the framework evolving. You can construct your own question sequence in assessment
or insert static questions to any position inthe assessment.(see instruction in App.jsx
)