DEV Community

Darshan Chaudhari
Darshan Chaudhari

Posted on

NOVA: From 2.5 Months of Struggle to India's First Java-Powered Cross-Device Personal Assistant

Live demo = https://youtu.be/lxXItugFHJY

The Project I Abandoned — Month 1

2.5 months ago I had a crazy idea.

What if my laptop assistant could also control my phone? What if I could say "open camera" and my laptop camera opens, say "open WhatsApp" and my phone opens WhatsApp?

I searched everywhere. No one had done this in Java. Python mein hai, JS mein hai, but Java? Zero.

So I decided to build it.

The Original Broken Code (Month 1 - Before Exams)

My commit message after Month 1:
"exams aa gaye, project on hold - mobile connection totally failed, laptop commands half working. will come back... maybe"

And then I didn't touch it for 1.5 months.

Why I Finally Came Back

College exams ended. I saw the GitHub Finish-Up-A-Thon challenge and thought — this is it. This is the push I needed.

But this time I had:

  • ChatGPT for architecture decisions
  • GitHub Copilot for writing the actual Java code I was stuck on

**What I Built — The After

NOVA: Complete Cross-Device Personal Assistant**
Laptop Controls (100% Working):

Command Action
"Open camera" Laptop webcam starts
"Open browser" Default browser launches
"Open VS Code" VS Code opens instantly
"Create resume" Auto-generates professional resume from user data
"System info" Shows RAM, CPU, battery status

Mobile Controls (The Impossible Part):

Command Action
"Open WhatsApp" WhatsApp opens on connected mobile
"Open gallery" Mobile gallery opens
"Open settings" Phone settings open
"Take photo" Remote camera trigger

Resume Generator:
User provides: Name, skills, experience, education

NOVA generates: Professional PDF resume instantly

**

The Technical Problems I Almost Gave Up On

**

Problem 1: Mobile IP Connection (Month 1 Hell)
For 3 weeks straight, my laptop couldn't find my phone on the network.

What Copilot fixed for me:
I asked Copilot: "How to discover Android device on local network from Java without hardcoding IP?"

It gave me the complete network discovery code using NetworkInterface and socket scanning that I had no idea existed in Java.

Problem 2: API Handling Chaos
My ChatGPT integration kept failing. Timeouts, rate limits, JSON parsing errors.

What Copilot fixed:

Problem 3: Mobile Communication Protocol
No documentation existed for Java-to-Android socket communication. I was lost.

What Copilot fixed:
I described the problem in plain English. Copilot wrote the entire TCP socket server for Android and the client for desktop Java. It just worked on first try.

**

How GitHub Copilot Made This Possible

**
Moment 1: Network Discovery (3 weeks → 20 minutes)
I typed: "Write Java code to find all Android devices on my WiFi network by scanning ports 5555 to 5560"

Copilot wrote the complete multi-threaded scanner. I didn't even know Java could do that.

**Moment 2: **Resume PDF Generation
I had never generated PDFs in Java. Copilot wrote the iText implementation with proper formatting, fonts, and layout. Added error handling I wouldn't have thought of.

Moment 3: Voice Command Parsing
My NLP was terrible. Copilot suggested using regex patterns with confidence scoring. It showed me how to handle "open camera" vs "open the camera" vs "camera open" — all mapping to the same function.

Moment 4: Mobile Socket Keep-Alive
The mobile connection kept dropping every 30 seconds. Copilot suggested heartbeat messages and reconnection logic with exponential backoff. I didn't even know what "heartbeat" meant in networking.

*## Technical Architecture
*

Tech Stack:

Layer Technology
Language Java 17
UI Framework JavaFX
AI Assistance ChatGPT (architecture) + GitHub Copilot (code)
Mobile Connection TCP/IP Sockets
PDF Generation iText / Apache PDFBox
Network Discovery Java Network Interface
Input Method Text commands + Optional voice-to-text

**

The Before vs After Summary

**

**

What I Learned

**
1. Java is more powerful than people think
Everyone said "use Python" for automation. But Java's Runtime.exec(), Robot class, and network libraries are just as capable. I proved it works.

2. GitHub Copilot is a Java expert (I didn't know)
I thought Copilot was for JavaScript/Python. But it wrote multithreading, socket programming, and PDF generation in Java flawlessly. It knew Java APIs I had never heard of.

3. Old abandoned projects are gold mines
That broken code from Month 1? It had the right architecture. I just didn't have the skills to complete it. Copilot filled every gap.

4. Cross-device in Java IS possible
No StackOverflow answer said this was possible. No YouTube tutorial showed it. But I built it. Sometimes you have to build what doesn't exist.

5. 2.5 months is worth it
Month 1: Algorithms + APIs (stopped due to exams)
Month 2: Implementation + mobile integration
Month 3: Testing + fixing + finishing

Every single problem I faced taught me something new.

What Makes NOVA Unique?
Feature Other Assistants NOVA
Language Python/JS JAVA (first of its kind)
Laptop Control Yes Yes
Mobile Control Requires separate app Direct via network
Resume Generation No Auto-create PDF
Open Source Rare Coming soon

No one has built a cross-device personal assistant in Java before. NOVA is the first.

How Mobile Commands Work
The underscore (_) is the magic character that tells NOVA:

"This command is NOT for laptop. Send it to the connected mobile device."
Example = open_camera.

**

They said Java can't do cross-device automation. They said build what already exists. I said watch me. 2.5 months later, NOVA is here — and it's just getting started.

**

Top comments (0)