Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/danielitoCode/AlejoTaller/llms.txt

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

AlejoTaller is composed of three runtime surfaces — the Svelte web client, the alejo_publisher Node.js microservice, and two Android applications — each with its own configuration layer. This page documents every variable expected by each surface and explains its purpose. Keep all secrets out of version control; use .env files locally and your hosting provider’s secret manager in production.

Web Client (.env)

The web client is built with Vite. All variables must be prefixed with VITE_ so Vite exposes them to the browser bundle at build time. Create a .env file at the root of the web/ directory and populate it before running pnpm dev or building for production.

Appwrite

VariableRequiredDescription
VITE_APPWRITE_ENDPOINTFull URL of your Appwrite instance, e.g. https://cloud.appwrite.io/v1.
VITE_APPWRITE_PROJECT_IDThe unique ID of your Appwrite project.
VITE_APPWRITE_DATABASE_IDID of the Appwrite database that holds the products, categories, and sales collections.
VITE_APPWRITE_STORAGE_BUCKET_IDID of the storage bucket used for product images.
VITE_APPWRITE_USERS_FUNCTIONID of the Appwrite Cloud Function that handles privileged user-management operations.
VITE_APPWRITE_CONSOLE_URLURL to the Appwrite console — used in admin shortcuts inside the web dashboard.

Google Auth

VariableRequiredDescription
VITE_GOOGLE_CLIENT_IDOAuth 2.0 client ID from Google Cloud Console for web sign-in.
VITE_GOOGLE_AUTH_URLThe redirect or OAuth authorization URL used to initiate Google sign-in.

Pusher

VariableRequiredDescription
VITE_PUSHER_APP_IDPusher application ID. Used by the web client only for display/config — triggering is done server-side via alejo_publisher.
VITE_PUSHER_KEYPusher application key. This is the public key embedded in the browser bundle.
VITE_PUSHER_CLUSTERPusher cluster region, e.g. mt1. Must match the cluster chosen when creating the app.
VITE_PUSHER_SECRETS⚠️Pusher application secret. Avoid exposing this in client-side code — prefer using it only in alejo_publisher.
VITE_PUSHER_SUPPORT_CHANNELName of the Pusher channel used for customer support messages.
VITE_PUSHER_PROMO_CHANNELName of the Pusher channel for promotional broadcasts.
VITE_PUSHER_NOTIFICATION_CHANNELName of the Pusher channel for general user notifications.
VITE_PUSHER_IA_CHANNELName of the Pusher channel reserved for AI-driven interactions.

Publisher / Realtime

VariableRequiredDescription
VITE_ALSET_PULSE_BASE_URLBase URL of the alejo_publisher microservice, e.g. https://alejo-publisher.onrender.com.
VITE_ALSET_PULSE_API_KEYShared secret API key sent as Authorization: Bearer <key> when calling alejo_publisher. Must match PUBLISHER_API_KEY in the publisher’s environment.
VITE_ALSET_PULSE_SUPPORT_MESSAGES_PATHPath appended to VITE_ALSET_PULSE_BASE_URL for support-message endpoints.

Telegram

VariableRequiredDescription
VITE_TELEGRAM_API_URLBase URL of the Telegram Bot API, typically https://api.telegram.org.
VITE_TELEGRAM_BOT_KEYAPI token for the Telegram bot used to send order or support notifications.
VITE_TELEGRAM_CHAT_IDNumeric ID of the Telegram chat or group that receives notifications.

APK Distribution

VariableRequiredDescription
VITE_CLIENT_ANDROID_APK_URLDirect download URL for the latest client Android APK.
VITE_OPERATOR_ANDROID_APK_URLDirect download URL for the latest operator Android APK.
VITE_GITHUB_RELEASES_URLURL to the GitHub Releases page listing all versioned APK releases.

Currency APIs

VariableRequiredDescription
VITE_EL_TOQUE_API_URLBase URL for the El Toque exchange-rate API.
VITE_EL_TOQUE_API_KEYAPI key for authenticating requests to El Toque.
VITE_DIRECTORIOCUBO_API_URLBase URL for the DirectorioCubano API used as a secondary exchange-rate source.

Other / Admin

VariableRequiredDescription
VITE_PASSWORD_RESET_URLURL that Appwrite redirects users to after initiating a password reset.
VITE_INFRA_STATUS_URLURL to the infrastructure status page (e.g. a Statuspage or UptimeRobot dashboard).
VITE_ADMIN_DASHBOARD_URLURL of the separate admin dashboard application.
VITE_RENDER_CONSOLE_URLURL to the Render hosting console — used in admin shortcuts.
VITE_CLOUDFLARE_CONSOLE_URLURL to the Cloudflare dashboard — used in admin shortcuts.

Publisher Microservice (alejo_publisher)

The publisher is a small Express server deployed on Render. Its variables are read at startup via process.env (loaded from a .env file locally, or from Render environment variables in production). The service will throw an error and refuse to start if any required variable is missing.
PUBLISHER_API_KEY defaults to tallerAlejoTestApiKey in the example .env file. You must change this to a strong, randomly generated secret before deploying to production. Any caller with this key can trigger Pusher events on behalf of your application.
VariableRequiredDefaultDescription
PORT3000TCP port the Express server listens on. Render sets this automatically.
PUBLISHER_API_KEYBearer token that callers must include in the Authorization header. Must match VITE_ALSET_PULSE_API_KEY in the web client.
PUSHER_APP_IDPusher application ID.
PUSHER_KEYPusher application key.
PUSHER_SECRETPusher application secret. Never expose this to any client.
PUSHER_CLUSTERPusher cluster, e.g. mt1.
ALLOW_ORIGIN*Comma-separated list of allowed CORS origins. Set to the web client’s domain in production, e.g. https://alejotaller.onrender.com.
A minimal production .env for the publisher looks like this:
PORT=3000
PUBLISHER_API_KEY=<your-strong-random-secret>
PUSHER_APP_ID=<your-app-id>
PUSHER_KEY=<your-pusher-key>
PUSHER_SECRET=<your-pusher-secret>
PUSHER_CLUSTER=mt1
ALLOW_ORIGIN=https://alejotaller.onrender.com

Android Apps (local.propertiesBuildConfig)

Both Android applications — the client app (app/) and the operator app (alejotallerscan/) — read secrets from a local.properties file at the repository root. During the Gradle build, the injectLocalProperties() function copies each property into a typed BuildConfig constant, so the secret never needs to be hard-coded in Kotlin source.
local.properties is listed in .gitignore and is never committed. Each developer and CI runner must create and populate this file manually before building.

Appwrite

KeyDescription
APPWRITE_PROJECT_ENDPOINTFull URL of the Appwrite instance.
APPWRITE_PROJECT_IDAppwrite project ID.
APPWRITE_DATABASE_IDID of the Appwrite database.
APPWRITE_BUCKECT_IDID of the Appwrite storage bucket for product images.
CATEGORY_TABLE_IDAppwrite collection ID for the categories collection.
PRODUCT_TABLE_IDAppwrite collection ID for the products collection.
SALE_TABLE_IDAppwrite collection ID for the sales collection.
APPWRITE_TELEGRAM_FUNCTION_URLURL of the Appwrite Cloud Function that dispatches Telegram notifications.

Google Auth

KeyDescription
GOOGLE_CLOUD_WEBCLIENTOAuth 2.0 web client ID (used by both apps via Credential Manager).
GOOGLE_CLOUD_ANDROID_DEBUGAndroid debug OAuth client ID.
GOOGLE_CLOUD_ANDROID_RELEASEAndroid release OAuth client ID.

Telegram

KeyDescription
TELEGRAM_API_URLTelegram Bot API base URL.
TELEGRAM_BOT_KEYBot API token.
TELEGRAM_CHAT_IDTarget chat or group ID.
TELEGRAM_GROUP_NAMEDisplay name of the target Telegram group.
TELEGRAM_GROUP_TYPEType of the Telegram group (e.g. group, supergroup).

Pusher

KeyDescription
PUSHER_APP_IDPusher application ID.
PUSHER_API_KEYPusher public key.
PUSHER_API_SECRETSPusher secret.
PUSHER_CLUSTERPusher cluster region.
PUSHER_SALE_CHANNELChannel prefix used for per-sale real-time events.
PUSHER_SUPPORT_CHANNELSupport channel name.
PUSHER_PROMO_CHANNELPromo broadcast channel name.
PUSHER_NOTIFICATION_CHANNELGeneral notification channel name.
PUSHER_IA_CHANNELAI interaction channel name.

Publisher Service (operator app only)

KeyDescription
PUBLISHER_BASE_URLBase URL of the deployed alejo_publisher microservice.
PUBLISHER_API_KEYBearer token sent by the operator app when calling the publisher. Must match the publisher’s PUBLISHER_API_KEY.

PostHog Analytics

KeyDescription
POSTHOG_TOKENPostHog project API key for event ingestion.
POSTHOG_HOSTPostHog ingest URL, e.g. https://app.posthog.com.

Soluciones Cuba Pay

KeyDescription
SOLUCIONES_CUBA_PAY_API_URLBase URL of the Soluciones Cuba payment gateway.
SOLUCIONES_CUBA_API_KEYAPI key for the payment gateway.
SOLUCIONES_CUBA_MERCHANT_IDMerchant identifier assigned by the gateway.
SOLUCIONES_CUBA_SUCCESS_URLRedirect URL on successful payment.
SOLUCIONES_CUBA_CANCEL_URLRedirect URL on cancelled payment.
SOLUCIONES_CUBA_CALLBACK_URLWebhook URL the gateway calls to confirm payment status.

Build docs developers (and LLMs) love