Giter Club home page Giter Club logo

brainwave's Introduction

Contributors Forks Stargazers Issues LinkedIn


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

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 & Open Ai, 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

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

Installation

  1. Get an Open AI API Key at Open AI Platform
  2. Clone the repo
     git clone https://github.com/todo-labs/brainwave.git
  3. Install NPM packages
     pnpm i
  4. Copy over your env file
     cp .env.example .env
  5. Push the prisma schema to your database
     pnpm db:push
  6. Run the development server
     pnpm dev
  7. Open 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
  • 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).

(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 - [email protected]

Project Link: https://brainwave.quest

(back to top)

brainwave's People

Contributors

conceptcodes avatar ojakanbi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

brainwave's Issues

Enhance Verify Request Page

Description:
The Verify Request page in our Next.js application, which is displayed to users after submitting their email through NextAuth email provider, requires improvements to provide users with a more informative and engaging experience.

Priority: Medium

Assignee: OJ

Labels: Next.js, NextAuth, User Interface, Enhancement

Components: Authentication, Email Provider

Attachments:

Image

Comments:

  • Please provide a detailed overview of the current implementation of the Verify Request page, including the relevant components, routing, and NextAuth integration. This will help us understand the existing codebase and make informed decisions for the enhancements. You can refer to the following resources for more information:
  • Describe the desired enhancements for the page, such as adding relevant content, improving visual design, and enhancing user interaction. Feel free to explore different design inspirations and best practices. You can find useful resources on:
  • We encourage you to follow best practices for Next.js development, such as utilizing component-based architecture, efficient data fetching, and Next.js routing. You can find valuable insights and examples in the following resources:
  • To address specific enhancements, we suggest referring to code samples and patterns, such as utilizing Next.js layout components, implementing conditional rendering, and handling form submissions. Here are some helpful code snippets:
  • We will provide regular feedback and code reviews to support your progress and ensure the quality of the implementation. Please submit your work for review using our code review process and feel free to reach out for any clarifications or assistance.
  • We encourage open communication and teamwork, so don't hesitate to ask questions or discuss any challenges you may encounter.

By enhancing the Verify Request page, we aim to provide a better user experience and leverage the assignee's skills and growth as a developer.


Feel free to customize the template further based on your specific requirements and the assignee's level of expertise.

Create the quiz card

Description:

I am assigning you a ticket to implement an API endpoint that allows users to retrieve a list of quizzes based on a specific topic. This task will help you gain experience in working with the T3 stack (TypeScript, Next.js, and Prisma) and improve your skills in building API endpoints.

Tasks:

  • Create an enum for quiz types in the src/enums directory. (src/lib/enum.ts)
  • Implement a validator function to ensure the selected quiz topic is valid and supported. (src/server/validators/index.ts)
  • Define the quiz model in the Prisma schema file. (prisma/schema.prisma)
  • Create the necessary database migrations to reflect the changes in the Prisma schema. (prisma/migrations)
  • Implement an API endpoint that accepts a topic parameter and retrieves quizzes associated with that topic. (src/server/api/routers/quiz.ts)
  • Add appropriate error handling to handle cases where no quizzes are found for the specified topic.

Notes:

  • You can find the necessary files and directories to work on in the project's codebase.
  • Remember to follow the coding standards and style guidelines established in the project.
  • Feel free to ask for help or clarification if you encounter any difficulties during the implementation process.
  • Don't forget to test your changes thoroughly and ensure the API endpoint functions as expected.

Acceptance Criteria:

  • The API endpoint should retrieve quizzes based on the specified topic and return a JSON response containing the quiz details.
  • The quiz model in the Prisma schema should be correctly defined with all the necessary fields.
  • The API endpoint should handle cases where no quizzes are found for the specified topic and return an appropriate response.
  • Unit tests should be written and passing to ensure the correctness of the API endpoint implementation.
  • The API documentation should be updated to include the newly implemented endpoint and its usage details.

Additional Resources:

add an endpoint to list all the past quizzes for a user

Description:

I am assigning you a new ticket to implement an API endpoint that allows users to view their past exams. This task will further enhance your understanding of working with the T3 stack (TypeScript, Next.js, and Prisma) and strengthen your skills in building API endpoints and retrieving data from the database.

The goal is to create a new endpoint that from the FE we can call to get a list of past exams for a user based on a date range and topic

Tasks:

  • Implement an API endpoint that fetches and returns a user's past exams based on their unique identifier. (src/server/api/routers/quiz.ts)
  • Include necessary error handling to handle cases where no past exams are found for the specified user.
  • Write unit tests to ensure the correctness of the API endpoint implementation.
  • Update the API documentation to include the newly implemented endpoint and provide details on how to use it.

Notes:

  • Use the existing codebase as a reference and follow the established coding standards and style guidelines.
  • Feel free to seek assistance or clarification if you encounter any challenges during the implementation process.
  • Thoroughly test the functionality of the API endpoint to ensure it retrieves the correct past exams for each user.
  • Document any changes or additions made to the database schema or API endpoints.

Acceptance Criteria:

  • The API endpoint should retrieve and return a user's past exams based on their unique identifier.
  • The necessary database model should be defined in the Prisma schema with all the required fields to store exam information.
  • Proper error handling should be implemented to handle cases where no past exams are found for the specified user.
  • Unit tests should be written and passing to ensure the correctness of the API endpoint implementation.
  • The API documentation should be updated to include the newly implemented endpoint and provide information on how to use it.

Additional Resources:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.