Company Intranet Platform - Dashboard & Wiki (React Edition with Pinecone & Backend Gemini)
Welcome to the Company Intranet Platform, a modern, feature-rich internal platform. This version features a dynamic dashboard built with React and a Node.js/Express backend leveraging Pinecone for its Wiki search and storage, and Google Gemini for AI-powered crypto explanations via the backend.
Core Concept
The platform aims to provide a centralized place for company information, tools, and communication, with a powerful semantic search for its knowledge base (Wiki) and intelligent data insights.
Current State & Features
Frontend (React):
- A single-page application built with React and TypeScript.
- Views: Dashboard and Wiki.
- Dashboard Widgets (Dynamic Data):
- Calendar & Notifications (mock data from backend).
- Weather (live from OpenWeatherMap via backend if API key is set, otherwise mock).
- Cryptocurrency Prices (live from CoinGecko via backend).
- AI Explanations for Crypto (requested from backend, which uses Gemini API).
- Wiki Section:
- Search wiki pages (powered by Pinecone on the backend).
- View wiki page content.
- Add and Edit wiki pages (content stored and indexed in Pinecone).
- Responsive design for mobile and web.
Backend (Node.js Express with Pinecone, CoinGecko & Gemini):
- Express application (
server.js) serving as the backend. - Pinecone Integration for Wiki:
- Uses the
@pinecone-database/pineconeSDK. - Connects to a Pinecone index (default:
company-wiki). - Simulated Embeddings: For demonstration, text embeddings for upserting and querying are simulated with random vectors. In a production environment, you would integrate a real sentence embedding model.
- Uses the
- CoinGecko Integration for Crypto Prices:
- Uses
node-fetchto call the CoinGecko API for live BTC and ETH prices.
- Uses
- Google Gemini Integration for AI Explanations (Secure):
- Uses the
@google/genaiSDK. - The
GEMINI_API_KEYis stored securely on the backend and never exposed to the client. - Provides an endpoint for the frontend to request AI-generated explanations for cryptocurrency trends.
- Uses the
- OpenWeatherMap Integration for Weather (Optional):
- If
OPENWEATHERMAP_API_KEYis set in the backend.env, it fetches live weather. Otherwise, provides mock data.
- If
- API Endpoints:
/api/dashboard: Calendar and Notifications./api/weather: Weather data./api/crypto/:pair: Live BTC/ETH data from CoinGecko./api/ai/explain-crypto(POST): Generates AI explanation for crypto data./api/wiki/search(POST): Searches wiki pages in Pinecone./api/wiki(POST): Upserts (creates/updates) a wiki page to Pinecone./api/wiki/:page_id(GET): Fetches a specific page by ID from Pinecone./api/wiki(GET): Fetches a sample list of pages from Pinecone.
- Express application (
Technology Stack
- Frontend: React, TypeScript, HTML, CSS
- Backend: Node.js, Express.js, Pinecone (via
@pinecone-database/pinecone), Google Gemini API (via@google/genai), CoinGecko API (vianode-fetch), OpenWeatherMap API (optional, vianode-fetch) - Styling: Custom CSS in
index.html. - AI (Backend for Crypto Explanations & Wiki): Google Gemini, Pinecone for vector search. Real text embeddings for Wiki would require a separate model.
Prerequisites
- Node.js: Version 16.x or newer (includes npm).
- A modern web browser.
- A React build environment: (e.g., Vite or Create React App).
- Pinecone Account:
- API Key.
- Environment Name.
- An existing Pinecone index (e.g.,
company-wiki) with a dimension matching your (simulated or real) embeddings (current simulation uses dimension 10).
- Google Gemini API Key: For AI-powered crypto explanations.
- (Optional) OpenWeatherMap API Key: For live weather data.
- (Note on CoinGecko) The free CoinGecko API has rate limits. For heavy usage, consider their paid plans.
Setup and Running
Clone or Download the Project.
Backend Setup (Node.js Express & Pinecone):
- Navigate to the project directory (where
server.jsis). - Create a
.envfile in this directory (you can copy.env.example) with your credentials:
Replace with your actual values.PINECONE_API_KEY=YOUR_PINECONE_API_KEY PINECONE_ENVIRONMENT=YOUR_PINECONE_ENVIRONMENT GEMINI_API_KEY=YOUR_GEMINI_API_KEY OPENWEATHERMAP_API_KEY=YOUR_OPENWEATHERMAP_API_KEY_IF_ANYOPENWEATHERMAP_API_KEYis optional. - Install dependencies:
(This will installnpm installexpress,cors,@pinecone-database/pinecone,node-fetch,@google/genai,dotenv). - Run the Backend Server:
The server will start (typicallynpm starthttp://localhost:5001) and attempt to connect to services. Check console logs.
- Navigate to the project directory (where
Frontend Setup (React):
- Ensure you have a React development environment set up (e.g., using Vite:
npm create vite@latest my-react-app -- --template react-ts). - Copy the provided React source files (
index.tsx,App.tsx,src/directory,index.html) into your Vite project structure, replacing existing files where necessary. - Frontend Environment Variables (if any):
The
VITE_GEMINI_API_KEYpreviously used on the frontend for direct Gemini calls is no longer needed for that purpose as AI explanations are now proxied through the backend. If you have other Vite-specific frontend env vars, manage them in your frontend project’s.envfile. - Install frontend dependencies (if you created a new Vite project):
Navigate to your React project directory (e.g.,
my-react-app)npm install - Run the Frontend Development Server:
From your React project directory:
Open the URL provided (e.g.,npm run devhttp://localhost:5173).
- Ensure you have a React development environment set up (e.g., using Vite:
API Endpoints (Provided by server.js)
GET /api/dashboardGET /api/weatherGET /api/crypto/:pair(e.g.,/api/crypto/BTCUSD)POST /api/ai/explain-crypto(Body:{ "pairSymbol": "Bitcoin (BTC)", "price": "50000", "changePercent": "2.5" })POST /api/wiki/search(Body:{ "query": "your search term" })POST /api/wiki(Body:{ "title": "Page Title", "content_md": "# Markdown content", "id": "optional-page-id-for-update" })GET /api/wiki/:page_idGET /api/wiki(lists a sample of pages)
Project Structure (Focus on changes)
/ (Original Project Root)
├── index.html # Main HTML host (updated CSS for responsiveness)
├── index.tsx # React entry point
├── App.tsx # Root React component (Gemini SDK init removed)
├── src/
│ ├── components/
│ │ ├── CryptoWidget.tsx (calls backend for AI explanations)
│ │ ├── ... (other components)
│ ├── ... (other React source files)
├── server.js # Node.js backend (added Gemini API proxy, dotenv)
├── package.json # Backend dependencies (added @google/genai, dotenv)
├── .env.example # Example for backend environment variables (added GEMINI_API_KEY)
└── README.md # This file (updated for backend Gemini and setup)
This setup provides a more secure and robust foundation for your company intranet. Remember to replace simulated embeddings with a real embedding solution for meaningful Wiki search results in a production system.
Company Intranet Platform
Project Details
- lorenzorasmussen/GooGledatanexus-ai
- Last Updated: 6/1/2025
Recomended MCP Servers
A Model Context Protocol server for the Codex API
An MCP server implementation enabling LLMs to work with new APIs and frameworks
An MCP server implementation providing a standardized interface for LLMs to interact with the Atla API.
Dingo: A Comprehensive Data Quality Evaluation Tool
MCP server implementation for n8n workflow automation
MCP server for interacting with EntraID through Microsoft Graph API.
Implementation of Anthropic's MCP protocol for Firebird databases.
Playwright MCP server
This read-only MCP Server allows you to connect to Azure Data Lake Storage data from Claude Desktop through...





