An advanced, feature-rich desktop chat application built from the ground up with a custom networking framework — demonstrating deep knowledge of software architecture, real-time communication, and modern UI development.
Disclaimer: This project is not affiliated with, endorsed by, or associated with Telegram Messenger LLP or any of its official products. All names, logos, and references to "Telegram" are used for educational and demonstration purposes only. The goal of this project is to study and recreate real-time messaging architectures and modern UI design patterns in Java.
Telegram Clone Desktop is a modern, full-featured chat application that replicates core functionalities of Telegram Desktop.
It is composed of both client and server sides:
- 🖥 Client: Built with JavaFX, offering a clean, responsive, and interactive UI.
- ⚙️ Server: Powered by a custom RPC-based framework using PostgreSQL for persistence.
- 🌐 Networking: Real-time communication over sockets with event broadcasting and RPC calls.
- 🪄 Modern desktop UI with JavaFX & JFoenix
- 🔐 Authentication & session management
- ⚡ Real-time private and group chats
- 💬 Typing indicators & live message delivery
- 🧱 Persistent data with JPA/Hibernate
- 🧩 Modular architecture (Client / Server / Shared)
- 🔔 Event-driven updates for smooth interactivity
-
Client:
JavaFX UI, controllers for chat, menus, settings, and authentication. -
Server:
RPC controllers for business logic (ChatRpcController,ContactRpcController, etc.), DAO layer, and event/session management. -
Networking:
Custom RPC protocol built on sockets — enabling efficient request/response and event streaming. -
Database:
PostgreSQL + JPA/Hibernate for user, message, and contact storage.
Client (JavaFX)
↓
RPC Networking (JSocket2)
↓
Server (Business Logic + DAO)
↓
Database (PostgreSQL)
Before building and running the project, ensure you have:
- ☕ Java 23 or higher
- 🧰 Gradle
- 🐘 PostgreSQL
- 🌐 Properly configured ports for networking
1️⃣ Clone the repository
git clone https://github.com/11-devs/Telegram-clone.git
cd Telegram-clone2️⃣ Setup the database
- Create a new PostgreSQL database
- Update connection settings (URL, username, password) in your configuration file
- (Optional) Run initial migration scripts or data seeders
3️⃣ Build and run the server
4️⃣ Build and run the client
- 🪪 Sign up or log in
- 💬 Send and receive messages
- 👥 Create group chats
- ⚡ Enjoy real-time typing indicators
- ⚙️ Manage account settings and preferences
Check out the demo video:
👉
This project is distributed under the MIT License.
See the LICENSE file for more details.
Developed by: