# 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.