https://github.com/cheporte/comet-messenger
☄️A tiny messenger among the stars
https://github.com/cheporte/comet-messenger
java javafx
Last synced: 3 months ago
JSON representation
☄️A tiny messenger among the stars
- Host: GitHub
- URL: https://github.com/cheporte/comet-messenger
- Owner: cheporte
- Created: 2025-05-03T16:00:26.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-06-12T10:45:00.000Z (7 months ago)
- Last Synced: 2025-06-22T06:07:34.891Z (7 months ago)
- Topics: java, javafx
- Language: Java
- Homepage:
- Size: 121 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ☄️ Comet Messenger
A cosmic journey through code and conversation.
A minimal, modern JavaFX chat messenger built from scratch with a server/client architecture and a sprinkle of celestial charm ✨
---
## 💡 Features
- 🌐 **Multi-Client TCP Server**: Robust server supporting multiple simultaneous clients.
- 🖥️ **JavaFX GUI**: Clean, modern interface for seamless chat experiences.
- 🪪 **User Authentication**: Secure signup/login with embedded Postgres database.
- 🗂️ **Contacts & Chats**: Add contacts, create chats, and manage your conversations.
- 💬 **Real-Time Messaging**: Instant message delivery with WebSocket support.
- 🖼️ **Profile Management**: Update your display name and avatar.
- 📜 **Comprehensive Logging**: Track application events and debug issues easily.
- 🧪 **Unit Tests**: Core logic covered by JUnit tests.
---
## 🚀 Tech Stack




- **Java 21**
- **JavaFX** (UI)
- **Maven** (build tool)
- **HikariCP** (connection pooling)
- **Postgres** (database)
- **JUnit** (testing)
---
## 🛠️ Build & Run
### Prerequisites
- Java 21 or newer
- Maven
---
## 🗺️ Project Structure
```text
comet-messenger/
├── src/
│ ├── main/
│ │ ├── java/com/comet/
│ │ │ ├── controller/
│ │ │ ├── db/
│ │ │ │ ├── repository/
│ │ │ │ └── schema/
│ │ │ ├── demo/
│ │ │ │ ├── core/
│ │ │ │ │ ├── client/
│ │ │ │ │ └── server/
│ │ │ │ └── App.java
│ │ │ └── module-info.java
│ │ └── resources/com/comet/...
│ └── test/java/com/comet/...
├── pom.xml
└── README.md
```
---
## 🧭 Roadmap
- [x] Multi-client TCP server
- [x] JavaFX GUI for chat
- [x] User authentication (signup/login)
- [x] Contact management
- [x] Profile editing
- [x] WebSocket integration
- [x] Group chat support
- [ ] Message status (sent, delievered, read)
- [ ] File sharing
- [ ] Emoji reactions
- [ ] Mobile client (future)
And massive refactoring as well. Such bloated codebase is impossible to scale, so I'll definitely have to update it and split into mane smaller files for proper management and future scalability purposes.
---
## (T^T) Known Issues
- [ ] When firstly selecting a group chat, it appears empty. Messages appear after second selection of that chat.
- [ ] I suck at writing tests for such kind of anapp :_)
- [ ] Message notifications work only in private chats. User PFP is not loaded to the notification tray
## 🤝 Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
---
## 📜 License
Open Source vibes — MIT License
---
✉️ Message across the stars. Let the code be poetry, and the chats be legends.