Ketchapp is a fully real-time user interaction platform that increases active user engagement by approximately 30% and supports over 100 simultaneous users. This is achieved by leveraging a serverless, event-driven architecture using React (with useEffect hooks) and WebSocket on the AWS CloudFront network. Additionally, the application integrates intelligent agentic moderators via Groq API to automate conversation management and streamline user interactions.
Click here to access the live demo
- Real-time communication with WebSockets
- User presence tracking
- Public and private messaging
- Serverless architecture for scalability
- AI-powered chatbot moderation using Groq API
- Persistent chat logging to AWS S3
- Frontend: React (useEffect, useState, useRef)
- Backend: AWS Lambda, API Gateway, WebSocket
- Cloud Services: AWS CloudFront, S3
- AI Integration: Groq API
- Node.js (>= 14.x)
- AWS CLI configured with necessary permissions
- Groq API key
- Clone the repository:
git clone https://github.com/yourusername/ketchapp.git cd ketchapp
- Deploy the AWS Lambda function and API Gateway WebSocket:
- Update
ENDPOINT
inlambda_handler.py
with your API Gateway WebSocket URL. - Ensure
S3_BUCKET_NAME
is set to your AWS S3 bucket name. - Deploy using AWS CLI or Terraform (if applicable).
- Update
- Navigate to the frontend directory:
cd frontend
- Install dependencies:
npm install
- Set environment variables:
echo "REACT_APP_API_KEY=your_groq_api_key" > .env
- Start the development server:
npm start
- Open the application and enter a username.
- Click Connect to join the chat.
- Send public messages or private messages to specific users.
- Mention the bot (
@RoBot
) in your message to get AI-generated responses.
To deploy the frontend using AWS Amplify:
amplify init
amplify add hosting
amplify publish
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch (
feature-branch
). - Commit your changes.
- Push to the branch and submit a pull request.
This project is licensed under the MIT License.
For any queries, contact [your email or GitHub profile link].