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.
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.
- 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)
- 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.
- Java 23 or higher
- Gradle
- PostgreSQL
- Properly configured ports for networking
-
Clone the repository:
git clone https://github.com/11-devs/Telegram-clone.git cd Telegram-clone
-
Setup the database:
- Create a PostgreSQL database
- Update connection settings (URL, username, password) in the config file
- (Optional) Run initial migration scripts (Data Seeder)
-
Build and run the server:
-
Build and run the client:
- Sign up / log in
- View chat list
- Send and receive messages
- Group chats
- Real‑time typing indicators
- Change account settings
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.
MIT License: This project is licensed under the MIT License - see the LICENSE file for details.
Developed by: