A mobile-first, anime avatar reality show platform where contestants communicate only through live chats, audiences watch and react in real time, and votes decide eliminations β all powered by a high-performance, scalable real-time architecture.
Vibe Villa is a live, streaming reality show application where:
- π Contestants hide behind anime avatars and communicate only through live chat
- ποΈ Audiences watch conversations live and react with emojis in real time
- β‘ Voting decides eliminations β results update instantly
- π± Everything happens live, like a real-time stream on mobile
| Goal | Description |
|---|---|
| Real-Time Chat | Contestants chat instantly via Socket.io |
| Massive Audience | Supports thousands to millions of concurrent viewers |
| Fast Voting | Live elimination votes without any delay |
| High Performance | No lag during heavy traffic events |
| Secure Platform | Safe login and protected user data |
| Mobile Optimized | Smooth experience on mobile networks |
- Login / Register
- Create profile & select anime avatar
- Join villa chat room
- Send & receive messages in real time
- Participate anonymously
- Watch live chats
- Send emoji reactions
- Cast elimination votes
- View contestant profiles
- Receive live updates instantly
- Monitor chat activity
- Moderate toxic content
- Manage contestants
- Start / stop voting rounds
- Remove abusive users
- View analytics and reports
- Detect toxic messages
- Filter spam content
- Flag abusive behavior
- Automatically mute harmful users
| Requirement | Description |
|---|---|
| Scalability | Support millions of concurrent users |
| Availability | App works 24/7 with no downtime |
| Low Latency | Messages appear instantly (<100ms) |
| Security | All user data encrypted and protected |
| Reliability | No data loss during traffic spikes |
| Performance | App stays smooth during live events |
| Fault Tolerance | System recovers automatically from failures |
| Maintainability | Modular, easy to update and improve |
| Mobile Optimization | Low battery and low data usage |
| Layer | Technology |
|---|---|
| Mobile App | React Native + Expo |
| Backend API | Express.js |
| Real-Time Communication | Socket.io |
| Database | PostgreSQL + Firebase |
| Cache & Fast Processing | Redis |
| Authentication | JWT |
| Hosting | Kubernetes / Cloud |
| Monitoring | Grafana + Prometheus |
ββββββββββββββββββββ
β Mobile Users App β
β React Native App β
ββββββββββ¬ββββββββββ
β
Internet / WebSocket
β
βββββββββββββββββ΄βββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ
β Express API β β Socket.io Server β
β Handles APIs β β Handles Live Chatβ
ββββββββββ¬βββββββββ ββββββββββ¬ββββββββββ
β β
ββββββββββββ¬βββββββββββββββββββ
βΌ
ββββββββββββββββ
β Redis Server β
β Fast Memory β
ββββββββ¬ββββββββ
β
βΌ
ββββββββββββββββββββ
β PostgreSQL DB β
β Permanent Storageβ
ββββββββββββββββββββ
Contestant Sends Message
β
βΌ
Socket.io Server Receives Message
β
βΌ
Message Validation (spam check, toxicity check)
β
βΌ
Redis Receives Message (ultra-fast broadcast)
β
βΌ
Audience Instantly Receives Message
β
βΌ
Background Worker Saves to PostgreSQL
Audience Votes
β
βΌ
Redis Counter Updates Instantly
β
βΌ
Live Results Displayed on All Devices
β
βΌ
Every Few Seconds β Data Saved to PostgreSQL
| Table | Stores |
|---|---|
| Users | username, password (hashed), avatar, role |
| Rooms | villa room info, room status |
| Messages | message text, sender, timestamp, room ID |
| Votes | contestant votes, voting rounds |
| Reports | flagged content, moderation logs |
- FlashList for smooth live chat rendering (low memory, no lag)
- iOS Keychain / Android Encrypted Storage for secure token storage
- Auto-reconnect on network drop with missed message recovery
- WebSocket heartbeats to maintain persistent connections
| Feature | Purpose |
|---|---|
| JWT Authentication | Secure login |
| HTTPS / WSS | Encrypted communication |
| Rate Limiting | Prevent spam voting and chat flooding |
| AI Moderation | Auto-remove abusive messages |
| Secure Storage | Protect tokens on device |
| Input Validation | Prevent injection attacks |
The system scales horizontally without major redesign:
- Add more API servers
- Add more Socket.io servers behind a load balancer
- Add more Redis nodes in cluster mode
- PostgreSQL read replicas for analytics
| Component | Backup Strategy |
|---|---|
| API Servers | Multiple replicas |
| Socket Servers | Load balancing |
| Redis | Cluster mode |
| PostgreSQL | Replication |
| Cloud | Auto recovery |
Tools: Grafana + Prometheus
Monitors:
- Active users and viewers
- Live chat traffic
- Server health
- Voting activity
- Error rates
- App performance metrics
- Node.js (16+) and npm
- Git
- Expo CLI
# Clone the repository
git clone https://github.com/Biswahack20/vibevilaa.git
cd vibevilaa
# Install Frontend
cd frontend && npm install && cd ..
# Install Backend
cd backend && npm install && cd ..cd frontend
npm start
# Press 'a' for Android, 'i' for iOS, 'w' for Webcd backend
npm start
# API available at http://localhost:3000vibevilaa/
βββ frontend/ # React Native/Expo mobile app
β βββ src/
β β βββ app/ # Screens (index.jsx, _layout.jsx)
β β βββ hooks/ # useTheme, useColorScheme
β β βββ constants/ # theme.js
β βββ assets/
β βββ README.md
βββ backend/ # Node.js/Express REST API
β βββ src/
β βββ README.md
βββ README.md # This file
- ποΈ Voice chat between contestants
- π€ AI-generated episode highlights
- πΉ Live streaming video feeds
- π Multi-language support
- π Advanced audience analytics
- π¬ Recommendation engine for show discovery
Always create feature branches β never commit directly to main.
# Create a feature branch
git checkout -b feature/your-feature-name
# Stage files individually (NOT git add .)
git add frontend/src/app/index.jsx
# Commit with conventional message format
git commit -m "feat: add live voting UI"
# Push and open pull request
git push origin feature/your-feature-nameCommit Message Format:
feat:β New featurefix:β Bug fixdocs:β Documentationstyle:β Formatting/stylingrefactor:β Code refactoring
MIT License β see LICENSE file for details.
π Vibe Villa: Where anime avatars clash, alliances form, and only one survives the vote. π΄ LIVE