Bring your memories back to life with GraphAura. Transform photos and docs into an AI-powered 3D knowledge graph of people, places, and moments to explore your memories and share insights.

- graphaura: this monorepo with frontend and backend
- R2R: external service for ingestion, chunking, embeddings, and RAG
- Frontend: Next.js 15, React 19, Tailwind CSS, react-force-graph-3d
- Backend: FastAPI (Python 3.13), structlog
- Data: Neo4j, PostgreSQL + pgvector, Redis
- AI: R2R for ingestion, NER, embeddings, and RAG
graph TB
U[Browser] --> FE[Next.js Frontend]
FE -->|REST| BE[FastAPI Backend]
BE -->|HTTP| R2R[R2R Service]
BE -->|bolt| NEO[(Neo4j)]
BE -->|asyncpg + pgvector| PG[(Postgres)]
BE -->|Redis| REDIS[(Redis)]
R2R -->|entities + embeddings| BE
flowchart LR
Files[Files, Photos, Notes, PDFs] --> Upload[/Upload via UI or API/]
Upload --> R2RIngest[R2R ingest + chunk + embed + extract]
R2RIngest --> Entities[Entities + Relationships]
Entities --> NEO[(Neo4j)]
R2RIngest --> Embeds[Embeddings]
Embeds --> PG[(Postgres pgvector)]
Query[User query] --> API[Search APIs]
API --> Hybrid[Hybrid search]
Hybrid --> Docs[R2R document search]
Hybrid --> Graph[Graph traversal]
Graph --> FEVis[3D graph UI]
Docs --> FEVis
NEO --> API
PG --> API
graphaura/
backend/ FastAPI app, services, and APIs
frontend/ Next.js app with 3D graph visualization
-
Dependencies
- Neo4j 5 running locally
- Postgres with pgvector extension
- Redis
- R2R service available at
http://localhost:7272
-
Backend
cd backenduv sync- copy
.env.exampleto.envand set connection strings uv run uvicorn src.main:app --reload
-
Frontend
cd frontendnpm installnpm run dev
GET /health- service healthGET /metrics- vector and graph countsPOST /api/v1/documents/upload- upload and process document via R2RGET /api/v1/documents/{id}- document metadataPOST /api/v1/documents/create-graph- build graph from documentsPOST /api/v1/graph/entities- create entityGET /api/v1/graph/entities/{id}- fetch entity and relationshipsPOST /api/v1/search/hybrid- hybrid search across documents and graph
Set via environment variables (see backend/.env.example and backend/src/config.py). Common keys:
POSTGRES_*- Postgres connection and database nameNEO4J_*- Neo4j connectionR2R_BASE_URL- R2R base URLREDIS_*- Redis connectionVECTOR_DIMENSION,SIMILARITY_THRESHOLD,MAX_GRAPH_DEPTH
- See
backend/README.mdfor detailed APIs and development commands. - Frontend runs on
http://localhost:3000. Backend runs onhttp://localhost:8000with OpenAPI docs at/docs.