WasaText is a modern and lightweight social messaging platform, developed as the final project for the Web and Software Architecture course.
The application allows users to exchange text messages and images in real-time, manage group conversations, and interact via advanced features such as message forwarding and replies.
The application implements a complete set of features required for a modern messaging app:
- Simplified Login: Access via username (automatic account creation if not existing).
- Customizable Profiles: Setting of nicknames and profile photos.
- User Search: Search system to find other users on the platform.
- 1-to-1 Conversations: Direct private chats between users.
- Groups: Creation and management of groups with custom names and icons.
- Multimedia Support: Sending and viewing of images (Base64 encoding).
- Message Status: Visualization of delivery status (
sent,delivered,read).
- Reply (Thread): Ability to reply to specific messages creating a thread.
- Forwarding: Forwarding existing messages to other chats or groups.
- Reactions: Support for emoji reactions on messages.
- History Management: Deleting messages and conversations.
The project follows a containerized Modular Monolith architecture:
- Backend: Written in Go (Golang). Exposes a REST API documented via OpenAPI 3.0.
- Frontend: Single Page Application (SPA) built with Vue.js.
- Database: SQLite embedded for data persistence.
- Deployment: The application is designed to be compiled into a single binary or run via Docker.
- Go 1.18+
- Node.js & Yarn (or Docker)
The easiest way to test the application is to use Docker (if configured):
docker-compose up --build