TomChat is a WhatsApp-like real-time messaging application built with Flask (Python), SQL Server, and React/JavaFX (multi-platform). It includes essential chat features such as friend requests, real-time messaging, online/offline presence, and a responsive UI for both web and desktop experiences.
- ✅ Real-time messaging using Flask and Socket.IO
- 🔐 User authentication (registration/login)
- 📬 Friend request system (with approval process)
- 🟢 Online/offline status indicators
- 💬 Chat UI that mimics WhatsApp (sent/received bubbles)
- 🖥️ Web frontend using React + Tailwind CSS
- 🖼️ JavaFX desktop frontend with rich UI
- 🗃️ SQL Server backend with triggers, stored procedures, and transactions
- 🔎 User search and chat initiation system
- 📱 Fully responsive design for mobile, tablet, and desktop
| Layer | Technology |
|---|---|
| Frontend | React, JavaFX, Tailwind, HTML/CSS, Java |
| Backend | Flask, Python, Socket.IO |
| Database | SQL Server Management Studio (SSMS) |
| Desktop UI | JavaFX, ControlsFX, FormsFX, TilesFX |
| Real-time | Flask-SocketIO |
| Dev Tools | Git, GitHub, Postman, Heroku (optional) |
TomChatApp/
├── backend/ # Flask API
│ ├── app.py
│ ├── models/
│ └── routes/
├── frontend/ # React App
│ └── src/
├── javafx-client/ # JavaFX Desktop Client
├── database/ # SQL scripts, procedures, triggers
└── README.md
cd backend
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate
pip install -r requirements.txt
python app.pycd frontend
npm install
npm run devOpen with IntelliJ or VSCode + JavaFX Plugin, then run Main.java.
Note: Make sure your SQL Server database is configured correctly with the schema and stored procedures before running.
- Users: stores user info
- FriendRequest: pending requests
- Friendship: accepted relationships
- Messages: chat messages
- Presence: online/offline states
Includes:
- Stored Procedures for accepting/declining friend requests
- Triggers for message logging
- Transactions for message delivery consistency
| Web Chat UI | Friend Requests | JavaFX Version |
|---|---|---|
![]() |
![]() |
![]() |
- Push notifications (web/mobile)
- Video/audio calling
- Chat themes and dark mode
- Media attachments (images, audio)
- Admin dashboard
Thomas Appiah Developer passionate about building scalable real-time and assistive systems. 🔗 GitHub | LinkedIn
This project is licensed under the MIT License - see the LICENSE file for details.
---
### ✅ How to Use It
1. Go to your GitHub repo: [`TomChatApp`](https://github.com/Twenethomas/TomChatApp)
2. Create a new file named `README.md`
3. Copy and paste the full Markdown above into that file
4. Commit it to your main or `lastBranch`
Let me know if you'd like help generating screenshots or if you'd prefer this as a downloadable `.md` file!


