Click here to visit project on DevPost
As students, we struggle with online learning (especially online lectures) because they are often overwhelming and often filled with "fluff" (or technical issues). As a result, we want labels and/or timestamps that tell us the most important parts of a lecture. With AssemblyAI's API and the social challenge, we felt that it was a good opportunity to create something useful that we (and possibly other students) need.
ClassAI is a classroom platform where teachers can post video lectures. These video lectures are uploaded to Google's Firebase Cloud Storage, and then processed by both our backend and AssemblyAI's API to pinpoint and summarize the most important parts of the lecture. Once the video is processed, the teacher will be able to see the recommended timestamps and summaries. The teacher will then verify these timestamps/summaries and confirm the upload. The uploaded lecture, its timestamps, and summary can then be seen by students.
We also implemented a class discussion for students to discuss with each other. We also have an amazing UI/UX as well as dark mode (so we can study at 2AM the night before the exam đ)
We built the core feature (processing the video with AI) using the following workflow:
Upload video to our backend -> Upload the video from our backend to the cloud and get the public URL -> Pass the URL to AssemblyAI's API to process the video -> Get the resulting data from AssemblyAI's API -> Process/clean the data for the core information we need -> Upload the information and metadata to our Firebase database -> Show the information to the teacher for configuration -> Save teacher's configurations -> Video and timestamps/summaries can now be seen by students
The database design was inspired by tree structures (in CS) and modified so that it worked with "mini-hashtables"
The frontend was built using Vuex and Tailwind CSS to support dark mode. We used lifecycle hooks to ensure that each user had their preferred display mode
- Working with the AssemblyAI API (couldn't upload local files)
- State management, Tailwind CSS in the frontend
- Designing a tree-like database
- Saving files locally, uploading files to the cloud and creating public file URLs
- A completed project with nice UI/UX
- Designing the database and designing the video processing workflow
- State management and dark mode
- Working with the cloud
- Vuex, Firebase Cloud Storage, Tailwind CSS, Working with AssemblyAI's API (all first time using)
- Got better at Vue, Express, Database designing
- More features like chat rooms between students and teachers
- More teacher customization on the video uploads
- Allow the teacher to have more control/customization of their class (in general)
En tant qu'Ă©tudiants, nous avons du mal avec l'apprentissage en ligne (en particulier les cours en ligne) car ils sont souvent Ă©crasants et souvent remplis de « peluches » (ou de problĂšmes techniques). Par consĂ©quent, nous voulons des Ă©tiquettes et/ou des horodatages qui nous indiquent les parties les plus importantes d'une confĂ©rence. Avec l'API d'AssemblyAI et le dĂ©fi social, nous avons pensĂ© que c'Ă©tait une bonne occasion de crĂ©er quelque chose d'utile dont nous (et peut-ĂȘtre d'autres Ă©tudiants) avons besoin.
ClassAI est une plateforme de classe oĂč les enseignants peuvent publier des cours vidĂ©o. Ces confĂ©rences vidĂ©o sont tĂ©lĂ©chargĂ©es sur le stockage cloud Firebase de Google, puis traitĂ©es Ă la fois par notre backend et l'API d'AssemblyAI pour identifier et rĂ©sumer les parties les plus importantes de la confĂ©rence. Une fois la vidĂ©o traitĂ©e, l'enseignant pourra voir les horodatages et les rĂ©sumĂ©s recommandĂ©s. L'enseignant vĂ©rifiera ensuite ces horodatages/rĂ©sumĂ©s et confirmera le tĂ©lĂ©chargement. La session tĂ©lĂ©chargĂ©e, ses horodatages et son rĂ©sumĂ© peuvent ensuite ĂȘtre vus par les Ă©tudiants.
Nous avons Ă©galement mis en place une discussion en classe pour que les Ă©tudiants puissent discuter entre eux. Nous avons Ă©galement une UI/UX incroyable ainsi qu'un mode sombre (nous pouvons donc Ă©tudier Ă 2h du matin la veille de l'examen đ)
Nous avons construit la fonctionnalité principale (traitement de la vidéo avec l'IA) en utilisant le flux de travail suivant:
TĂ©lĂ©chargez la vidĂ©o sur notre backend -> TĂ©lĂ©chargez la vidĂ©o de notre backend vers le cloud et obtenez l'URL publique -> Transmettez l'URL Ă l'API de AssemblyAI pour traiter la vidĂ©o -> Obtenez les donnĂ©es rĂ©sultantes de l'API de AssemblyAI -> Traiter/nettoyer les donnĂ©es pour les informations de base dont nous avons besoin -> TĂ©lĂ©charger les informations et les mĂ©tadonnĂ©es dans notre base de donnĂ©es Firebase -> Afficher les informations Ă l'enseignant pour la configuration -> Enregistrer les configurations de l'enseignant -> La vidĂ©o et les horodatages/rĂ©sumĂ©s peuvent dĂ©sormais ĂȘtre vus par les Ă©tudiants
La conception de la base de données a été inspirée des structures arborescentes (dans CS) et modifiée pour fonctionner avec des "mini-hashtables"
L'interface a été construite à l'aide de CSS Vuex et Tailwind pour prendre en charge le mode sombre. Nous avons utilisé des crochets de cycle de vie pour nous assurer que chaque utilisateur avait son mode d'affichage préféré
- Travailler avec l'API AssemblyAI (impossible de télécharger des fichiers locaux)
- Gestion des Ă©tats, Tailwind CSS dans le frontend
- Conception d'une base de données arborescente
- Enregistrement de fichiers localement, téléchargement de fichiers sur le cloud et création d'URL de fichiers publics
- Un projet terminé avec une belle UI/UX
- Conception de la base de données et conception du workflow de traitement vidéo
- Gestion d'Ă©tat et mode sombre
- Travailler avec le cloud
- Vuex, Firebase Cloud Storage, Tailwind CSS, Utilisation de l'API AssemblyAI (toutes les premiĂšres utilisations)
- Amélioré à Vue, Express, Conception de bases de données
- Plus de fonctionnalités comme les salons de discussion entre étudiants et enseignants
- Plus de personnalisation des enseignants sur les téléchargements de vidéos
- Permettre à l'enseignant d'avoir plus de contrÎle/personnalisation de sa classe (en général)