32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
# TaptApp Data collection platform
|
|
|
|
## Overview
|
|
|
|
This is a small web app to collect data from users for a study. It used SvelteKit, Drizzle ORM (Turso), Tailwind, and Lucia for authentication.
|
|
|
|
The data collection involves users listening to audio files and simultaneously rating them using a slider. All slider movements will be saved to we have a time course of participants' ratings throughout the audio file.
|
|
|
|
The app should use shadcn svelte components for the UI where possible.
|
|
|
|
## App structure
|
|
|
|
The app will have an admin backend and a user frontend. The admin backend is used create invite links, while the user frontend is where participants will listen to audio files and provide their ratings.
|
|
|
|
### Admin backend
|
|
|
|
The admin backend should be password protected. The username and password are stored in the `.env` file. The admin backend allows you to:
|
|
|
|
- Create invite links for participants
|
|
- View existing invite links
|
|
- View participant ratings
|
|
- Upload and manage audio files which are saved as blobs in the database.
|
|
|
|
### User frontend
|
|
|
|
The user frontend is where participants will interact with the app. It allows users to:
|
|
|
|
- Access using their invite link. The invite link will contain a unique token that identifies the participant.
|
|
- Listen to audio files
|
|
- Rate the audio files using a slider
|
|
- Leave and resume their session. This means that users should be able to see which audio files they have already rated and continue from where they left off.
|