Chatuu is a sleek and modern chat application designed for seamless communication. With an intuitive interface and powerful features, it redefines how you connect with others. The frontend is built using Next.js and styled with TailwindCSS, while the backend leverages Express and Prisma for a scalable and efficient architecture. Dockerized for easy deployment, Chatuu is ready to take your chat experience to the next level! β¨
- π± Responsive Design: Fully responsive, ensuring a great user experience across devices.
- π Dark Mode Support: Enjoy chatting in dark mode.
- β
Form Validation: Powered by
react-hook-form
andzod
. - β‘ Real-time Updates: Instant messaging with
socket.io-client
. - π¨ Interactive UI Components: Built with
@shadcn
for smooth user interactions.
- π Authentication: Google OAuth 2.0 for secure sign-ins.
- ποΈ Database Management: PostgreSQL handled efficiently using Prisma.
- β‘ Real-time Communication: Real-time chat powered by
socket.io
. - π§° Redis Integration: Optimized caching with Redis.
- π³ Dockerized Setup: Seamless deployment with Docker Compose.
- π Scalable Architecture: Microservices-friendly backend design.
Ensure you have the following installed:
git clone https://github.com/ayussh-2/chatuu.git
cd chatuu
-
Navigate to the client folder:
cd client
-
Install dependencies:
yarn install
-
Start the development server:
yarn dev
- To configure the backend, define environment variables inside the
.env
file with the following content:
DATABASE_URL=postgresql://postgres:password@db:5432/chatuu?schema=public
REDIS_URL=redis://redis:6379
CLIENT_URL=http://localhost:3000
JWT_SECRET=your-secret-key
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_CALLBACK_URL=http://localhost:5000/api/auth/callback/google
-
Here is an example
docker-compose.yml
file for reference:services: app: build: . container_name: chatuu-server restart: always ports: - "5000:5000" env_file: - .env depends_on: - db - redis volumes: - .:/app - /app/node_modules db: image: postgres:15 container_name: postgres-db environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: 91101 POSTGRES_DB: chatuu ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data redis: image: redis:7 container_name: redis-server ports: - "6379:6379" volumes: postgres_data:
-
Run the application:
- yarn docker-build - yarn docker-up
Access the application:
- π Frontend: http://localhost:3000
- π Backend: http://localhost:5000
- βοΈ Next.js
- π¨ TailwindCSS
- β React Hook Form
- β‘ Socket.io Client
- πͺ ShadCN UI
- π Express
- ποΈ Prisma
- π§° Redis
- π PostgreSQL
- π Docker
- π Docker Compose
We welcome contributions! Please follow these steps:
- π Fork the repository.
- π± Create a new branch (
git checkout -b feature/your-feature
). - βοΈ Commit your changes (
git commit -m 'Add your feature'
). - π€ Push to the branch (
git push origin feature/your-feature
). - π§ Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.