# Jumpstart - Client for UpSnap

A React Native Expo app that connects to an UpSnap server and provides mobile access to all Wake-on-LAN features.

## Features

- 🔌 **Device Management**: View, add, edit, and delete devices
- 💤 **Power Control**: Wake, sleep, reboot, and shutdown devices remotely
- 🔍 **Network Scanning**: Discover devices on your local network
- 👤 **Authentication**: Secure login with username/email and password
- 📱 **Mobile-First UI**: Touch-optimized interface designed for phones
- 🎨 **Clean Design**: Modern, intuitive interface with visual status indicators

## Setup

### Prerequisites

- Node.js installed
- Expo CLI installed (`npm install -g expo-cli`)
- An UpSnap server instance running

### Installation

1. Install dependencies:
```bash
npm i
```

2. Start the development server:
```bash
npx expo run
```

3. Run on your preferred platform:
   - iOS: Press `i` in the terminal or run `npx expo run:ios`
   - Android: Press `a` in the terminal or run `npx expo run:android`

## Usage

### First Time Setup

1. Open the app
2. Enter your UpSnap server credentials:
   - Server Address
   - Username or Email
   - Password
3. Tap "Login"

### Device Management

#### Adding a Device

1. Tap the "Scan" button in the Devices screen
2. Wait for the network scan to complete
3. Tap on a discovered device to add it to your list

#### Managing Devices

- **View Devices**: Scroll through the list on the main screen
- **Wake Device**: Tap the green "Wake" button on a device card
- **Sleep Device**: Tap the orange "Sleep" button
- **Reboot Device**: Tap the blue "Reboot" button
- **Shutdown Device**: Tap the red "Shutdown" button

### Status Indicators

- 🟢 Green dot: Device is online
- 🔴 Red dot: Device is offline
- 🟠 Orange dot: Status unknown

## Security Notes

- Never expose your UpSnap server to the open web without proper security measures

## Troubleshooting

### Login Issues

- Verify your username/email and password are correct
- Ensure your UpSnap server is accessible

### Network Scan Issues

- Network scanning requires the server to have `nmap` installed
- Scanning may take several minutes to complete
- Make sure your device and server are on the same network

### Device Control Issues

- Verify the device's MAC address is correct
- Ensure Wake-on-LAN is enabled in the device's BIOS/UEFI
- Check that the device is on the same network as the server
- For sleep/shutdown/reboot, ensure the device has the required agent installed

## License

This project is licensed under the MIT License.

## Credits

- UpSnap: https://github.com/seriousm4x/UpSnap
- Built with React Native and Expo
