- Item Name : DreamsPOS - POS & Inventory Management Admin Dashboard Template
- Item Version : v2.2.2
- Author : Dreams Technologies
- Support via email: [email protected]
- Support via themeforest: Take me there
DreamsPOS - POS & Inventory Management Admin Dashboard Template
A point of sale admin template can help organize and track inventory in a business. The template includes fields for items, quantities, prices, and descriptions. It also includes fields for customer information.
System Overview
The Dreams POS Nuxt template is built with Nuxt 4.2.0 and Vue 3, powered by a modern Node.js environment. Dependencies are managed via your preferred package manager.
Core Technologies
Framework
Nuxt 4.2.0
Frontend Framework
Bootstrap 5.3.8
Frontend Library
Vue 3.5
System Requirements
Node.js
LTS version
Package Manager
npm, pnpm, yarn, or bun
Version Control
Git (optional but recommended)
Code Editor
VsCode or any other code editor
Development Tools
Development Server
Nuxt Dev Server
Version Control
Git
Web Browser
Any modern browser
Important Note
For production, run a full build (nuxt build) and deploy the Nitro output. For SSR, use a production-grade Node.js server or a supported adapter (Node, Serverless, Edge). Ensure your Node.js environment and dependencies are installed via your chosen package manager.
Core Features
Product Management
Seamless product browsing with dynamic search, smart filters, and visually rich catalogs.
Inventory Control
Real-time stock tracking, batch management, and low-stock notifications.
Billing & Invoices
Generate professional invoices, manage payments, and track sales history.
Point of Sale
Fast checkout process with barcode scanning, discounts, and multiple payment options.
Supplier & Purchase Management
Manage suppliers, track purchase orders, and maintain procurement records.
Reports & Analytics
Detailed sales, purchase, and inventory reports with real-time business insights.
Technical Features
Nuxt 4.x Architecture
Nitro‑powered build and deployment pipeline
Vue 3
Modern, reactive UI architecture
TypeScript Support
Generated typings and TS project references
File‑based Routing
Automatic routes from pages/ folder
Layouts & Meta
Shared layouts and SEO meta management
Performance
Optimized cache & HTTP handling
Debug Extension
Development debugging tools
Aliases & Assets
Custom path aliasing and static asset handling
Form Validation
Vee‑validate with Yup schema validation
UI/UX Features
Modern Design
Creative and contemporary UI
Responsive Bootstrap 5.3.8
Mobile-first responsive design
SCSS Styling
Advanced CSS preprocessing
Font Awesome & Tabler
Comprehensive icon libraries
Easy Customization
Color and font customization
W3C Validated
Cross-browser compatibility
Project Overview
This NuxtJS project follows the standard Nuxt 3 directory structure, organizing application code, components, pages, layouts, assets, and configuration files for better maintainability and scalability.
Legend
app/app.vue: Root Component
The root component is the entry point of the Nuxt application. It wraps all pages with the layout system.
<template>
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
</template>
app/layouts/default.vue: Default Layout Template
The default layout wraps all pages and provides the main application structure with header, sidebar, and content areas. It uses Vue's composition API for dynamic layout behavior.
<template>
<div class="main-wrapper" :class="posWrapperClass">
<template v-if="shouldShowHeaderAndSidebar">
<CommonLayoutsHeader />
<CommonLayoutsSidebar />
</template>
<template v-if="shouldShowPosHeader">
<CommonPosHeader />
</template>
<slot />
</div>
</template>
<script>
export default {
name: "DefaultLayout",
computed: {
// Hide header and sidebar on login/register pages
shouldShowHeaderAndSidebar() {
const path = this.$route.path
return !(
path === "/" ||
path.includes("/login") ||
path.includes("/register") ||
path.includes("/coming-soon")
)
},
shouldShowPosHeader() {
return this.$route.path.includes("/pos/")
},
posWrapperClass() {
const path = this.$route.path
if (path === "/pos/pos-1") {
return "pos-five"
} else if (path === "/pos/pos-5") {
return "pos-three pos-four"
}
return ""
},
},
}
</script>
app/pages/index.vue: Home Page
Pages in NuxtJS use file-based routing. Each Vue file in the pages directory becomes a route. This page uses a component for its content.
<template>
<ModulesAuthenticationLogin />
</template>
<script lang="ts">
import { defineComponent, onMounted, onBeforeUnmount } from "vue";
export default defineComponent({
name: "LoginPage",
setup() {
onMounted(() => {
document.body.classList.add("account-page");
});
onBeforeUnmount(() => {
document.body.classList.remove("account-page");
});
},
});
</script>
app/pages/dashboard/admin-dashboard.vue: Dashboard Page
Pages can use components directly. Nuxt automatically imports components from the components directory, making them available globally.
<template>
<DashboardAdminDashboard />
</template>
<script>
export default {
data(){
return{
}
}
}
</script>
app/components/: Components Directory
Nuxt automatically imports all components from the app/components/ directory. Components are organized into subdirectories based on their functionality:
- common/ - Common layout components (header, sidebar, etc.)
- Dashboard/ - Dashboard-related components
- Application/ - Application features (Chat, Email, Calendar, etc.)
- Inventory/ - Inventory management components
- Sales/ - Sales-related components
- Settings/ - Settings components
- And many more organized by feature...
app/components/common/layouts-header.vue: Header Component
Components can be used directly in layouts and pages. Here's an example of a header component:
<template>
<!-- Header -->
<div class="header">
<div class="main-header">
<!-- Logo -->
<div class="header-left active">
<NuxtLink to="/dashboard/admin-dashboard" class="logo logo-normal">
<img src="@/assets/img/logo.svg" alt="">
</NuxtLink>
</div>
<!-- /Logo -->
<a id="mobile_btn" class="mobile_btn" href="#" @click="toggleMobileBtn">
<span class="bar-icon">
<span></span>
<span></span>
<span></span>
</span>
</a>
<!-- Header Menu -->
<ul class="nav user-menu">
<!-- Navigation items -->
</ul>
</div>
</div>
</template>
<script>
export default {
methods: {
toggleMobileBtn() {
// Mobile menu toggle logic
}
}
}
</script>
app/components/Dashboard/AdminDashboard.vue: Dashboard Component
Components can contain complex logic and be reused across multiple pages. Components are automatically available by their directory structure:
<template>
<div class="page-wrapper">
<div class="content">
<div class="d-flex align-items-center justify-content-between flex-wrap gap-3 mb-2">
<div class="mb-3">
<h1 class="mb-1">Welcome, Admin</h1>
<p class="fw-medium">
You have <span class="text-primary fw-bold">200+</span> Orders, Today
</p>
</div>
</div>
<div class="row">
<!-- Dashboard widgets and charts -->
</div>
</div>
</div>
</template>
<script>
export default {
name: "AdminDashboard",
// Component logic here
}
</script>
Component Naming Convention:
- Components in
components/common/layouts-header.vueare available as<CommonLayoutsHeader /> - Components in
components/Dashboard/AdminDashboard.vueare available as<DashboardAdminDashboard /> - Nuxt automatically converts directory names and file names to PascalCase component names
- All components are auto-imported, no manual imports needed!
NuxtJS Vue Component System
This project uses Nuxt 3 with Vue 3 composition API. Key features include:
- File-based routing: Pages in
app/pages/automatically become routes - Layout system: Use
<NuxtLayout>and layouts inapp/layouts/for consistent page structure - Auto-imports: Components in
app/components/are automatically imported and available globally - Vue components: Use Vue's template syntax with
v-if,v-for, and computed properties - TypeScript support: Full TypeScript support with
.tsfiles andlang="ts"in script tags - Server-side rendering: Configurable SSR support via
nuxt.config.ts
Follow these steps to set up the DreamsPOS NuxtJS application on your local development environment. This guide covers Node.js setup, package installation, and running the application.
Installation Steps
System Requirements
Ensure you have the required software installed for NuxtJS:
https://nodejs.org/en/download/
Navigate to Project Directory
Open your terminal and navigate to the template directory:
cd template
package.json and nuxt.config.ts files.
Install Dependencies
Install all project dependencies using npm, yarn, pnpm, or bun:
npm install
package.json, including Nuxt, Vue, and all required packages.
Run Development Server
Start the Nuxt development server:
npm run dev
http://localhost:3000
Update Base URL (Production)
For production deployment, update the base URL in nuxt.config.ts:
export default defineNuxtConfig({
app: {
baseURL: '/nuxt/template/', // Update this for your production path
},
})
Build for Production
Build the application for production deployment:
npm run build
The loader can be fully customized to align with your brand, including color, animation style, size, and duration.
Loader Html code:
The script for the custom loader are located in the pos-loader.vue file. You can find this file in the following directory:
Path: app/components/common/pos-loader.vue
Please note that our respond can take up to 2 business days.
- Availability to answer questions, Answering technical questions about item’s features, Assistance with reported bugs and issues, Help with included 3rd party assets.
- Any customization request will be ignored.
- Please make sure to read more about the support policy.
If this documentation does not address your questions, please feel free to contact us via email at Item Support Page
We are in the GMT+5:30 time zone and typically respond to inquiries on weekdays within 12-24 hours. Please note that in rare cases, the response time may extend to 48 hours, especially during holiday seasons.
We strive to offer top-notch support, but it's only available to verified buyers and for template-related issues such as bugs and errors. Custom changes and third-party module setups are not covered.
Don’t forget to Rate DreamsPos!
DreamsPos is developed by Dreams Technologies and is available under both Envato Extended & Regular License options.
Regular License
Usage by either yourself or a single client is permitted for a single end product, provided that end users are not subject to any charges.
Extended License
For use by you or one client in a single end product for which end users may be charged.
What are the main differences between the Regular License and the Extended License?
If you operate as a freelancer or agency, you have the option to acquire the Extended License, which permits you to utilize the item across multiple projects on behalf of your clients.
| Plugin Name | URL |
|---|---|
| Bootstrap | https://getbootstrap.com/docs/ |
| Fontawesome | https://www.npmjs.com/package/@fortawesome/fontawesome-free/ |
| Fullcalendar | https://www.npmjs.com/package/fullcalendar |
| Vue3-apexcharts | https://www.npmjs.com/package/vue3-apexcharts |
| Vue DatePicker | https://www.npmjs.com/package/vue3-datepicker |
| Vue3-carousel | https://www.npmjs.com/package/vue3-carousel |
| Vue3-select2-component | https://www.npmjs.com/package/vue3-select2-component |
| Vue-easy-lightbox | https://www.npmjs.com/package/vue-easy-lightbox |
Do you need a customized application for your business?
If you need a customized application for your business depends on your specific requirements and goals, Please contact us.
Customization can be the key to success, ensuring your project perfectly aligns with your unique goals and requirements.
Don't Miss Out on the Benefits of Customization!
Unlock the potential of your project. It's time to ensure that your project isn't just another cookie-cutter solution but a truly unique and effective one.
Discover how customization can make a difference in your project's success. Let's create a solution that's as unique as your vision!
- We'll tailor the application to meet your specific needs and preferences.
- We will upload your website to the server and ensure it is live.
Thank You
Thank you once again for downloading DreamsPos.
We hope you're enjoying your experience, and we kindly request that you take a moment to share your valuable review and rating with us.