Quizmefy: A Fun and Educational Quiz Platform
Inspiration
The inspiration behind Quizmefy was to create an engaging and informative platform that allows students to enhance their learning experience on the go. We recognized the need for a quiz application that could offer a wide range of topics, including obscure subjects often overlooked in online quizzes. To achieve this, we leveraged the power of AI to generate customized questions for any subject in the world.
What it does
Quizmefy empowers users to generate personalized quizzes based on their preferred topics. The platform offers two exciting game modes: Multiple Choice Questions (MCQ) and Open-Ended. You can also upload custom pdf documents to the AI for it to ingest your custom context to generate questions.
Additionally, Quizmefy enables users to challenge their friends in thrilling multiplayer battles, fostering a competitive and collaborative learning environment.
How we built it
Quizmefy is built on the robust foundation of a microservice architecture. The frontend of the application is developed using NextJS and is hosted on the Vercel cloud platform. We implemented two additional microservices - a Flask AI backend for question generation and a WebSocket Express server. These microservices are hosted on our own AWS EC2 instance, ensuring scalability and seamless performance.
To achieve sophisticated question generation, we harnessed the power of OpenAI's gpt3.5-turbo LLM model within the Flask server.
Challenges we ran into
During the development process, we encountered challenges with the GPT model's JSON output. Often, the model would produce invalid JSON, containing erroneous characters or trailing commas. This caused our application to crash when attempting to parse the output.
To overcome this obstacle, we discovered a valuable solution in the form of an 'AutoGPT' correction library. This ingenious tool allowed us to communicate the desired shape of the JSON output to GPT. It then iteratively corrected any errors by parsing the output as JSON, refining it until it met our specifications. This breakthrough enabled us to obtain flawless question outputs that we could manipulate effectively.
Accomplishments that we're proud of
One of the most significant achievements in Quizmefy is the creation of a visually appealing and user-friendly interface. Thanks to the efforts of our teammate, KingFish, we were able to design a beautiful and accessible UI using TailwindCSS and ShadCN, a customizable component library.
Seeing the application bring real value to our friends and witnessing the dynamic questions generated by the AI further validated our pride in this project. The positive feedback and engagement from users motivated us to keep refining and enhancing Quizmefy.
What we learned
Quizmefy provided us with invaluable experience in implementing a full stack application using the microservice architecture. Breaking down the various components into separate microservices allowed for better maintainability and smoother collaboration among the team members.
Throughout the development process, we also gained insights into proper CI/CD procedures to ensure continuous and seamless deployment of our services. This knowledge proved essential in maintaining a stable and up-to-date application.
What's next for Quizmefy
Looking ahead, our vision for Quizmefy includes expanding the multiplayer mode with more exciting game modes to keep users engaged and entertained. Additionally, we plan to introduce a variety of question formats, further enriching the user experience.
In the future, we aim to incorporate a feature that allows users to upload their own documents, such as PDFs or slides. The AI would then process and create quizzes based on the uploaded content, catering to students who wish to revise and test their knowledge on their academic materials. This enhancement will make the study process more enjoyable and effective for users.
Home Page
Introduction Modal
Dashboard
Loading Animation Page
MCQ Page
Open Ended Page
Summary Page
Questions Page
Built With
- next-auth
- nextjs13
- openai
- prisma
- react-query
- s3
- socket.io
- tidb
- trpc
- typescript
Log in or sign up for Devpost to join the conversation.