Metadata-Version: 2.4
Name: classroom-chat
Version: 0.1.0
Summary: A fast, offline-first LAN chat and file sharing CLI for classrooms and local networks.
Author: Arshad Ali
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# Classroom Chat 🚀

A fast, offline-first, local area network (LAN) chat and file-sharing CLI designed for classrooms, labs, and local networks.

---

## 🛠️ Requirements & Installation

- Python 3.8+

### Running Locally
Clone or download the folder and run:
```bash
python app.py
```

---

## 💬 Usage Instructions

### 1. Launch Classroom Chat
Run `python app.py` and enter your desired username.

### 2. Room Options
- **Create a Room `[C]`**: Enter a room name to host a new chat room. Your room will automatically be announced to nearby users on your Wi-Fi / local network.
- **Join a Room `[1, 2, ...]`**: Classroom Chat auto-discovers active rooms on your network. Type the number corresponding to the room you want to join.
- **Refresh `[R]`**: Re-scan the local network for newly created rooms.
- **Quit `[Q]`**: Exit the application.

---

## ⚡ In-Chat Commands

Once inside a room, you can use the following commands:

| Command | Description |
|---|---|
| `/help` | Display the list of available commands. |
| `/share <file_path>` | Share a local file (documents, images, archives) with everyone in the room. |
| `/quit` | Leave the current chat room and safely disconnect. |

> **Note on File Downloads**:
> Shared files are automatically received by everyone in the room and saved into a local `downloads/` directory. Duplicate filenames are automatically renamed (e.g. `notes (1).pdf`) to protect existing files.

---

## 📤 How to Publish to PyPI (pip)

To make Classroom Chat installable via `pip install classroom-chat`:

### Step 1: Install Packaging Tools
```bash
python -m pip install --upgrade build twine
```

### Step 2: Build the Distribution Packages
Run from the project root directory:
```bash
python -m build
```
This generates `.whl` and `.tar.gz` files in the `dist/` directory.

### Step 3: Test Upload to TestPyPI (Optional but Recommended)
```bash
python -m twine upload --repository testpypi dist/*
```

### Step 4: Upload to PyPI
```bash
python -m twine upload dist/*
```
*Note: You will need an API token from [pypi.org](https://pypi.org/manage/account/token/). Enter `__token__` as username and your token as password when prompted.*

### Step 5: Install via pip
Once published, anyone can install and run:
```bash
pip install classroom-chat
classroom-chat
```
