Skip to content

HeyMate is an AI-powered messaging application that allows users to chat with their friends and family. A place to hangout and have fun with your friends.

License

Notifications You must be signed in to change notification settings

rohittcodes/heymate

Repository files navigation

MindsDB Quira.sh

HeyMate

GitHub repo size GitHub GitHub last commit

HeyMate is an AI-powered messaging application that allows users to chat with their friends and family. A place to hangout and have fun with your friends. HeyMate is built using MindsDB to provide AI-powered responses to the users through various chatbots and models.

Table of Contents

Demo 🚀

HeyMate

HeyMate.-.Made.with.Clipchamp.1.mp4

Note: If you're not able to access the demo video, please visit this youtube link: HeyMate Demo

Features 🎉

  • Authentication: Secure Authentication and Authorization using Auth.js
  • Core Features: Chat with Friends and Family you care about. No limits on the number of friends you can chat with.
    • Direct Messaging: Chat with your friends and family in real-time.
    • Group Messaging: Create groups and chat with multiple friends at once.
    • Invite Friends: Invite your friends to join HeyMate and chat with them.
  • AI-Powered Chatbots: Want to have fun or need help with something? Use the MindsDB powered chatbots to get the help you need. The chatbots available are:
    • Cleverbot: Chat with Cleverbot, the ai bot with the best knowledge around the world.
    • DankMeme: Ai bot to provide you with the best memes you can find on the internet.
    • CodeChimp: Ai bot to help you with your coding problems.
    • HugoBot: Most human-like ai bot to chat with.
    • AstroBot: Ai bot to help you with your astrology problems.
  • Sentiment Analysis: Get the sentiment of the messages you send and receive.

Tech Stack 🛠️

  • Frontend: React.js, Next.js, Tailwind CSS, Shadcn UI
  • Database: MySQL, MindsDB
  • Authentication: Auth.js
  • Core packages: pusher-js, uploadthing, resend

Installation and Usage 📚

  1. Clone the repository
git clone https://github.com/RohittCodes/heymate.git
  1. Change the directory
cd heymate
  1. Install the dependencies
npm install
  1. Install Docker Desktop or Docker Engine and follow the instructions to setup MindsDB from the self host page

Setup

  1. Create a .env file in the root directory of the project and add the following environment variables
DATABASE_URL="mysql://root:password@localhost:3306/heymate?=public"
AUTH_SECRET="your-auth-secret-key"

UPLOADTHING_SECRET="your-uploadthing-secret-key"
UPLOADTHING_APP_ID="your-uploadthing-app-id"

GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"

RESEND_API_KEY="your-resend-api-key"
RESEND_FROM_EMAIL="onboarding@resend.dev"

NEXT_PUBLIC_URL="http://localhost:3000"

NEXT_PUBLIC_PUSHER_APP_KEY="your-pusher-app-key"
PUSHER_APP_ID="your-pusher-app-id"
PUSHER_SECRET="your-pusher-secret-key
PUSHER_CLUSTER="your-pusher-cluster"

MINDSDB_HOST="http://localhost:47334"

MindsDB Setup

  1. Run the MindsDB Docker container by following the instructions from the self host page
  2. Create a MindsDB account and get the API key from the MindsDB dashboard
  3. Set up the MindsDB engine using minds_endpoint
CREATE ML_ENGINE minds_endpoint_engine
FROM minds_endpoint
USING
      minds_endpoint_api_key = 'api-key-value';
  1. Create a model using the MindsDB engine
CREATE MODEL model_name --replace model_name with the model you would like to create
PREDICT answer
USING
      engine = 'minds_endpoint_engine',
      model_name = 'model-name',  --replace model-name with the model you would like to use
      prompt_template = 'prompt-to-the-model'  --replace prompt-to-the-model with the prompt_template you would like to use
  1. Query the model to test it in MindsDB editor
SELECT text, answer
FROM minds_endpoint_model
WHERE text = 'I love machine learning!';

Example bot that we've created using MindsDB

CREATE MODEL dankmeme
PREDICT answer
USING
      engine = 'minds_endpoint_engine',
      model_name = 'dankmeme',
      prompt_template = 'act like dankmeme, an ai bot that provides you with the best memes you can find on the internet and provide a response to the following text: {{text}}';

NOTE: To use the bots you need to manually setup the bots into your mysql database using prisma studio. Will be updating the code to automate this process in the future and users will be able to setup their own bots using the MindsDB API.

Running the Application

  1. Run the development server
npm run dev
  1. Open http://localhost:3000 with your browser to see the result.

  2. You can start chatting with your friends and family and use the AI-powered chatbots to have fun.

Contributing 🤝

Contributions are welcome! Feel free to open an issue or submit a pull request if you have any ideas or suggestions. You can also reach out to me on Twitter if you have any questions or feedback.

Contributors ✨

About

HeyMate is an AI-powered messaging application that allows users to chat with their friends and family. A place to hangout and have fun with your friends.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published