Developer building the JARVIS project ecosystem β Android apps, desktop automation, and developer utilities.
| Focus | Current Ecosystem | Platforms | Types of Work |
|---|---|---|---|
| Android Β· Desktop Β· Automation | JARVIS | Android Β· Windows Β· Web | Native apps, desktop tools, web portfolios, self-hosted APIs |
I'm a developer who builds practical applications β the kind of software that solves a real, everyday problem and ships as something usable: an APK, an installer, or a live website.
My work is organized around the JARVIS project ecosystem, a collection of applications and tools developed under a common identity:
- JARVIS GeoSpoof β a native Android developer tool for GPS location testing using Android's official mock-location APIs
- JARVIS Music β a Kotlin/Android music streaming and downloading app for JioSaavn content, backed by a self-hostable Flask API
- JARVIS WhatsApp Sender β an Electron desktop control center for multi-account WhatsApp campaign automation
- JARVIS Portfolio β the cyber-themed showcase website that ties the suite together
I like working across the full stack of a project: native mobile UIs with Java and Kotlin, desktop shells with Electron, local and self-hosted backends with Node.js and Python, and static sites shipped on GitHub Pages. I also document my work thoroughly β every JARVIS repository ships with a README, contributing guidelines, security policy, and issue templates.
The JARVIS ecosystem is a personal project suite. Each application in it is independent, built around a single clear purpose: build tools, understand the system, keep improving the implementation.
| π οΈ What I build | Android applications, desktop automation tools, developer utilities, web experiences |
|---|---|
| π― Approach | Project-oriented, end-to-end β from UI to backend to packaging and deployment |
| π§© Style | Documented, structured, self-contained repositories |
| πΊοΈ Where my projects live | Android Β· Windows desktop Β· GitHub Pages Β· self-hosted APIs |
Kotlin Β· Java Β· JavaScript Β· Python Β· HTML Β· CSS
Android SDK Β· AndroidX Β· Material Components Β· ViewBinding Β· ConstraintLayout Β· Kotlin Coroutines Β· Media3 / ExoPlayer Β· Retrofit Β· OkHttp Β· Glide Β· Room (kapt) Β· DownloadManager Β· Foreground Services Β· JobScheduler Β· osmdroid / OpenStreetMap Β· Mock Location APIs
Electron 30 Β· Node.js β₯ 18 Β· Express 4 Β· Socket.IO 4 Β· whatsapp-web.js Β· Puppeteer Β· QR authentication Β· NSIS packaging (electron-builder)
Python Β· Flask Β· jiosaavn Β· Node.js Β· Express Β· REST API design Β· JSON Β· CORS
HTML5 Β· CSS3 Β· Vanilla JavaScript Β· Tailwind CSS (CDN) Β· GitHub Pages
Room (SQLite, Kotlin) Β· SharedPreferences Β· JSON Β· .env configuration
Gradle (Kotlin DSL) Β· AGP 8.11 Β· JDK 17 Β· Gradle wrapper Β· npm Β· electron-builder Β· Git Β· GitHub Β· GitHub Pages Β· GitHub Releases
| Area | What I Build | Technologies |
|---|---|---|
| Android Applications | Native utility and media apps for the JARVIS suite | Java, Kotlin, AndroidX, Material Components |
| Desktop Applications | Electron-based desktop control centers | Electron, Node.js, Express, Socket.IO |
| Automation | Multi-session messaging workflows with live monitoring | whatsapp-web.js, Puppeteer, QR pairing |
| Media Applications | Streaming, offline downloads, playlists, liked-song libraries | Media3/ExoPlayer, Retrofit, Room, DownloadManager |
| API Integration | Android apps talking to self-hosted APIs | Retrofit, OkHttp, Flask, REST |
| Location Testing | Developer tools for GPS mock-location testing | osmdroid, Mock Location APIs, Foreground Services |
| Web Experiences | Static showcase sites with zero runtime dependencies | HTML5, CSS3, Vanilla JS, GitHub Pages |
JARVIS is my personal project suite β a family of independent applications built under a shared identity. Each tool targets a practical workflow, and every repository is fully documented with README, contributing guidelines, security policy, and issue templates.
JARVIS
βββ π°οΈ GeoSpoof Android Β· Java β GPS mock-location testing tool
βββ π΅ Music Android Β· Kotlin β music streaming & downloads + Flask API
βββ π¬ WhatsApp Sender Desktop Β· Electron β multi-account campaign automation
βββ π Portfolio Web Β· HTML/CSS/JS β the ecosystem's showcase site
An Android developer tool for simulating GPS locations using the platform's official mock-location APIs.
JARVIS GeoSpoof is a native Android application (Java) that lets you pick any point on an interactive OpenStreetMap and feed those coordinates to the device's GPS and NETWORK location providers through Android's documented developer APIs (LocationManager.addTestProvider / setTestProviderLocation). It is a standalone alternative to the built-in Developer Options β Select mock location app feature β aimed at developers and QA engineers testing location-dependent behavior without physically traveling.
The engine runs in a foreground service with a persistent notification and a 500 ms refresh loop, persists state in SharedPreferences, and re-activates itself after a device reboot via a BootReceiver + JobScheduler pipeline. A one-time guided setup dialog walks users through the required device configuration, including battery-optimization exemption.
This is a development and testing utility. It relies on Android's standard mock-location mechanism, does not require root, and does not bypass any security control β mock locations remain detectable via
isFromMockProvider().
flowchart TD
A[Open app] --> B[OSM map loads osmdroid tiles]
B --> C[Tap or drag pin to select location]
C --> D[Enable via GPS FAB]
D --> E[Foreground service starts]
E --> F[Inject coordinates into GPS + NETWORK providers]
F --> G[Location-aware apps receive test positions]
E --> H[JobScheduler + BootReceiver persist across reboots]
| Platform | Android 6.0+ (minSdk 23 Β· targetSdk 34 Β· compileSdk 36) |
|---|---|
| Language | Java |
| Maps | osmdroid 6.1.18 (OpenStreetMap) |
| Key APIs | Mock Location APIs Β· Foreground Service Β· JobScheduler Β· BootReceiver Β· SharedPreferences |
| Build | Gradle 8.13 Β· AGP 8.11.2 (Kotlin DSL) Β· JUnit 4 + Espresso tests |
| Status | Released β v1.0.0 with prebuilt APK |
| Security | No credentials, no telemetry, no API keys; location stored only on-device |
A native Android music streaming and downloading app for JioSaavn content β with a self-hostable Flask API.
JARVIS Music is a Kotlin Android application that delivers a full music-player experience: search and stream songs, browse curated home sections (Hindi, Punjabi, Hip-Hop, Pop, and more), manage liked songs, create playlists, and download tracks for offline playback. Playback is handled by Media3 / ExoPlayer, with a mini + full player, infinite queue with automatic refill, and shuffle/repeat modes.
The Android app never talks to JioSaavn directly. It calls the JARVIS Music API β a small Python Flask service bundled in the repository β which wraps the jiosaavn package and returns normalized JSON. The API is self-hostable (python index.py on port 5100) and reads its signing key from a SECRET environment variable.
This project's README is derived from static source analysis and was not runtime-tested at publication time β the feature list below is verified directly from the source code.
flowchart LR
U[User on Android] --> A[JARVIS Music App]
A --> B[Retrofit / OkHttp]
B --> C[JARVIS Music API<br/>Flask + jiosaavn]
C --> D[JioSaavn content]
A --> E[Media3 / ExoPlayer]
A --> F[Room DB<br/>Liked songs Β· playlists]
A --> G[DownloadManager<br/>Offline MP3s]
| Platform | Android 7.0+ (minSdk 24 Β· targetSdk 35 Β· compileSdk 35) |
|---|---|
| Language | Kotlin |
| Networking | Retrofit 2.9 + Gson Β· OkHttp 4.12 |
| Media | Media3 / ExoPlayer 1.2 (exoplayer, ui, common) |
| Storage | Room 2.6.1 Β· SharedPreferences |
| Backend | Python Flask + jiosaavn (self-hostable, CORS, SECRET key) |
| Build | Gradle 8.13 Β· AGP 8.11.2 Β· Kotlin 2.0.21 Β· kapt Β· JDK 17 |
| Status | Released β v1.0.0 with prebuilt APK |
An Electron desktop control center for orchestrating multi-account WhatsApp message campaigns.
JARVIS WhatsApp Sender is a desktop application (Electron 30 + Node.js β₯ 18) that solves a genuinely awkward problem: operating WhatsApp messaging across multiple accounts without opening a browser tab per account. WhatsApp accounts are paired as nodes via QR-code scans (whatsapp-web.js + Puppeteer sessions), and a local Express + Socket.IO backend streams live progress to a terminal-style UI built with Tailwind CSS.
Campaigns are driven by CSV contact imports with {FirstName} template personalization, optional media attachments, rotating proxy injection, and per-number verification before sending. Campaigns can be paused, resumed, or stopped mid-flight, and an optional Telegram bot streams milestones, node failures, and completions. The app ships with session persistence and a one-command Windows NSIS installer built with electron-builder.
Responsible use: this project automates bulk messaging on WhatsApp, which may violate WhatsApp's Terms of Service and spam laws in your jurisdiction. Use it only for consent-based outreach and accept full responsibility for the accounts you connect.
flowchart LR
A[Desktop UI<br/>Electron window] -->|QR pairing, commands| B[Local backend<br/>Express + Socket.IO]
B --> C[Node manager<br/>whatsapp-web.js]
C --> D1[Node 1]
C --> D2[Node 2]
C --> D3[Node N]
B -->|live logs, progress| A
B -->|milestones, failures| E[Telegram bot<br/>optional]
| Platform | Windows desktop (NSIS installer) Β· dev on any OS |
|---|---|
| Runtime | Node.js β₯ 18 |
| Desktop shell | Electron 30 Β· electron-builder 24 |
| Backend | Express 4 Β· Socket.IO 4 |
| Automation | whatsapp-web.js ^1.23 Β· Puppeteer Β· qrcode |
| Frontend | HTML + vanilla JS Β· Tailwind CSS (CDN) |
| Status | Documented Β· maintained |
The web showcase for the JARVIS ecosystem β a cyber-themed, fully static single-page site.
The portfolio site presents the JARVIS suite with a boot-up loader animation, particle canvas and aurora background, 3D tilt interaction on download cards, and an interactive download hub for the suite's apps. It is built with plain HTML5, CSS3, and vanilla JavaScript β no build step, no runtime dependencies β and deployed automatically on GitHub Pages from the main branch.
| Stack | HTML5 Β· CSS3 Β· Vanilla JS Β· Font Awesome 6 Β· Google Fonts (Space Grotesk, JetBrains Mono, Syne) |
|---|---|
| Hosting | GitHub Pages (static, from main) |
| Status | Live |
These repositories are forks, not original projects β kept separate from the JARVIS suite:
- JioSaavnAPI β personal fork of cyberboysumanjay/JioSaavnAPI (Python 3 music API). My fork currently sits 3 commits ahead of upstream, containing a query-handling logic fix, a search/error-handling refactor, and deployment configuration. Fork
- register β fork of the is-a.dev subdomain registry, used for contribution workflow (pending
laksh.is-a.devregistration PR). Fork
Android
βββ π°οΈ JARVIS GeoSpoof β GPS mock-location testing tool (Java)
βββ π΅ JARVIS Music β music streaming & downloading app (Kotlin)
Desktop
βββ π¬ JARVIS WhatsApp Sender β Electron campaign automation console
Web
βββ π JARVIS Portfolio β static showcase site on GitHub Pages
Backend / API
βββ π Flask + jiosaavn β self-hostable JARVIS Music API
βββ π’ Express + Socket.IO β local backend for the WhatsApp Sender
Extracted from the actual source of the JARVIS repositories:
| Concept | Where it appears |
|---|---|
| Android foreground services + persistent notifications | GeoSpoof (JarvisSpoofService) |
Android mock-location providers (addTestProvider, setTestProviderLocation) |
GeoSpoof |
Boot persistence via BootReceiver + JobScheduler |
GeoSpoof |
| Map rendering with osmdroid / OpenStreetMap tiles | GeoSpoof |
| Media playback with Media3 / ExoPlayer | Music |
| Local persistence with Room (entities, DAOs, kapt) | Music |
| REST API consumption with Retrofit + OkHttp + Gson | Music |
Offline downloads via Android DownloadManager |
Music |
| Self-hostable backend APIs (Flask, CORS, env-based secrets) | Music API |
| Real-time client-server communication with Socket.IO | WhatsApp Sender |
| Electron application architecture (main process, local server, UI) | WhatsApp Sender |
QR-code session authentication with whatsapp-web.js |
WhatsApp Sender |
| Static-site deployment on GitHub Pages | Portfolio |
| Gradle Kotlin DSL builds + version catalogs | GeoSpoof, Music |
The
github-readme-statsservice is currently returning 503, so the stats and top-languages cards are intentionally omitted rather than showing broken placeholders.
The most recent activity in the JARVIS suite:
- JARVIS Music β released v1.0.0 with a prebuilt APK
- JARVIS GeoSpoof β released v1.0.0 with a prebuilt APK
- JARVIS ecosystem β continuing to evolve the suite and its showcase site
Inferred from the direction of the active repositories (not claimed beyond what the code shows):
- Deeper Android development β Kotlin, application architecture, lifecycle-aware components
- Media application design β playback, queues, and offline storage
- Self-hosted API design β Flask services and consuming them from native clients
- Automation engineering β session management and real-time monitoring
A conceptual map of how the JARVIS ecosystem took shape (no dates claimed β based on repository structure):
Web experiments Β· static sites on GitHub Pages
β
Node.js / Electron desktop applications
β
Android utilities in Java (GeoSpoof)
β
Kotlin media applications (Music)
β
The JARVIS ecosystem β a documented project suite across platforms
- Every JARVIS repository is public and documented β README,
CONTRIBUTING.md,SECURITY.md, and issue templates. - Issues, feature requests, and pull requests are welcome where repository docs invite them.
- Forks and contributions (e.g. JioSaavnAPI, register) are clearly distinguished from original JARVIS work.
- No open-source license has been applied to the JARVIS repositories β all rights reserved by the author until a license is added.
| GitHub | github.com/CodeWithLakxsh |
|---|---|
| Portfolio | codewithlakxsh.github.io |
| Official site | codewithlaksh.in |
| Telegram | @codewithlaksh |
Build practical tools. Understand the system underneath. Keep improving the implementation β and document what you learn along the way.
Every JARVIS project starts from a real workflow that needs fixing, ships as something usable (APK, installer, or live site), and stays documented so the next iteration is easier than the last.