Skip to content

Repository files navigation

TomChatApp 🗨️

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.

🚀 Features

  • ✅ 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

🛠️ Tech Stack

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)

📁 Project Structure


TomChatApp/
├── backend/                  # Flask API
│   ├── app.py
│   ├── models/
│   └── routes/
├── frontend/                 # React App
│   └── src/
├── javafx-client/           # JavaFX Desktop Client
├── database/                # SQL scripts, procedures, triggers
└── README.md

🧪 How to Run

Backend (Flask)

cd backend
python -m venv venv
source venv/bin/activate  # or venv\Scripts\activate
pip install -r requirements.txt
python app.py

Frontend (React)

cd frontend
npm install
npm run dev

JavaFX Desktop Client

Open 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.

⚙️ Database Structure

  • 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

📸 Screenshots

Web Chat UI Friend Requests JavaFX Version
chat friends javafx

🧠 Future Improvements

  • Push notifications (web/mobile)
  • Video/audio calling
  • Chat themes and dark mode
  • Media attachments (images, audio)
  • Admin dashboard

🙋 About the Author

Thomas Appiah Developer passionate about building scalable real-time and assistive systems. 🔗 GitHub | LinkedIn


📃 License

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!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages