MVP full-stack cloud storage platform combining AI document chat, Supabase PostgreSQL + pgvector RAG, Telegram Bot API file storage, and Ethereum Sepolia ownership proofs.
- React + Vite frontend
- FastAPI backend
- Supabase Auth, PostgreSQL, and pgvector
- NVIDIA AI API for LLM responses
- Telegram Bot API for encrypted file storage and retrieval references
- Ethereum Sepolia smart contract for file ownership verification
- Upload files through the FastAPI backend and store encrypted bytes through Telegram Bot API.
- Persist file metadata, activity, and document embeddings in Supabase PostgreSQL.
- Chat with document context using the RAG pipeline and NVIDIA AI API.
- Register SHA256 file ownership hashes on Sepolia with
FileOwnershipRegistry. - Verify ownership from the frontend using MetaMask and the deployed contract address.
cp .env.example .env
# Fill Supabase, NVIDIA, Telegram, Sepolia, and security values.
npm install
pip install -r requirements.txt
npm run dev
uvicorn main:app --reloadFrontend: http://localhost:5173 Backend docs: http://localhost:8000/docs
Run database/schema.sql in the Supabase SQL editor. Use your Supabase PostgreSQL connection string in SUPABASE_DB_URL. The project keeps pgvector support through the document_embeddings table.
npm install
npx hardhat compile
npx hardhat run scripts/deploy.cjs --network sepolia
# Put the deployed address into VITE_CONTRACT_ADDRESS in .envOnly metadata and ownership hashes are stored on-chain. File bytes are encrypted and stored through Telegram Bot API.
The root .env.example is intentionally small and beginner-friendly. Runtime constants such as JWT algorithm, token expiry, pgvector table name, and contract metadata are kept in code instead of requiring extra environment variables.
GET /api/healthPOST /api/files/uploadGET /api/filesGET /api/statsPOST /api/ai/chatPOST /api/ai/streamGET /api/blockchain/verify/{file_hash}/{wallet}