Discover. Visualize. Secure. β Your entire digital identity, mapped in one place.
Built at HackIndia Vibe Coding Hackathon 2026 by Team Kairos
π Startup Prototype
Build a product that can turn into a real startup.
Frontend: React, TypeScript, Tailwind CSS, ReactFlow, Three.js
Backend: FastAPI, Python, SQLite, Google OAuth
AI Tools: ChatGPT, Claude, Cursor, GitHub Copilot
The average internet user has 90+ online accounts. Most can't name half of them.
Every time you sign in with Google, grant OAuth access, or use your email as a recovery address, you're building an invisible web of dependencies. One compromised account can cascade silently β taking down your banking app, cloud storage, professional network, and everything linked to it.
Users today have no unified view of their accounts, no visibility into which ones act as critical hubs, and no actionable path to reduce their exposure. Existing tools show accounts in isolation. LinkSys shows the whole picture.
LinkSys is a digital identity intelligence platform that aggregates your online accounts, maps their interdependencies as an interactive graph, scores security risks, and surfaces personalized guidance β all in a single dashboard.
Authenticate securely with Google. Your Google identity becomes the seed node from which LinkSys begins mapping connected accounts, OAuth grants, and recovery chains. No passwords are ever stored.
Built with ReactFlow, the graph view renders your accounts as nodes with edges representing OAuth grants, recovery links, and shared identities. Pan, zoom, and click nodes to inspect each account.
A Three.js + React Three Fiber powered 3D scene lets you navigate your digital footprint in space β animated, interactive, and designed to make invisible data feel tangible.
LinkSys analyses your account graph and flags:
- High-privilege accounts acting as master recovery points
- Dormant or unused accounts still holding active permissions
- Accounts with broad third-party OAuth grants
- Identity consolidation vulnerabilities
Dedicated views for all linked identities and active permission grants β a granular breakdown of what's connected to what, and what you should revoke.
A complete inventory of all discovered accounts with metadata, status, and risk indicators in one searchable view.
βββββββββββββββββββββββββββββββ
β LINKSYS β
βββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββ΄βββββββββββββββββββββββββ
β β
ββββββββββΌββββββββββ βββββββββββΌβββββββββ
β FRONTEND β β BACKEND β
β React 19 + Vite ββββββββββ REST API βββββββββββ FastAPI + Python β
β TypeScript β (Axios) β Uvicorn ASGI β
βββββββββββ¬βββββββββ ββββββββββββ¬ββββββββ
β β
ββββββββββββ΄βββββββββββ βββββββββββββββ΄ββββββββββββββ
β β β β
ββββΌβββββββββββ ββββββββΌβββββββ βββββββββΌβββββββ ββββββββββΌβββββββββ
β Graph View β β Dashboard β β API Routes β β Data Layer β
β (ReactFlow) β β (Recharts) β β β β β
β β β β β /accounts β β SQLAlchemy ORM β
β 3D Scene β β Risks Page β β /graph β β SQLite β
β (Three.js β β Identities β β /risks β β footprint.db β
β + R3F) β β Accounts β β /identities β βββββββββββββββββββ
β β β Profile β β /permissions β
βββββββββββββββ βββββββββββββββ β /dashboard β
β /profile β
β /auth β
ββββββββ¬ββββββββ
β
ββββββββββββββΌβββββββββββββ
β Google OAuth 2.0 β
β python-jose JWT tokens β
β passlib bcrypt hashing β
βββββββββββββββββββββββββββ
| Layer | Technology | Purpose |
|---|---|---|
| Frontend Framework | React 19 + Vite + TypeScript | App shell, routing, fast HMR |
| Graph Visualization | ReactFlow v11 | Interactive account dependency graph |
| 3D Visualization | Three.js + React Three Fiber + Drei | Immersive 3D footprint scene |
| Post-processing | postprocessing | Visual effects on 3D scene |
| Animations | Framer Motion | Page transitions and UI motion |
| Charts | Recharts | Risk scores and dashboard analytics |
| Styling | Tailwind CSS v4 | Utility-first design system |
| Icons | Lucide React | UI icon set |
| HTTP Client | Axios | Frontend β Backend API calls |
| Backend Framework | FastAPI | REST API, async Python |
| Server | Uvicorn[standard] | ASGI production server |
| ORM | SQLAlchemy | Database models and queries |
| Database | SQLite (footprint.db) |
Persistent local storage |
| Authentication | Google OAuth 2.0 + JWT | Secure login, stateless sessions |
| JWT | python-jose[cryptography] | Token creation and verification |
| Hashing | passlib[bcrypt] | Secure credential hashing |
| Validation | Pydantic[email] | Request/response schema validation |
linksys/
βββ backend/
β βββ app/
β β βββ api/
β β β βββ accounts.py # Account CRUD endpoints
β β β βββ auth.py # JWT auth endpoints
β β β βββ dashboard.py # Dashboard summary data
β β β βββ dependencies.py # FastAPI dependency injection
β β β βββ google_auth.py # Google OAuth 2.0 flow
β β β βββ graph.py # Graph nodes & edges data
β β β βββ identities.py # Linked identities management
β β β βββ permissions.py # OAuth permissions audit
β β β βββ profile.py # User profile endpoints
β β β βββ risks.py # Risk scoring & analysis
β β βββ core/
β β β βββ config.py # App config (loads .env)
β β β βββ security.py # JWT creation & verification
β β βββ db/
β β β βββ database.py # SQLAlchemy engine & session
β β β βββ init_db.py # Database initialisation
β β β βββ seed.py # Optional seed data
β β βββ models/
β β β βββ __init__.py
β β β βββ models.py # SQLAlchemy table definitions
β β βββ schemas/
β β β βββ auth.py # Pydantic request/response schemas
β β βββ services/
β β βββ __init__.py # Business logic layer
β βββ main.py # FastAPI app entry point
β βββ requirements.txt
β
βββ frontend/
β βββ public/
β β βββ favicon.svg
β β βββ icons.svg
β βββ src/
β βββ assets/
β βββ components/
β β βββ Sidebar.tsx # Navigation sidebar
β βββ pages/
β β βββ Dashboard.tsx # Overview & stats
β β βββ Graph.tsx # ReactFlow dependency graph
β β βββ Accounts.tsx # Full account inventory
β β βββ Identities.tsx # Linked identities view
β β βββ Risks.tsx # Risk analysis & scores
β β βββ Profile.tsx # User profile
β β βββ LoginPage.tsx # Google OAuth entry point
β βββ services/
β β βββ api.ts # Axios API client (base URL config)
β βββ App.tsx # Root component + React Router
β βββ App.css
β βββ main.tsx # React DOM entry point
β βββ index.css
β
βββ .gitignore
βββ LICENSE
βββ README.md
βββ setup_instructions.md
See the full Setup Guide for detailed instructions with troubleshooting.
# Clone
git clone https://github.com/HackIndiaXYZ/vibe-coding-hackathon-2026-kairos.git
cd vibe-coding-hackathon-2026-kairos
# Backend (terminal 1)
cd backend
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
# Add your .env file (see setup_instructions.md)
uvicorn main:app --reload
# Frontend (terminal 2)
cd frontend
npm install && npm run dev| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend API | http://localhost:8000 |
| API Docs (Swagger) | http://localhost:8000/docs |
| API Docs (ReDoc) | http://localhost:8000/redoc |
- No passwords stored β authentication is delegated entirely to Google OAuth 2.0
- Stateless JWT sessions β short-lived tokens signed with
python-jose, nothing persisted server-side - Local-first β all account data lives in your local
footprint.db, not a remote server - Minimal OAuth scope β LinkSys requests only what it needs to map your footprint
- Trisha Deshmukh
- Sanika Mane
- Bliss Gonsalves
- Shravani Joshi
MIT License β see LICENSE for details.