Skip to content

A Java-based Telegram desktop clone with JavaFX client, PostgreSQL backend, and real-time messaging features.

License

Notifications You must be signed in to change notification settings

11-devs/Telegram-clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Clone Desktop

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.

License: MIT Java Version JavaFX Version Database Framework


Table of Contents


Introduction

This project is a Telegram desktop clone with both client and server parts.
The client is built using JavaFX, while the server uses a custom RPC‑based framework and PostgreSQL for persistence.
It provides real‑time messaging, authentication, contact management, and group chat functionalities.


Features

  • Modern desktop UI with JavaFX and JFoenix
  • Authentication & session management
  • Real‑time message delivery
  • Group and private chats
  • Data persistence with JPA/Hibernate
  • Modular structure (Client / Server / Shared models)
  • Event‑based real‑time features (typing indicators, new message notifications)

Architecture

  • Client: JavaFX UI, controllers for chat, menu, settings, and authentication.
  • Server: RPC controllers for business logic (ChatRpcController, ContactRpcController, etc.), DAO layer, and session/event management.
  • Networking: Custom RPC protocol over sockets, supporting request‑response and real‑time event broadcasting.
  • Database: PostgreSQL with JPA/Hibernate for storing users, messages, and contacts.

Prerequisites

  • Java 23 or higher
  • Gradle
  • PostgreSQL
  • Properly configured ports for networking

Installation & Run

  1. Clone the repository:

    git clone https://github.com/11-devs/Telegram-clone.git
    cd Telegram-clone
  2. Setup the database:

    • Create a PostgreSQL database
    • Update connection settings (URL, username, password) in the config file
    • (Optional) Run initial migration scripts (Data Seeder)
  3. Build and run the server:

  4. Build and run the client:


Usage

  • Sign up / log in
  • View chat list
  • Send and receive messages
  • Group chats
  • Real‑time typing indicators
  • Change account settings

Contributing

Contributions are welcome!

  • Fork the repo and create a new branch for your feature or bugfix.
  • Make sure the project builds and runs correctly.
  • Open a pull request with a clear description of your changes.

License

MIT License: This project is licensed under the MIT License - see the LICENSE file for details.

Credits

Developed by:

Aryan Ghasemi

Mahdi Hoseinpoor

Ali Ghaedrahmat

About

A Java-based Telegram desktop clone with JavaFX client, PostgreSQL backend, and real-time messaging features.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •