A comprehensive, privacy-focused communication platform with end-to-end encryption, WebRTC calling, and community features.
callschat/
├── apps/
│ ├── mobile-app/ # React Native mobile application
│ ├── web-app/ # Next.js web application
│ └── admin-panel/ # Next.js admin panel
├── backend/ # NestJS backend API
├── shared/ # Shared types, constants, utilities
└── infrastructure/ # Docker, AWS, nginx configurations
- React Native with Expo
- TypeScript
- React Navigation for navigation
- React Query for data fetching
- Zustand for state management
- Socket.IO Client for real-time features
- WebRTC for voice/video calls
- Next.js 14 with App Router
- TypeScript
- TailwindCSS for styling
- React Query for data fetching
- Socket.IO Client for real-time
- WebRTC for calls
- NestJS with TypeScript
- Prisma ORM with PostgreSQL
- Socket.IO for WebSocket
- WebRTC signaling server
- Redis for caching and sessions
- AWS S3 for media storage
- Firebase for push notifications
- PostgreSQL as primary database
- Redis for caching and real-time state
- Docker Compose for local development
- AWS for production deployment
- nginx as reverse proxy
- Phone OTP Registration
- CallsChat ID Generation
- Hidden Phone Number
- Profile Setup
- 1-to-1 Chat
- Group Chat
- Voice Call
- Video Call
- QR Code Connect
- Contact Requests
- Block and Report
- Privacy Center
- Push Notifications
- Admin Dashboard
- End-to-end encryption for messages
- Self-destructing messages
- Privacy-locked communities
- AI Assistant integration
- Digital wallet
- Business verification
- Content moderation
- Multi-device support
- Node.js >= 18.0.0
- npm >= 9.0.0
- PostgreSQL database
- Redis server
- AWS account (for S3)
- Firebase account (for FCM)
- Clone the repository and install dependencies:
npm install- Set up environment variables:
cp .env.example .env
# Edit .env with your configuration- Start infrastructure services:
npm run docker:up- Run database migrations:
npm run db:migrate
npm run db:generate- Start development servers:
# Start all services
npm run dev
# Or start individually
npm run backend
npm run mobile
npm run web
npm run adminnpm run dev- Start all development serversnpm run build- Build all packagesnpm run test- Run all testsnpm run lint- Lint all packagesnpm run db:migrate- Run Prisma migrationsnpm run db:studio- Open Prisma Studionpm run docker:up- Start Docker servicesnpm run docker:down- Stop Docker services
See .env.example for required environment variables for each service.
The database schema is defined in backend/prisma/schema.prisma and includes:
- Users with privacy settings
- Devices and multi-device support
- Conversations (1-to-1 and groups)
- Messages with encryption
- Calls and call history
- Communities and groups
- Reports and moderation
- And more...
Use Docker Compose for local development:
cd infrastructure
docker-compose up -dDeploy to AWS using the provided infrastructure configuration in infrastructure/aws/.
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
MIT
For security concerns, please email security@callschat.com