sci-vault is an AI-powered collaborative platform for intelligent management and discovery of laboratory research data. The system leverages modern microservices architecture with gRPC communication, embedding-based recommendations, and vector search capabilities to provide researchers with powerful tools for data exploration and insight extraction.
This monorepo contains a complete microservices-based application for research data management:
Before getting started, ensure you have the following tools installed:
The first step is to generate the necessary gRPC code for both services using Buf:
buf generate
This reads the protobuf definitions from the proto/ directory and generates the required gRPC stubs and client code for svc-gateway and svc-recommender. Re-run this command whenever you modify any .proto files.
Each service has its own setup and runtime requirements. Navigate to the respective service directories and follow their specific instructions:
cd svc-gateway
go mod tidy
go run .
See svc-gateway/README.md for detailed instructions.
cd svc-recommender
uv sync
uv run --env-file .env main.py
See svc-recommender/README.md for detailed instructions.
cd frontend
bun install
bun run dev
See frontend/README.md for detailed instructions.
sci-vault/
├── proto/ # Protocol buffer definitions for gRPC
│ └── recommender/ # Recommender service proto
├── svc-gateway/ # Go-based API gateway
├── svc-recommender/ # Python-based recommendation engine
├── frontend/ # SvelteKit web application
├── buf.yaml # Buf configuration for code generation
├── buf.gen.yaml # Buf generation settings
└── README.md # This file
proto/ as neededbuf generate to update generated codeUpcoming improvements include:
This project is licensed under the LICENSE file in the root directory.