×

Slide Controller

Overview

Slide Controller is a wireless presentation control system. It consists of a mobile app (Flutter/Dart) that connects to a desktop Python application via WiFi to remotely control PowerPoint presentations, Google Slides, and videos. It features an IP-based connection for real-time, instant communication between the mobile client and the desktop server.

Platform

Mobile App (Client) View on GitHub
Desktop App (Server) View on GitHub

Technologies

Flutter / Dart

Used for the cross-platform mobile app (client).

Python

Used for the lightweight desktop server application.

PyAutoGUI / python-pptx

Python libraries used to simulate keyboard/mouse commands to control desktop applications.

Socket / HTTP Networking

Enables real-time wireless communication between the app and the server over a local WiFi network.

Gallery

Slide Controller App Screenshot 1 Slide Controller App Screenshot 2 Slide Controller App Screenshot 3

Key Features

1. Wireless Presentation Control

Navigate PowerPoint and Google Slides presentations seamlessly (Next, Previous, First, Last, Go-to-Slide).

2. Remote Video Control

Manage video playback with Play/Pause, Next/Previous, Volume, and Seek controls.

3. Real-time Communication

Uses an IP-based connection over WiFi for an instant, responsive link between the mobile app and desktop.

4. Cross-Platform Solution

Flutter mobile app works on both iOS and Android, connecting to a Python server that runs on Windows, macOS, or Linux.

How It Works

1. Start Desktop Server

Run the Python application on the PC and note the displayed IP address.

2. Connect Mobile App

Ensure the phone and PC are on the same WiFi network, then enter the PC's IP address into the Flutter app and tap "Connect".

3. Take Control

Once connected, use the mobile interface to control presentations and videos on the desktop.

Conclusion

The Slide Controller project demonstrates a practical client-server architecture, combining a cross-platform Flutter frontend with a robust Python backend. It effectively solves the common problem of needing a remote for presentations by leveraging local network communication, showcasing skills in mobile development, desktop scripting, and networking.