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.