Skip to content

Repository files navigation

PacketTalk

PacketTalk is a learning project that explores network programming with Qt Widgets and UDP datagram sockets. Instead of building a complete chat application all at once, the project is developed incrementally, with each feature introduced through small, focused commits.

The goal is to learn how networking, GUI programming, and application architecture come together in a desktop application.

Project Goals

  • Understand UDP datagram communication
  • Practice event-driven programming with signals and slots
  • Build a desktop GUI using Qt Widgets
  • Maintain a clean and meaningful Git history throughout development

Planned Development

The project starts with the simplest possible implementation and gradually becomes more capable.

Phase 1

  • Main window layout
  • Enter peer IP address
  • Enter peer port
  • Connect button
  • Send text messages over UDP
  • Display received messages

Phase 2

  • Input validation
  • Better message layout
  • Connection status indicators
  • Improved error handling

Phase 3

  • Usernames
  • Contact discovery
  • Chat history
  • Better user experience

Future Ideas

  • Multiple conversations
  • File transfer
  • Message timestamps
  • Rich text support
  • Optional TCP implementation
  • End-to-end encryption (for learning purposes)

Current Interface

The application currently consists of:

  • A field for entering the peer IP address and port
  • A Connect button
  • A scrollable message area
  • A message input field
  • A Send button

Networking logic will be added incrementally.

Technologies

  • C++
  • Qt Widgets
  • Qt Network
  • CMake
  • Git

Purpose

This repository is primarily a study project. The emphasis is on understanding the underlying concepts rather than producing a feature-complete chat application. Each commit represents a small step in the development process, making it easy to follow the project's evolution.

About

Learning project: building a Qt-based chat application from scratch using UDP datagram sockets and modern CMake.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages