Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/todo-labs/brainwave

Revolutionize your SAT exam preparation with our cutting-edge AI-powered app that provides personalized study plans, comprehensive practice tests, and advanced performance analytics
https://github.com/todo-labs/brainwave

langchain-typescript nextjs openai postgresql prisma react shadcn-ui t3-stack tailwindcss trpc

Last synced: 2 months ago
JSON representation

Revolutionize your SAT exam preparation with our cutting-edge AI-powered app that provides personalized study plans, comprehensive practice tests, and advanced performance analytics

Awesome Lists containing this project

README

        

[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![LinkedIn][linkedin-shield]][linkedin-url]





Logo

Brainwave



View Demo
ยท
Report Bug
ยท
Request Feature


Table of Contents



  1. About The Project



  2. Getting Started


  3. Roadmap

  4. Contributing

  5. License

  6. Contact

## About The Project

[![Product Name Screen Shot][product-screenshot]][app-url]

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.

(back to top)

## ๐ŸŒŽ New Languages Supported

We're excited to announce that we now support multiple languages! Thanks to the power of [next-i18next](https://www.npmjs.com/package/next-i18next) & [Open Ai](https://openai.com/), we've added E2E support for the following languages:

- ๐Ÿ‡ฆ๐Ÿ‡ช Arabic
- ๐Ÿ‡จ๐Ÿ‡ณ Chinese
- ๐Ÿ‡ฉ๐Ÿ‡ช German
- ๐Ÿ‡บ๐Ÿ‡ธ English (default)
- ๐Ÿ‡ช๐Ÿ‡ธ Spanish
- ๐Ÿ‡ซ๐Ÿ‡ท French
- ๐Ÿ‡ฎ๐Ÿ‡ณ Hindi
- ๐Ÿ‡ฎ๐Ÿ‡น Italian
- ๐Ÿ‡ฏ๐Ÿ‡ต Japanese
- ๐Ÿ‡ฐ๐Ÿ‡ท Korean
- ๐Ÿ‡ณ๐Ÿ‡ฌ Yoruฬ€baฬ
- ๐Ÿ‡ต๐Ÿ‡น 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!

### Built With

- [![Next][Next.js]][Next-url]
- [![React][React.js]][React-url]
- [![Prisma][Prisma]][Prisma-url]
- [![Tailwind CSS][Tailwind CSS]][Tailwind CSS-url]
- [![Vercel][Vercel]][Verce-url]
- [![OpenAi][OpenAi]][OpenAi-url]
- [Next Auth](https://next-auth.js.org/)
- [Langchain](https://js.langchain.com/docs/get_started/introduction)
- [shadcn/ui](https://ui.shadcn.com/docs)
- [TRPC](https://trpc.io/)

### Features

- Email Magic Link Authentication
- Quiz Generation
- Results Breakdown

### What I Learned ?

- 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

(back to top)

## ๐Ÿงฉ Integrations

**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](https://docs.sentry.io/platforms/javascript/guides/nextjs/).
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.

### Prerequisites

To get started with Brainwave, you will need to set up your development environment. You will need the following tools:

- [Node.js](https://nodejs.org/) (Recommended version: 18)
- [Pnpm](https://pnpm.io/) (Recommended version: 6)
- [Postgresql](https://www.postgresql.org/) (Recommended version: 15)

### Installation

1. Get an Open AI API Key at [Open AI Platform](https://platform.openai.com/)
2. Clone the repo
```bash
git clone https://github.com/todo-labs/brainwave.git
```
3. Install NPM packages
```bash
pnpm i
```
4. Copy over your env file
```bash
cp .env.example .env
```
5. Push the prisma schema to your database
```bash
pnpm db:push
```
6. Run the development server
```bash
pnpm dev
```
7. Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

(back to top)

## Roadmap

- [ ] 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
- [x] Enhance results breakdown UI and functionality
- [x] Add a leader board and ranking system
- [ ] Enhance the mobile experience

See the [open issues](https://github.com/todo-labs/brainwave/issues) for a full list of proposed features (and known issues).

(back to top)

## Contributing

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!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'feat(scope): Add some AmazingFeature (fixes #123)'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

(back to top)

## License

Distributed under the MIT License. See `LICENSE.txt` for more information.

(back to top)

## Contact

David Ojo - [@conceptcodes](https://github.com/conceptcodes) - [email protected]

Project Link: [https://brainwave.quest](https://brainwave.quest)

(back to top)

[contributors-shield]: https://img.shields.io/github/contributors/todo-labs/brainwave.svg?style=for-the-badge
[contributors-url]: https://github.com/todo-labs/brainwave/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/todo-labs/brainwave.svg?style=for-the-badge
[forks-url]: https://github.com/todo-labs/brainwave/network/members
[stars-shield]: https://img.shields.io/github/stars/todo-labs/brainwave.svg?style=for-the-badge
[stars-url]: https://github.com/todo-labs/brainwave/stargazers
[issues-shield]: https://img.shields.io/github/issues/todo-labs/brainwave.svg?style=for-the-badge
[issues-url]: https://github.com/todo-labs/brainwave/issues
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/david-ojo-66a12a147
[product-screenshot]: public/screenshot.png
[Next.js]: https://img.shields.io/badge/next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white
[Next-url]: https://nextjs.org/
[React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB
[React-url]: https://reactjs.org/
[Prisma]: https://img.shields.io/badge/Prisma-3982CE?style=for-the-badge&logo=Prisma&logoColor=white
[Prisma-url]: https://www.prisma.io/
[app-url]: https://brainwave.quest
[Verce-url]: https://vercel.com/
[Vercel]: https://img.shields.io/badge/vercel-%23000000.svg?style=for-the-badge&logo=vercel&logoColor=white
[Tailwind CSS]: https://img.shields.io/badge/Tailwind%20CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white
[Tailwind CSS-url]: https://tailwindcss.com/
[OpenAi]: https://img.shields.io/badge/chatGPT-74aa9c?style=for-the-badge&logo=openai&logoColor=white
[OpenAi-url]: https://openai.com/