Smarthr

Introduction

The PWA template is a plain HTML, CSS and JavaScript build of the Smarthr mobile-first UI - no framework or build step is required to run it. It adds the three things that make a website installable as a Progressive Web App: a manifest.json web app manifest, a service worker for offline caching, and an install-prompt script for the "Add to Home Screen" flow.

This same PWA UI is also the visual source of truth reused by the Tailwind build, so both templates render identically.

Requirement

Technologies
HTML5
SCSS / Bootstrap
JavaScript
System Requirements
  • Text Editor: Visual Studio Code (or) Sublime Text
  • Browser: Modern browsers (Chrome, Firefox, Safari, Edge)
  • HTTP server: a local/live server, or any host over HTTP(S) - manifest and service worker registration are both blocked on file://
  • Node.js + Dart Sass (optional) - only needed if you want to recompile the SCSS source

Features

  • Installable Progressive Web App (manifest + service worker)
  • "Add to Home Screen" install prompt (install.js)
  • Offline page caching with auto-reload on reconnect (offline.js)
  • Bootstrap-based, fully responsive, mobile-first layout
  • No build step - open or serve the static files directly
  • SCSS source included for full style customization
  • Employee modules: Directory, Attendance, Leaves, Tasks, Projects, Payroll
  • Clients, Estimates, Invoices & Expense Tracking
  • Admin Suite: Dashboard, Employee List, Attendance Analytics, Performance, Assets
  • AI HR Assistant, Voice & Video Call screens
  • RTL variant (template-rtl)
  • Compatible Browsers: Chrome, Firefox, Safari, Edge

File Structure

Project Overview

The PWA template is a static site: every page and asset lives directly under template/ (or the RTL template-rtl/ variant), with no node_modules or build output.

smarthr/
└── mobile/
    └── pwa/
        ├── template/
        │   ├── assets/
        │   │   ├── css/            → compiled style.css (+ .min / .map)
        │   │   ├── scss/           → main.scss, _variables.scss, components/, layout/, pages/, utils/
        │   │   ├── fonts/
        │   │   ├── images/
        │   │   │   └── icons/      → icon-128x128.png ... icon-512x512.png
        │   │   ├── js/             → script.js, install.js, offline.js, ...
        │   │   └── plugins/
        │   ├── index.html, appointments.html, chat.html, ... (40+ pages)
        │   ├── manifest.json
        │   ├── service-worker.js
        │   └── pwa-sw.js
        │
        └── template-rtl/
            └── (same structure, RTL variant)
	

Manifest & Icons

How it Works

The manifest is not linked in <head> - it is attached dynamically by assets/js/script.js, and only over http:/https:, since browsers ignore the manifest and block service workers on file://.

if (!document.querySelector('link[rel="manifest"]')) {
	var manifestLink = document.createElement("link");
	manifestLink.rel = "manifest";
	manifestLink.href = "pwa-manifest.json";
	document.head.appendChild(manifestLink);
}

manifest.json defines the app name, start URL, standalone display mode, theme/background colors and the icon set (128px up to 512px) used when the app is installed to a device's home screen:

{
  "name": "Smarthr-PWA",
  "short_name": "Smarthr-PWA",
  "start_url": "index.html",
  "display": "standalone",
  "background_color": "#3E4EB8",
  "theme_color": "#2F3BA2",
  "icons": [
    { "src": "assets/images/icons/icon-192x192.png", "sizes": "192x192", "type": "image/png" },
    { "src": "assets/images/icons/icon-512x512.png", "sizes": "512x512", "type": "image/png" }
  ]
}

Service Worker

Two Cache Strategies

Two service worker files ship with the template - service-worker.js and pwa-sw.js. script.js picks the right one at runtime based on the current page's markup, so the app shell and standalone pages can cache independently.

if ("serviceWorker" in navigator) {
	window.addEventListener("load", function () {
		var swFile = document.querySelector(".doc-wrapper, .pwa-install-bar") ? "pwa-sw.js" : "service-worker.js";
		navigator.serviceWorker.register(swFile);
	});
}

Each worker pre-caches its own list of pages, styles and images under a versioned CACHE_NAME (e.g. static-cache-v3). To cache an additional page or asset, add its path to the FILES_TO_CACHE array and bump the cache name so returning visitors pick up the new list. assets/js/offline.js complements this by reloading the page automatically once the connection comes back online, and assets/js/install.js listens for the browser's beforeinstallprompt event to drive the "Add to Home Screen" button.

Installation

Prerequisites
Node.js (optional)

Only required if you plan to edit and recompile the SCSS source. To just run or customize the pre-built CSS/HTML/JS, skip this step.

Installation Steps
1
Unzip Template Files

After downloading, extract the Smarthr package. Inside, you will find the pwa/template folder, which contains all necessary files.

2
Copy Files to Server

Open the pwa/template folder, then copy all files and paste them into your localhost directory (e.g., htdocs for XAMPP, www for WAMP) or directly into your web server's root folder. Serving over HTTP(S) - rather than opening index.html from disk - is required for the manifest and service worker to register.

3
Run in Browser

Once the files are in place, open localhost/smarthr/pwa/template/index.html (or your domain's equivalent path) in any modern browser. On mobile, or via Chrome DevTools' install icon on desktop, you'll be able to install it to the home screen.

Fonts

The default font is Plus Jakarta Sans, imported and mapped to Sass variables in assets/scss/_variables.scss:

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

$font-family-primary: 'Plus Jakarta Sans', 'poppinsregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

After editing the SCSS, recompile it to assets/css/style.css with the Dart Sass CLI:

sass --watch main.scss:../css/style.css in scss folder

Color System

Every color used across the template is a CSS custom property, defined once at the top of assets/scss/utils/_variables.scss (compiled straight through into :root):

:root {
	--primary: #3a57c4;
	--primary-hover: #2f48a8;
	--primary-soft: #eef1fb;
	--accent: #6c4fd6;
	--success: #28a745;
	--warning: #ffc107;
	--danger: #dc3545;
	--info: #009efb;
}
Changing a Color

Update the value in _variables.scss and recompile Sass - because every component (buttons, badges, cards, tabs) references these custom properties instead of hard-coded hex values, one change re-tints the whole app.

RTL Support

A dedicated Right-to-Left build ships as a sibling folder, pwa/template-rtl/, mirroring every page and asset in template/ with layout, spacing and text-direction flipped for Arabic/Hebrew-style locales.

RTL Demo

Serve pwa/template-rtl/index.html the same way as the LTR template to preview the RTL layout.

Icons

Font Awesome and Google Material Icons are loaded through assets/plugins/fontawesome/ and the Google Fonts @import in _variables.scss, and used directly in markup:

<i class="fas fa-calendar-check"></i>
<i class="fas fa-heart-pulse"></i>
<i class="material-icons">home</i>

License

Smarthr 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 Smarthr.
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