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 mcp server to manage github project's functionality
Global Notion workspace-accessible MCP server for all Notion pages within the workspace
MCP Server for public disclosure information of Korean companies, powered by the dartpoint.ai API.
MCP Firewall
A Model Context Protocol (MCP) server that provides tools for fetching and analyzing Reddit content.
A universal RPC layer for AI agents. Connect to any function, any language, any framework, in minutes.
This read-only MCP Server allows you to connect to SAS Data Sets data from Claude Desktop through CData...





