Table of Contents
Introducing Brainwave, an innovative quiz platform that harnesses the capabilities of OpenAI to generate real-time practice exams. Our vision is to establish an accessible and engaging hub for learning and self-challenge through quizzes. By capitalizing on OpenAI's potential, we strive to offer a distinctive and dynamic learning journey that adjusts to individual users' knowledge levels. With Brainwave, users can explore quizzes in diverse subjects, obtaining instant performance feedback for an enriched educational experience.
We're excited to announce that we now support multiple languages! Thanks to the power of next-i18next & Open Ai, we've added E2E support for the following languages:
- 🇦🇪 Arabic
- 🇨🇳 Chinese
- 🇩🇪 German
- 🇺🇸 English (default)
- 🇪🇸 Spanish
- 🇫🇷 French
- 🇮🇳 Hindi
- 🇮🇹 Italian
- 🇯🇵 Japanese
- 🇰🇷 Korean
- 🇳🇬 Yorùbá
- 🇵🇹 Portuguese
- 🇷🇺 Russian
To switch to a different language, simply click on the language selector on the profile page and choose your preferred language. We hope this new feature makes Brainwave more accessible and user-friendly for everyone!
- Email Magic Link Authentication
- Quiz Generation
- Results Breakdown
- How to use NextAuth.js to implement authentication and authorization
- Langchain API integration
- How to use tRPC to implement a GraphQL-like API
- How to use Tailwind CSS & Radix UI to build a responsive and engaging UI
- How to setup an embedding vector database
Mixpanel
we prioritize data-driven decision-making to enhance the user experience and continuously improve our services. To achieve this, we have integrated Mixpanel, a powerful analytics and user engagement platform, into our application.
Sentry
We have integrated Sentry, an open-source error tracking tool, into our application using Sentry's Next.js SDK. This allows us to monitor and fix crashes in real-time, as well as monitor our application's performance and identify potential bottlenecks. Sentry's session replay feature also allows us to see exactly what our users are experiencing, which helps us to improve our application's usability.
To get started with Brainwave, you will need to set up your development environment. You will need the following tools:
- Node.js (Recommended version: 18)
- Pnpm (Recommended version: 6)
- Postgresql (Recommended version: 15)
- Get an Open AI API Key at Open AI Platform
- Clone the repo
git clone https://github.com/todo-labs/brainwave.git
- Install NPM packages
pnpm i
- Copy over your env file
cp .env.example .env
- Push the prisma schema to your database
pnpm db:push
- Run the development server
pnpm dev
- Open http://localhost:3000 with your browser to see the result.
- Setup the vector database
- Pre load a dataset of past SAT Practice Exams
- Setup a cron job to update the database with new exams
- Link vector db to quiz generation query
- Enhance the quiz generation procedure
- Add support for different question types
- Enhance results breakdown UI and functionality
- Add a leader board and ranking system
- Enhance the mobile experience
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'feat(scope): Add some AmazingFeature (fixes #123)'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
David Ojo - @conceptcodes - [email protected]
Project Link: https://brainwave.quest