A modern real-time messaging application built for the Web and Software Architecture course. Connect with friends effortlessly through private conversations and group chats, all from the convenience of your PC.
- Private Conversations: Start one-on-one chats with any WASAText user
 - Group Chats: Create groups with multiple users for team discussions
 - Real-time Communication: Instant message delivery with WebSocket support
 - Message Types: Send text messages, images, and files
 - Message Actions: Reply to messages, forward content, and delete your own messages
 - Message Reactions: React to messages with emoticons and see who reacted
 
- Conversation List: View all conversations sorted by most recent activity
 - Message Previews: See the latest message content and timestamp
 - User Search: Find other users by username to start new conversations
 - Message Status: Track delivery and read status with checkmarks
- ✓ Message delivered to recipients
 - ✓✓ Message read by all recipients
 
 - Profile Management: Update your username and profile photo
 
- Create Groups: Start group conversations with multiple users
 - Add Members: Group members can invite others to join
 - Leave Groups: Exit group conversations at any time
 - Group Settings: Manage group name, photo, and participants
 
- RESTful API: OpenAPI 3.0 compliant endpoints
 - WebSocket Support: Real-time bidirectional communication
 - SQLite Database: Lightweight, embedded database solution
 - File Upload: Support for image and file attachments
 - Authentication: Simplified username-based login system
 
- Single Page Application: Responsive web interface
 - Real-time Updates: WebSocket integration for live messaging
 - File Handling: Drag-and-drop file uploads
 - Responsive Design: Optimized for desktop use
 
- Docker Containerization: Multi-stage builds for production
 - Nginx Reverse Proxy: Frontend serving and API routing
 - Volume Persistence: Data and uploads preserved across restarts
 
- Docker and Docker Compose
 - Git
 
- 
Clone the repository
git clone git@github.com:LeothDev/WASAText.git cd wasatext - 
Start the application
docker-compose up --build
 - 
Access the application
- Open your browser to 
http://localhost:8080 - Register with any username to get started
 
 - Open your browser to 
 
For a clean development environment:
  go run ./cmd/webapi
  cd webui && yarn run devThe application provides a complete OpenAPI specification. Check them at doc/api.yaml.
- Delivery Tracking: Messages show as delivered when received by all recipients
 - Read Receipts: Messages show as read only when ALL recipients have read them
 - Group Logic: In group chats, read status requires unanimous reading
 
- WebSocket Events: New messages, message status updates, typing indicators
 - Live Notifications: Unread message counts and conversation updates
 - Broadcast System: Efficient message distribution to conversation participants
 
- Message History: Complete conversation history with pagination
 - File Storage: Persistent uploads directory for images and files
 - User Profiles: Username and photo management
 
wasatext/
├── cmd/webapi/          # Go application entry point
├── service/             # Backend business logic
│   ├── api/            # HTTP handlers and WebSocket
│   ├── database/       # Data access layer
│   └── models/         # Data structures
├── webui/              # Vue.js frontend application
├── uploads/            # File storage directory
├── docker-compose.yml  # Container orchestration
├── Dockerfile.backend  # Go backend container
├── Dockerfile.frontend # Nginx + Vue.js container
└── nginx.conf          # Reverse proxy configuration
This project was developed as part of the Web and Software Architecture course requirements, implementing:
- OpenAPI Standard: Complete API specification and documentation
 - Go Backend: RESTful services with WebSocket support
 - JavaScript Frontend: Modern SPA with real-time features
 - Docker Deployment: Production-ready containerization
 
Academic project for educational purposes.