Vodka is a real-time chat application built with NestJS, featuring modern communication features and robust backend architecture. This repository contains the backend implementation of the Vodka chat application.
- 🔐 Authentication & Authorization
- 💬 Real-time messaging with WebSocket
- 👥 Group chat functionality
- 👤 User management
- 📱 Contact management
- 📨 Message history
- 🔍 Search functionality
- 📱 QR Code generation for easy sharing
- 🤖 AI-powered features
- 📧 Email notifications
- 📱 SMS notifications
- 💾 File storage
- 🔄 Caching system
- Framework: NestJS
- Language: TypeScript
- Database: Prisma ORM
- Real-time: WebSocket
- Authentication: JWT
- Storage: File system
- Caching: Redis
- AI Integration: OpenAI
- Notifications: Email & SMS services
src/
├── ai/ # AI integration features
├── auth/ # Authentication & authorization
├── cache/ # Caching system
├── contact/ # Contact management
├── event/ # Event handling
├── friend/ # Friend management
├── group/ # Group chat functionality
├── mail/ # Email service
├── message/ # Message handling
├── prisma/ # Database schema and migrations
├── qr-code/ # QR code generation
├── sms/ # SMS service
├── storage/ # File storage
└── user/ # User management
- Node.js (v16 or higher)
- npm or yarn
- Redis (for caching)
- Database (configured in Prisma)
# Install dependencies
$ npm install
# Set up environment variables
$ cp .env.example .env
# Edit .env with your configuration# Development
$ npm run start
# Watch mode
$ npm run start:dev
# Production mode
$ npm run start:prod# Generate Prisma client
$ npx prisma generate
# Run migrations
$ npx prisma migrate devThe API documentation is available at /api when running the application in development mode.
# Unit tests
$ npm run test
# E2E tests
$ npm run test:e2e
# Test coverage
$ npm run test:cov- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.