🚀 오픈챗 (OpenChat)

바이브코딩으로 채팅 기능을 쉽게 개발하기 위한 전문 프롬프트 오픈소스 프로젝트

MIT License Flutter Alpine.js Firebase 실시간 채팅

📋 프로젝트 소개

오픈챗은 개발자들이 채팅 기능을 빠르고 효율적으로 구현할 수 있도록 돕는 오픈소스 프로젝트입니다. 바이브코딩과 AI 기반 개발 도구를 활용하여 복잡한 채팅 시스템을 쉽게 구축할 수 있도록 전문 프롬프트, 실용적인 코드 예제, 그리고 상세한 문서를 제공합니다.

💬 실시간 통신

WebSocket, Firebase Realtime Database를 활용한 실시간 메시지 전송

🔒 보안 및 인증

사용자 인증, 메시지 암호화, 접근 권한 관리

📱 크로스 플랫폼

웹, iOS, Android를 아우르는 다양한 플랫폼 지원

⚡ 성능 최적화

메시지 페이지네이션, 캐싱, 리소스 관리

🛠️ 기술 스택

본 프로젝트에서는 Flutter와 Alpine.js로 예제 코드를 제공하지만, 각자의 프로젝트에 맞는 언어와 프레임워크를 선택하여 구현할 수 있습니다.

웹 프론트엔드

  • Alpine.js (기본 예제)
  • React
  • Vue.js
  • Angular
  • Svelte

모바일

  • Flutter (기본 예제)
  • React Native
  • Swift (iOS)
  • Kotlin (Android)

백엔드

  • Firebase
  • Node.js
  • Python
  • Java Spring
  • Go

실시간 통신

  • WebSocket
  • Socket.io
  • Firebase Realtime DB
  • Pusher

💡 핵심 기능

기본 채팅 기능

미디어 및 파일

고급 기능

// Flutter 메시지 전송 예제
void sendMessage(String text) async {
  final message = Message(
    text: text,
    senderId: currentUser.id,
    roomId: currentRoom.id,
    timestamp: DateTime.now(),
  );

  await FirebaseDatabase.instance
    .ref('messages/${currentRoom.id}')
    .push()
    .set(message.toJson());
}

📚 문서

기본 개념 및 로직

Firebase 관련

JavaScript 개발 설정

데이터베이스 및 API

Claude Code 연동

🚀 시작하기

  1. GitHub 저장소를 클론합니다
  2. 필요한 문서를 참고하여 프로젝트 설정을 진행합니다
  3. 제공된 예제 코드를 참고하여 채팅 기능을 구현합니다
  4. 각자의 플랫폼과 요구사항에 맞게 커스터마이징합니다
// Alpine.js 실시간 메시지 수신 예제
Alpine.data('chat', () => ({
    messages: [],

    init() {
        // Firebase 실시간 리스너 설정
        firebase.database()
            .ref(`messages/${this.roomId}`)
            .on('child_added', (snapshot) => {
                this.messages.push(snapshot.val());
                this.scrollToBottom();
            });
    }
}))

🤝 기여하기

오픈챗은 오픈소스 프로젝트입니다. 여러분의 기여를 환영합니다!

자세한 내용은 GitHub 저장소를 참고해주세요.