DreamsPOS  Agent Banner

Introduction

DreamsPOS - POS & Inventory Management Admin Dashboard Template - Admin Templates Site Templates Live Preview 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, such as name and address. This information can help the business keep track of its inventory and meet customers’ needs.

Requirements

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
Nuxt
Framework

Nuxt 4.2.0

Frontend Framework

Bootstrap 5.3.8

Frontend Library

Vue 3.5.x

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.

Features

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

File Structure

Project Overview

The project follows a modular structure with clear separation of concerns.

template/
│
├── app/
│   │
│   ├── assets/                 
│   │   ├── css/
│   │   ├── fonts/
│   │   ├── img/
│   │   ├── json/
│   │   └── scss/
│   │
│   │
│   ├── component/                 
│   ├── layout/
│   ├── pages/
│   ├── plugins/
│   ├── public/
│   └── util/
├── gitignore/                 
├── nuxt.config.ts/
├── package.json/
├── package-lock.json/
├── tsconfig.json/
└── README.md/
	

NuxtJS Template Structure

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.vue are available as <CommonLayoutsHeader />
  • Components in components/Dashboard/AdminDashboard.vue are 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 in app/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 .ts files and lang="ts" in script tags
  • Server-side rendering: Configurable SSR support via nuxt.config.ts

Installation Guide

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
1
System Requirements

Ensure you have the required software installed for NuxtJS:

Node.js 18+ (LTS recommended)
npm
Nuxt 3.x
2
Navigate to Project Directory

Open your terminal and navigate to the template directory:

cd template
Note: Make sure you're in the directory containing package.json and nuxt.config.ts files.
3
Install Dependencies

Install all project dependencies using npm, yarn, pnpm, or bun:

Using npm:
npm install
Note: This will install all dependencies listed in package.json, including Nuxt, Vue, and all required packages.
4
Run Development Server

Start the Nuxt development server:

Using npm:
npm run dev
Access the application at:
http://localhost:3000
5
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
  },
})
Note: This is only required for production deployment when your app is not served from the root path.
6
Build for Production

Build the application for production deployment:

npm run build

How Can I Use Theme Layouts?

Please do the below change in the html element at public/index.html file. ex: <html data-theme="default">

image
data-layout="default"
image
data-layout="mini"
image
data-layout="horizontal"
image
data-layout="detached"
image
data-layout="twocolumn"
image
data-layout="without-header"
pic

Custom Loader Implementation

The loader can be fully customized to align with your brand, including color, animation style, size, and duration.

Loader Html code:
image

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
pic

License

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?

Note

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.

Support

Need Support?

If this documentation does not address your questions, please feel free to contact us via email at support@dreamstechnologies.com

Reach the team at GMT+5:30. Typical reply within 12–24 hours on weekdays — rarely up to 48 hrs during holidays. Support is available to verified buyers for template-related issues.

Contact Support

Important Note : 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.

Custom Work

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 your project isn't another cookie-cutter solution but 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.

thanks

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.

Review Link