Skip to content

HackIndiaXYZ/vibe-coding-hackathon-2026-kairos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ LinkSys

Know Your Digital Footprint

React FastAPI Three.js License: MIT

Discover. Visualize. Secure. β€” Your entire digital identity, mapped in one place.

πŸ“– Setup Guide

Built at HackIndia Vibe Coding Hackathon 2026 by Team Kairos

πŸ† Hackathon Track

πŸš€ Startup Prototype
Build a product that can turn into a real startup.

⚑ Built With

Frontend: React, TypeScript, Tailwind CSS, ReactFlow, Three.js

Backend: FastAPI, Python, SQLite, Google OAuth

AI Tools: ChatGPT, Claude, Cursor, GitHub Copilot


The Problem

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.


Solution

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.


Features

πŸ” Google OAuth Onboarding

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.

πŸ•ΈοΈ Interactive Dependency Graph

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.

🌐 Immersive 3D Visualization

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.

πŸ“Š Risk Intelligence Dashboard

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

πŸ‘€ Identities & Permissions Audit

Dedicated views for all linked identities and active permission grants β€” a granular breakdown of what's connected to what, and what you should revoke.

πŸ“‹ Unified Account Inventory

A complete inventory of all discovered accounts with metadata, status, and risk indicators in one searchable view.


Architecture

                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                         β”‚          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 β”‚
                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Tech Stack

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

Project Structure

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

Getting Started

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

Privacy & Security

  • 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

Team Kairos

  • Trisha Deshmukh
  • Sanika Mane
  • Bliss Gonsalves
  • Shravani Joshi

License

MIT License β€” see LICENSE for details.

About

Hackathon team repository for Kairos - [hackindia-team:vibe-coding-hackathon-2026:kairos]

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors