Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/gcsconsultores/centros-estrategicos-gcs/llms.txt

Use this file to discover all available pages before exploring further.

This guide walks you through cloning the repository, wiring up environment variables, and booting the virtual office locally with a working Sally AI chat, lead capture, and Teams meeting scheduling. By the end you’ll have a fully functional development instance running at http://localhost:3000 — ready to extend, theme, or connect to your own Microsoft 365 tenant.
Prerequisites before you begin:
  • Node.js 18 or higher — Next.js 16 requires Node 18+. Run node -v to confirm.
  • A Google Gemini API key — Sally’s chat is required for the core experience. Get a free key at aistudio.google.com.
  • Microsoft 365 / Azure AD credentials (optional for local dev) — needed for full SharePoint lead storage and Teams meeting creation. See Minimum Configuration below if you want to skip this step initially.
1

Clone the repository

Clone the project from GitHub and navigate into the project directory:
git clone https://github.com/gcsconsultores/centros-estrategicos-gcs.git
cd centros-estrategicos-gcs
2

Install dependencies

Install all Node.js packages using your preferred package manager:
npm install
The install pulls in Next.js 16.2, React 19, the Vercel AI SDK, all Radix UI primitives, Tailwind CSS v4, and the full shadcn/ui component set — expect the initial install to take 30–60 seconds.
3

Create .env.local

Copy the template below into a new file named .env.local at the root of the project. Fill in each value with your own credentials:
.env.local
# ─────────────────────────────────────────────
# Required — Sally AI chat (Google Gemini 2.5 Flash)
# Get a free key at https://aistudio.google.com
# ─────────────────────────────────────────────
GOOGLE_GEMINI_API_KEY=your_gemini_api_key_here

# ─────────────────────────────────────────────
# Required for SharePoint lead storage
# Register an app in Azure AD with Sites.ReadWrite.All
# ─────────────────────────────────────────────
AZURE_AD_CLIENT_ID=your_azure_client_id
AZURE_AD_CLIENT_SECRET=your_azure_client_secret
AZURE_AD_TENANT_ID=your_azure_tenant_id
SHAREPOINT_SITE_ID=your_sharepoint_site_id
SHAREPOINT_LIST_ID=your_sharepoint_list_id

# ─────────────────────────────────────────────
# Required for Teams meeting creation
# Must be a licensed Microsoft 365 mailbox
# ─────────────────────────────────────────────
DEFAULT_ORGANIZER_EMAIL=consultant@yourcompany.com
Never commit .env.local to version control. The repository’s .gitignore already excludes it, but double-check before pushing to a shared remote.
4

Run the development server

Start the Next.js development server:
npm run dev
Once the compiler finishes its initial build, open your browser and navigate to:
http://localhost:3000
You should see the GCS login screen. The first compile may take 10–15 seconds as Tailwind v4 processes the CSS.
5

Log in and explore the virtual office

The platform uses a lightweight client-side auth flow backed by localStorage — no database required for local development:
  1. Navigate to /login.
  2. Enter your name in the name field.
  3. Choose a role: cliente to test the restricted view, or consultor for full access to all six rooms.
  4. Press Ingresar.
Once inside, Sally will greet you in the Lobby. Open the chat panel on the right side and send a message to confirm the Gemini integration is working.To explore the Revisoría Fiscal evaluation flow separately, navigate to /evaluacion. This is a standalone diagnostic tool — it does not affect access to the virtual office in the current implementation.
The eligible field on the User object is set to true by the login page for all users. VirtualOffice.tsx checks user?.eligible before rendering room content; if it is false, users see a prompt to complete the evaluation instead of the office.

Minimum Configuration

The app runs with a reduced feature set if the Microsoft 365 variables are omitted from .env.local. Here is exactly what degrades and what stays fully functional:
FeatureWith GOOGLE_GEMINI_API_KEY onlyWith all env vars
Sally AI chat✅ Fully functional✅ Fully functional
Lead form submission⚠️ Logged to server console✅ Written to SharePoint list
Teams meeting scheduling⚠️ Returns a dev-{timestamp} mock ID✅ Real Teams calendar event + joinUrl
Vercel Analytics✅ Active in production builds✅ Active in production builds
Room navigation✅ Fully functional✅ Fully functional
Compliance evaluation✅ Fully functional✅ Fully functional
This means you can build and test the full UI, Sally conversations, room navigation, and the evaluation engine with just your Gemini key. Microsoft 365 credentials are only required when you need real lead records in SharePoint or actual Teams meeting links.
For a complete walkthrough of registering an Azure AD application, granting Sites.ReadWrite.All and Calendars.ReadWrite permissions, and retrieving your SharePoint Site ID and List ID, see the Microsoft 365 Integration guide.

Available Scripts

These npm scripts are defined in package.json and cover the full development lifecycle:
ScriptCommandDescription
Development servernpm run devStarts Next.js in development mode with hot reload at http://localhost:3000
Production buildnpm run buildCompiles and optimizes the app for production deployment
Production servernpm startServes the compiled production build locally
Linternpm run lintRuns ESLint across the entire project using the Next.js ESLint config

Build docs developers (and LLMs) love