# GitHub Upload Guide for NEXUS OSINT Tool

## 🚀 Complete Setup for Public Distribution

Follow these steps to upload your NEXUS OSINT Tool to GitHub so others can install it as a CLI tool.

## 📋 Prerequisites

- GitHub account
- Git installed locally
- Python 3.8+ installed

## 🔧 Step 1: Prepare Your Project

The project is already prepared with:
- ✅ `setup.py` - Package configuration
- ✅ `pyproject.toml` - Modern Python packaging
- ✅ `MANIFEST.in` - File inclusion rules
- ✅ `.gitignore` - Excludes sensitive files
- ✅ `README.md` - Professional documentation
- ✅ `LICENSE` - MIT license
- ✅ CLI entry point configured

## 🌐 Step 2: Create GitHub Repository

1. **Go to GitHub**: https://github.com
2. **Sign in** to your account
3. **Click** the `+` button → "New repository"
4. **Repository settings**:
   - Name: `nexus-osint`
   - Description: `Advanced terminal-based OSINT tool for comprehensive investigation`
   - Visibility: **Public** (important for PyPI)
   - **DO NOT** initialize with README, .gitignore, or license
5. **Click** "Create repository"

## 📦 Step 3: Upload to GitHub

### Option A: Use the Setup Script (Recommended)

```bash
python setup_github.py
```

This script will:
- Initialize git repository
- Add GitHub remote
- Commit all files
- Push to GitHub
- Provide PyPI publishing instructions

### Option B: Manual Upload

```bash
# Initialize git
git init
git add .
git commit -m "Initial commit: NEXUS OSINT Tool v2.0.0"

# Add GitHub remote (replace with your repo URL)
git remote add origin https://github.com/yourusername/nexus-osint.git

# Push to GitHub
git branch -M main
git push -u origin main
```

## 🐍 Step 4: Publish to PyPI (Optional but Recommended)

### 4.1 Install Build Tools

```bash
pip install build twine
```

### 4.2 Build the Package

```bash
python -m build
```

### 4.3 Create PyPI Account

1. Go to https://pypi.org/
2. Create an account
3. Enable 2FA (required for publishing)

### 4.4 Upload to PyPI

```bash
# Test on TestPyPI first (recommended)
python -m twine upload --repository testpypi dist/*

# Then upload to real PyPI
python -m twine upload dist/*
```

## 📖 Step 5: Users Can Now Install Your Tool

### From PyPI (if published)

```bash
pip install nexus-osint
nexus --help
```

### From GitHub Directly

```bash
pip install git+https://github.com/yourusername/nexus-osint.git
nexus --help
```

### Manual Installation

```bash
git clone https://github.com/yourusername/nexus-osint.git
cd nexus-osint
pip install -e .
nexus --help
```

## 🔍 Step 6: Verify Everything Works

Test the installation:

```bash
# Test CLI command
nexus --version

# Test configuration
nexus --config

# Test basic functionality
nexus --username testuser
```

## 📝 Step 7: Update Repository Information

Edit your GitHub repository:

1. **Add topics**: `osint`, `security`, `investigation`, `reconnaissance`, `cybersecurity`, `python`
2. **Enable issues** for bug reports
3. **Enable discussions** for community questions
4. **Add GitHub Actions** (optional) for CI/CD

## 🎯 What Users Will Get

When users install your tool, they get:

- ✅ **CLI Command**: `nexus` available system-wide
- ✅ **All Features**: Username search, email investigation, domain analysis, IP analysis
- ✅ **Web Interface**: `nexus --web` for visual investigations
- ✅ **Configuration**: `nexus --config` for API key setup
- ✅ **Documentation**: Built-in help and man pages
- ✅ **Updates**: Easy upgrades with `pip install --upgrade nexus-osint`

## 🚀 Example Installation Flow

Here's what your users will experience:

```bash
$ pip install nexus-osint
Collecting nexus-osint
  Downloading nexus_osint-2.0.0-py3-none-any.whl
Installing collected packages: nexus-osint
Successfully installed nexus-osint-2.0.0

$ nexus --help
usage: nexus [-h] [--config] [--username USERNAME [USERNAME ...]] [--email EMAIL] [--domain DOMAIN] [--ip IP] [--scrape SCRAPE] [--web] [--output OUTPUT] [--verbose] [--version]

NEXUS OSINT Tool - Comprehensive investigation tool

$ nexus --config
=== NEXUS OSINT Configuration ===
Configure your API keys and settings...

$ nexus --username elonmusk
=== USERNAME SEARCH SUMMARY ===
Usernames checked: 1
Platforms searched: 124
Accounts found: 67
```

## 📊 Project Structure After Upload

```
nexus-osint/                    # Your GitHub repository
├── .git/                       # Git metadata
├── .github/                    # GitHub workflows (if added)
├── dist/                       # Built packages (after PyPI publishing)
├── main.py                     # CLI entry point
├── modules/                    # Core functionality
├── templates/                  # Web interface
├── setup.py                    # Package setup
├── pyproject.toml             # Modern packaging
├── README.md                   # Documentation
├── LICENSE                     # MIT License
└── config.json                 # Default configuration
```

## 🔗 Important Links

- **Your Repository**: https://github.com/yourusername/nexus-osint
- **PyPI Project**: https://pypi.org/project/nexus-osint/
- **GitHub Documentation**: https://docs.github.com/
- **PyPI Documentation**: https://packaging.python.org/

## 🎉 Success!

Your NEXUS OSINT Tool is now:
- ✅ **On GitHub** for anyone to view and contribute
- ✅ **Installable** as a proper Python package
- ✅ **CLI-ready** with system-wide command
- ✅ **Professionally documented** and licensed
- ✅ **Ready for PyPI** distribution

Users can now simply run `pip install nexus-osint` and have a fully functional OSINT tool! 🚀
