Inforario’s development experience is split into two independent layers: a Vite-powered React frontend and a Supabase backend composed of a local PostgreSQL database, Auth server, and Deno Edge Functions. You can work on the UI entirely offline using the built-in regex parser, or spin up the full stack — including AI-powered extraction — with a single command.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/DavidCevallos15/inforario-IA-null/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before running the project locally, make sure you have the following installed:Node.js 18+
Required to run the Vite dev server, install dependencies, and execute
npm scripts. Version 18 or later is recommended.Supabase CLI
Used to start the local Supabase stack, serve Edge Functions, and push secrets. Install via the Supabase CLI docs.
Deno 2
Required by the Edge Functions runtime. The local Supabase stack manages Deno automatically, but having it installed separately is helpful for linting and testing functions in isolation.
Running the Frontend
Frontend Only (No Backend)
The fastest way to start is to run just the Vite dev server. PDF parsing via the built-in regex engine works without any Supabase connection — upload a UTM SGU schedule PDF and the app processes it entirely in the browser.vite.config.ts with server.port: 3000 and host: '0.0.0.0').
If
VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY are not present in frontend/.env.local, the Supabase client falls back to the compile-time constants in src/constants.ts and initialises a dummy no-op client that prevents white-screen crashes. Cloud features (save to cloud, Google Calendar sync) will return graceful error messages rather than crashing.Frontend + AI Extraction Edge Function
To test the Groq-powered AI parsing locally, use thedev:web script. It uses concurrently to run both the Supabase Edge Function server and the Vite dev server simultaneously, with colour-coded terminal output (bgMagenta for FUNC, bgCyan for VITE):
extract-schedule function is served locally with its secrets loaded from backend/supabase/functions/extract-schedule/.env. Make sure this file exists and contains at least GROQ_API_KEY before running this command. See the Environment Variables page for the full format.
Full Local Supabase Stack
To run the complete local backend (PostgreSQL, Auth, Storage, Studio, and Inbucket):cd ../backend && supabase start. The local services come up on these ports (defined in backend/supabase/config.toml):
| Service | URL |
|---|---|
| API (PostgREST) | http://localhost:54321 |
| Database | localhost:54322 |
| Studio | http://localhost:54323 |
| Inbucket (email) | http://localhost:54324 |
| Analytics | http://localhost:54327 |
| Edge Function inspector | http://localhost:8083 |
Available npm Scripts
All scripts are defined infrontend/package.json:
| Script | Command | Description |
|---|---|---|
dev | npm run dev | Start Vite dev server only |
build | npm run build | Type-check with tsc, then build for production |
start:supa | npm run start:supa | Start local Supabase stack (run from frontend/) |
dev:web | npm run dev:web | Vite + extract-schedule Edge Function concurrently |
TypeScript Configuration
Thefrontend/tsconfig.json targets ES2022 and uses the bundler module resolution strategy, which is optimised for Vite’s ESM-native build pipeline.
isolatedModules: true— every file must be a proper ES module (have at least oneimportorexport). Type-only imports must useimport type.noEmit: true— TypeScript is used purely for type checking; Vite’s esbuild handles transpilation. Runningtscalone will not produce output files.allowImportingTsExtensions: true— enables importing.tsand.tsxfiles with their full extension, which works with Vite’s dev server but requiresnoEmit: true.experimentalDecorators: true+useDefineForClassFields: false— legacy decorator semantics are enabled for compatibility with certain Three.js / R3F class patterns.@types/gapiand@types/gapi.calendar— global type declarations for the Google API client loaded at runtime for the Google Calendar integration.
import.meta.env.VITE_*) are declared in src/vite-env.d.ts, which references vite/client. Without this file, TypeScript will report errors on import.meta.env access.
Vite Configuration
@vitejs/plugin-react— uses the Babel-based React Fast Refresh plugin for instant component updates without losing state during development. The project is on^5.0.0, compatible with React 19.host: '0.0.0.0'— the dev server binds to all network interfaces, making it accessible from other devices on the same network (or from a Docker container).process.envshims — thedefineblock polyfillsprocess.env.GEMINI_API_KEYfor any third-party library that expects Node.js-style env access.- PDF.js worker —
pdfjs-distloads its worker from the CDN at runtime (https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${version}/pdf.worker.min.mjs) rather than bundling it, keeping the production bundle lean. @path alias — resolves to thefrontend/root, soimport Foo from '@/components/Foo'works from any depth insrc/.