A modern real-time communication platform featuring secure authentication, event management, and instant messaging capabilities.
Operation Won is a full-stack application consisting of a Go backend server, Flutter mobile client, and web interface, designed for seamless real-time communication and event coordination.
- JWT-based authentication with refresh tokens
- Secure password hashing with bcrypt
- Rate limiting and brute force protection
- Redis-based session management
- WebSocket support for instant messaging
- Live audio streaming capabilities
- Push-to-talk (PTT) functionality
- [SOON] E2EE
- Create and manage events
- Event-based channel organization
- User role management (organiser, member)
- Event discovery and participation
- Multi-channel communication
- Event-specific channels
- User permissions and moderation
- Message history and persistence
- Containerized deployment with Docker/Podman
- MySQL database with proper indexing
- Redis caching for performance
- Health monitoring and logging
- Auto-scaling ready architecture
Operation Won/
├── 🎮 client/ # Flutter mobile application
├── 🌐 website/ # Web interface and landing page
├── ⚙️ server/ # Go backend API server
│ ├── main.go # Application entry point
│ ├── handlers.go # HTTP request handlers
│ ├── hub.go # WebSocket management
│ ├── utils.go # Utility functions
│ └── all_test.go # Comprehensive test suite
| Component | Technology | Purpose |
|---|---|---|
| Backend | Go 1.23+ | High-performance API server |
| Database | MySQL 8.0+ | Primary data storage |
| Cache | Redis 7.0+ | Session & performance cache |
| Mobile | Flutter 3.0+ | Cross-platform mobile app |
| Web | HTML5/CSS3/JS | Progressive web interface |
| Containers | Docker/Podman | Deployment & orchestration |
| WebSockets | Gorilla WebSocket | Real-time communication |
| Auth | JWT + bcrypt | Secure authentication |
- Container Engine: Podman (recommended) or Docker
- System Requirements: 2GB RAM, 1GB disk space
- Network: Ports 8000, 3306, 6379 available
git clone https://github.com/Infinity6542/Operation-Won.git
cd Operation-Woncd server
podman compose up --build -d| Service | URL | Description |
|---|---|---|
| API Server | http://localhost:8000 | Backend API endpoints |
| Health Check | http://localhost:8000/health | Service status |
| WebSocket | ws://localhost:8000/msg | Real-time messaging |
cd client
flutter pub get
flutter runFeatures:
- Cross-platform (iOS & Android)
- Real-time messaging
- Push notifications
- Offline capability
- Material Design UI
The project includes a comprehensive test suite with 30+ test cases:
cd server
go test -vTest Coverage:
- ✅ Authentication (registration, login, JWT)
- ✅ Authorization & security middleware
- ✅ Channel management (CRUD operations)
- ✅ Event management (CRUD operations)
- ✅ Database error handling
- ✅ Input validation and edge cases
POST /auth/register # User registration
POST /auth/login # User authentication
POST /api/refresh # JWT token refresh
POST /api/logout # User logoutGET /api/protected/channels # List user channels
POST /api/protected/channels/create # Create new channel
GET /api/protected/events # List user events
POST /api/protected/events/create # Create new eventGET /msg # WebSocket connection
GET /health # Service health checkThe application uses a relational database with the following key tables:
users- User accounts and authenticationevents- Event information and metadatachannels- Communication channelsevent_members- Event participation trackingchannel_members- Channel access controlmessages- Chat message history