This is scalable chat website built using Golang, designed to provide real-time messaging, file sharing, semantic search, and AI chatbot functionalities. The application is containerized using Docker Compose and deployed on Google Cloud Platform (GCP). Try it out here (not live now due to cloud cost) : https://streak.ayushsharma.co.in/
- Real-time Messaging: Powered by Golang on the backend, with Redis and RabbitMQ as the messaging queue, ensuring efficient pub/sub messaging.
- Frontend: Built with React, providing a responsive and interactive user interface.
- Database: PostgreSQL is used as the primary database for storing chat messages and user data.
- Message Persistence: Kafka is used for writing messages to the database, ensuring reliable and scalable message persistence.
- Semantic Search: Weaviate is integrated to enable semantic search in chat history, enhancing user experience.
- File Sharing: AWS Go SDK is used to enable file sharing between users using S3 buckets.
- AI Chatbot: Integrated with Dialogflow and Gemini to provide AI-driven chat functionalities.
- Monitoring: Prometheus and Grafana are used for monitoring and visualizing metrics.
- Reverse Proxy: Caddy is used as a reverse proxy to forward incoming requests to different services.
- Backend: Golang, Fiber framework
- Frontend: React, Chakra UI
- Database: PostgreSQL, Redis (will add caching later)
- Message Queue: RabbitMQ
- Message Persistence: Kafka
- Semantic Search: Weaviate
- File Storage: AWS S3 (using their Go SDK)
- AI Chatbot: Dialogflow ((using their Go SDK), Gemini
- Containerization: Docker Compose
- Deployment: Google Cloud Platform (GCP)
- Monitoring: Prometheus, Grafana
- Reverse Proxy: Caddy