All runtime configuration for Ecommerce Delivery is driven by theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/fredy-rizo/ecommerce-delivery-frontend/llms.txt
Use this file to discover all available pages before exploring further.
prod.env file in the repository root, which is loaded at build time by @quasar/quasar-app-extension-dotenv and injected into the bundle via require('dotenv').config().parsed inside quasar.config.js. No environment variables need to be set in the shell — everything is read from that single file. Build options, dev-server settings, enabled plugins, and icon packs are all declared in quasar.config.js and documented below.
Environment variables
Base URL of the backend REST API, e.g.
https://api.example.com. This value is used as the baseURL for the Axios api instance in src/boot/axios.js and is therefore prepended to every this.$api request made throughout the application.Port number the Quasar Webpack dev server binds to. Defaults to
8080 when left empty or omitted. Corresponds to devServer.port in quasar.config.js.Deployment platform identifier. Note the intentional spelling — the key in
prod.env is PLATFROM (not PLATFORM). Changing the spelling will break the variable lookup.Firebase project API key. Read by
src/firebase/init.js as process.env.API_KEY.Firebase Auth domain, e.g.
your-project.firebaseapp.com.Firebase project ID, e.g.
your-project-id.Firebase Cloud Storage bucket, e.g.
your-project-id.appspot.com.Firebase Cloud Messaging sender ID (a numeric string).
Firebase app ID, e.g.
1:123456789:web:abc123.Firebase Analytics measurement ID, e.g.
G-XXXXXXXXXX. Required only if you use Firebase Analytics.quasar.config.js options
Boot files
axios boot file (src/boot/axios.js) runs before the Vue app mounts. It creates an Axios instance with baseURL set to API_SERVER and registers it as app.config.globalProperties.$api and app.config.globalProperties.$axios, making both available as this.$api and this.$axios in every Vue Options API component.
Routing mode
hash mode. All routes use the URL hash (e.g. http://localhost:8080/#/store), so no server-side rewrite rules are needed for deep-link navigation. Switch to 'history' only if your hosting environment supports catch-all redirects.
Dev server
8080 and opens the default browser automatically on startup. Override the port by setting PORT in prod.env.
Quasar plugins
| Plugin | Purpose |
|---|---|
Notify | Toast-style push notifications surfaced via this.$q.notify(). Used throughout the application to confirm actions and surface API errors. |
Dialog | Programmatic modal dialogs via this.$q.dialog(). Used in checkout confirmation flows and destructive action prompts. |
Icon packs and fonts
@quasar/extras:
| Extra | Description |
|---|---|
material-icons | Google Material Icons — used for standard UI controls throughout the app. |
line-awesome | Line Awesome icon set — used for decorative and category icons in the store and navigation. |
roboto-font | Roboto web font — the primary typeface for all Quasar components. |
Axios boot configuration
Thesrc/boot/axios.js file configures the HTTP client and exposes it as two global Vue properties:
src/boot/axios.js
this.$axios— the raw Axios constructor. Use it when you need a custom Axios instance with different defaults (e.g. a separate base URL or interceptor chain).this.$api— the shared instance pre-configured with the backend’sbaseURL. This is the standard way to make authenticated API calls. It is also exported as a named export for use in Vuex actions and composables that cannot accessthis.
baseURL value with the actual API_SERVER value from prod.env — the quasar.config.js build step injects process.env.API_SERVER into the bundle.
Firebase configuration
src/firebase/init.js initialises the Firebase compat SDK and exports a messaging instance used by src/NotificationsManager.vue for FCM token registration and foreground message handling:
src/firebase/init.js
process.env at runtime, meaning they must be present in prod.env before the Webpack build. The compat API (firebase/compat/app) is used deliberately — the modular SDK’s initializeApp is not used here to avoid double-initialisation issues in the Quasar boot lifecycle.
The exported messaging object supports:
messaging.getToken({ vapidKey })— requests an FCM registration token to send to the backend.messaging.onMessage(handler)— registers a callback for push messages received while the app tab is in the foreground.
Client-side utility functions
Thesrc/tools/ directory contains shared helper modules used across views and components.
Form validation — src/tools/ValidateForm.js
validateRequire checks that a set of required fields on a data object are non-null and non-empty before a form is submitted or an API call is made:
validateRequire before every this.$api POST/PUT to avoid sending incomplete payloads to the server. The Notify plugin is typically used to surface result.fails messages to the user when result.status is false.
URL auto-linking — src/tools/Functions.js
searchLinksinText scans a plain-text string for HTTP/HTTPS URLs and replaces each one with a clickable <a> tag:
