Skip to content

cardosakv/cha-cha-chat

Repository files navigation

Cha-Cha-Chat

GitHub Created At Quality Gate Status GitHub branch check runs

Cha-Cha-Chat is public chat where everyone's invited to chill and chit-chat. It is a real-time web chat application using websockets built for learning.

🌐 Try it live: chachachat.site

🛠️ Tech Stack

Frontend (Nuxt 3)

  • Nuxt 3 – Vue-powered full-stack framework
  • TypeScript – Type-safe development
  • Tailwind CSS – Utility-first styling
  • Vite – Lightning-fast bundler and dev server
  • ESLint & Prettier – Code linting and formatting
  • pnpm – Fast, disk-efficient package manager

Backend (NestJS)

  • NestJS – Scalable server-side framework for Node.js
  • TypeScript – Strongly typed JavaScript
  • PostgreSQL – Relational database for data storage
  • Prisma – Type-safe ORM for PostgreSQL (or any supported DB)
  • Socket.IO – Real-time communication via WebSockets
  • ESLint & Prettier – Code linting and formatting
  • pnpm – Shared workspace package manager

🚀 Getting Started

This repo is structured as a Turborepo monorepo using pnpm workspaces.

Prerequisites

  • Node.js (v18+ recommended)
  • pnpm (npm install -g pnpm)
  • A PostgreSQL instance (local or cloud)

1. Clone the repository

git clone https://github.com/cardosakv/cha-cha-chat.git
cd cha-cha-chat
pnpm install

2. Configure Environment Variables

Each app has its own .env file.

For Backend (/apps/backend/.env)

PORT=your_backend_port
DATABASE_URL=your_postgres_db_url

For Frontend (/apps/frontend/.env)

PORT=your_frontend_port
NUXT_PUBLIC_API_BASE_URL=your_backend_api_url

3. Setup the Database

cd apps/backend
npx prisma migrate dev

4. Run Locally

In the root directory:

pnpm dev