AssetHub दस्तावेज़ीकरण

शुरुआत करें

cPanel, Hostinger या अपने VPS पर AssetHub 10 मिनट से कम में इंस्टॉल करें।

उपयोगकर्ता और भूमिकाएँ

Spatie अनुमतियों के साथ 5 पूर्व-कॉन्फ़िगर की गई भूमिकाएँ, प्रति उपयोगकर्ता फाइन-ट्यून करने योग्य।

उत्पाद विशेषताएँ

संपत्तियाँ, बैच ट्रैकिंग, कार्यप्रवाह, निपटान, रखरखाव, मूल्यह्रास, ऑडिट लॉग और भी बहुत कुछ।

अनुकूलन

असीमित कस्टम फ़ील्ड जोड़ें, ब्रांडिंग, भाषाएँ और थीम बदलें।

Hostinger सेटअप

सबसे सस्ते Single shared hosting टियर पर चरण-दर-चरण डिप्लॉय।

cPanel सेटअप

मानक cPanel shared hosting पर चरण-दर-चरण डिप्लॉय — Terminal की ज़रूरत नहीं।

सुरक्षा और QR

HTTPS, HMAC-हस्ताक्षरित webhooks, ऑडिट लॉग, और कैमरे के ज़रिए QR स्कैनर।

रिपोर्ट और निर्यात

Excel + PDF निर्यात और दिनांक फ़िल्टर के साथ 12 अंतर्निहित रिपोर्ट।

ईमेल अलर्ट

वारंटी, रखरखाव, दस्तावेज़ समाप्ति और अतिदेय चेकआउट अनुस्मारक।

अक्सर पूछे जाने वाले प्रश्न

क्या मैं सबसे सस्ते Hostinger Single प्लान पर AssetHub चला सकता हूँ?

हाँ — AssetHub Hostinger Single (~$2.99/माह) के साथ पूर्णतः संगत है। Single में PHP 8.3, MySQL, native Cron Jobs और मुफ़्त SSL शामिल हैं — AssetHub को जो कुछ चाहिए वह सब। SSH, Composer या command line की ज़रूरत नहीं। चरण-दर-चरण गाइड के लिए Hostinger Setup अनुभाग देखें।

क्या इंस्टॉल करने के लिए तकनीकी कौशल चाहिए?

नहीं। वेब-आधारित installer सब कुछ संभालता है: requirements check, database setup, migrations और admin account बनाना। बस फ़ाइलें अपलोड करें, ब्राउज़र में /install खोलें और wizard का पालन करें।

निर्धारित ईमेल (warranty/maintenance alerts) कैसे काम करते हैं?

AssetHub Laravel के scheduler का उपयोग करता है। आप केवल एक cron job कॉन्फ़िगर करते हैं जो हर मिनट चलता है, और Laravel आंतरिक रूप से प्रत्येक task सही समय पर dispatch करता है (daily 08:00, monthly, आदि)। cPanel के लिए, इसे Advanced → Cron Jobs में सेट करें। Hostinger के लिए, hPanel → Advanced → Cron Jobs उपयोग करें। cPanel सेटअप → चरण 7 या Hostinger सेटअप → चरण 5 देखें। यदि host में cron नहीं है, तो मुफ़्त cron-job.org सेवा के साथ in-app Cron URL उपयोग करें।

कौन-सी depreciation विधियाँ समर्थित हैं?

तीन विधियाँ: Straight Line (समान वार्षिक depreciation), Declining Balance (त्वरित, कर के लिए सामान्य), और Units of Production (उपयोग-आधारित, manufacturing equipment के लिए)। Asset मूल्य हर महीने की 1 तारीख को स्वतः refresh होते हैं।

क्या QR scanner मोबाइल फ़ोन पर काम करता है?

हाँ — यह html5-qrcode के ज़रिए browser camera उपयोग करता है और किसी भी आधुनिक phone/tablet/desktop browser पर काम करता है। एकमात्र आवश्यकता HTTPS है। cPanel AutoSSL और Hostinger Let's Encrypt SSL दोनों box से काम करते हैं।

क्या मैं बिना coding के अपने fields जोड़ सकता हूँ?

हाँ। Admin → Custom Fields से आप असीमित attributes (text, number, date, select, textarea, file, checkbox) जोड़ सकते हैं, उन्हें विशिष्ट categories तक सीमित कर सकते हैं, required चिह्नित कर सकते हैं, और drag-and-drop से क्रम बदल सकते हैं — सब UI से।

AssetHub कितनी भाषाएँ समर्थित करता है?

11 locales तैयार: English, Vietnamese, Spanish, French, German, Chinese, Japanese, Portuguese (BR), Russian, Arabic (पूर्ण RTL समर्थन), और Hindi (हिन्दी)। व्यवस्थापक Administration → Translations से अनुवाद प्रबंधित करते हैं (manage translations अनुमति आवश्यक)।

क्या मैं AssetHub को cPanel shared hosting पर इंस्टॉल कर सकता हूँ?

हाँ — AssetHub PHP 8.2+, MySQL और Cron Jobs के साथ किसी भी मानक cPanel shared hosting प्लान पर काम करता है। Server पर Composer या Node.js की ज़रूरत नहीं — पैकेज pre-built ship होता है। कई cPanel hosts में web Terminal नहीं होता; यह ठीक है। पूर्ण चरण-दर-चरण गाइड के लिए cPanel सेटअप अनुभाग देखें (Terminal के बिना APP_KEY जनरेट करने का तरीका सहित)।

AssetHub को कैसे rebrand करें (login page, page title और colors)?

AssetHub को admin panel से पूरी तरह rebrand किया जा सकता है — बिना code edit या npm run build के। v3.1.0 से login logo, footer और badge Settings → Branding → App Name से जुड़े हैं। v4.0 runtime browser page title और Appearance tab (light/dark app-wide colors) जोड़ता है।

Full rebrand checklist: App Name अपडेट करें (logo, login, page title) → प्रति भाषा auth.login_subtitle संपादित करें → Settings → Appearance में colors कस्टमाइज़ करें।

Quick reference:

ItemExampleHow to change
Top-left logo & wordmarkVimoticFARSettings → Branding → App Name
Login subtitleEnter your credentials to access AssetHubAdministration → Translationsauth.login_subtitle
Footer copyright© 2026 VimoticFARSettings → Branding → App Name
Right panel badgeVIMOTICFARSettings → Branding → App Name
Browser page title (tab)YourAppNameSettings → Branding → App Name (v4.0+)
App colors (buttons, sidebar, badges…)Custom green / blue paletteSettings → Appearance (v4.0+)

1. Logo and wordmark:

  1. Sign in as an administrator.
  2. Go to Settings → Branding.
  3. Update App Name (and optionally upload a logo).
  4. Save.

This name appears on the login page (logo, footer, badge), in the sidebar, and — since v4.0 — in the browser tab title on every page.

2. Browser page title (v4.0):

The text shown in the browser tab follows Settings → Branding → App Name at runtime. Change App Name, save, and refresh — no .env edit or rebuild needed. The title updates on the login screen and after sign-in.

3. Login subtitle: the line below the main heading uses the translation key auth.login_subtitle (not App Name).

  • In the app (recommended): Administration → Translations → select language → group auth → key login_subtitle → replace AssetHub with your app name → Save. Repeat for each language.
  • In code: edit lang/{locale}/auth.php — e.g. 'login_subtitle' => 'Enter your credentials to access YourAppName',

4. Footer and right-panel badge: since v3.1.0, the footer (© {year} …) and the uppercase badge on the right column use the same App Name as the logo. Change it once under Settings → Branding and refresh the login page.

5. App colors — Appearance (v4.0):

The Appearance tab lets you change the color scheme for the entire application — buttons, sidebar highlights, badges, links, and themed text — separately for light and dark mode. Colors are saved to the database.

  • Open: Sidebar → SettingsAppearance (requires manage settings permission).
  • Color groups: Brand & Accent (primary UI), Success / Warning / Danger / Info (status badges), Primary / Secondary / Muted / Link (text).
  • Light & dark: use the Editing: Light / Dark toggle — configure both if your team uses dark mode. Live Preview on the right.
  • Save: click Save appearance to apply app-wide. Reset to defaults restores AssetHub's built-in palette (save afterward to persist).

Branding vs Appearance: Branding = app name, logo, page title. Appearance = colors only. For a complete visual rebrand, update both tabs.

Notes:

  • Changing App Name does not update translation strings — edit auth.login_subtitle (and other auth.* keys) per language.
  • Translation overrides in Administration → Translations are stored in the database and survive app updates.
  • The login page right column (headline, features) uses other auth.* keys — edit them under the same auth group if needed.
  • If colors do not update after saving Appearance, hard-refresh (Ctrl+F5) and confirm you are editing the correct light/dark palette.
  • After upgrading from an older package, upload the full current source/ files (including pre-built public/build/) if branding features are missing.

अवलोकन

AssetHub Laravel 11, Vue 3 और Tailwind CSS पर बना एक संपूर्ण संपत्ति प्रबंधन प्रणाली है। संस्करण 3.0 v2 बैच/लॉट ट्रैकिंग, आवंटन, निपटान और सार्वजनिक QR हैंडओवर पृष्ठों के ऊपर पूर्ण Translation Editor, कस्टम locales, CSV आयात/निर्यात और प्रभावी timezone/मुद्रा स्थानीयकरण जोड़ता है।

QR Code ट्रैकिंग

हर संपत्ति के लिए स्वतः QR codes जनरेट करें। किसी भी ब्राउज़र कैमरे से स्कैन करें।

मूल्यह्रास

3 विधियाँ: सीधी रेखा, घटता शेष, उत्पादन इकाइयाँ।

कस्टम फ़ील्ड

असीमित कस्टम विशेषताएँ जोड़ें — text, date, select, file, checkbox।

वेबहुक

HMAC signing और auto-retry के साथ 15 event types।

ऑडिट लॉग

पूर्ण diff viewer के साथ हर बदलाव लॉग किया जाता है।

रिपोर्ट

charts, Excel और PDF निर्यात के साथ 12 रिपोर्ट।

सर्वर आवश्यकताएँ

  • PHP 8.2 या उससे ऊपर
  • MySQL 5.7+ या MariaDB 10.3+
  • Composer 2.x
  • Node.js 18+ और npm 9+
  • Web server: Apache या Nginx

आवश्यक PHP Extensions

  • OpenSSL, PDO, PDO_MySQL, Mbstring, Tokenizer, XML, Ctype, JSON, GD, Fileinfo

डिस्क स्थान

~ 200 MB न्यूनतम। Asset photos और document attachments के लिए अतिरिक्त जगह रखें।

इंस्टॉलेशन

विकल्प A — Web Installer (अनुशंसित)

  1. प्रोजेक्ट फ़ाइलें अपने web server पर अपलोड करें।
  2. अपने domain document root को public/ पर इंगित करें।
  3. अनुमतियाँ सेट करें: storage/ और bootstrap/cache/ writable होने चाहिए (chmod 775)।
  4. .env.example को .env में कॉपी करें और APP_KEY सेट करें (यदि SSH/Terminal है तो php artisan key:generate चलाएँ, या File Manager विकल्पों के लिए cPanel सेटअप → चरण 5 देखें)।
  5. ब्राउज़र में https://yourdomain.com/install खोलें।
  6. wizard का पालन करें — Requirements → Database → Migrate → Admin Account → Done।

विकल्प B — CLI Installation

# 1. Dependencies इंस्टॉल करें
composer install --no-dev --optimize-autoloader
npm install
npm run build

# 2. Environment कॉन्फ़िगर करें
cp .env.example .env
php artisan key:generate

# 3. DB credentials सेट करने के लिए .env संपादित करें
# DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD

# 4. Database tables बनाएँ और initial data seed करें
php artisan migrate --seed

# 5. uploads के लिए storage symlink बनाएँ
php artisan storage:link

# 6. production के लिए config cache करें
php artisan config:cache
php artisan route:cache
php artisan view:cache

# 7. installed के रूप में चिह्नित करें
echo "Installed" > storage/installed.lock
Web server configuration: Document root public/ directory पर इंगित होना चाहिए। Apache के लिए, शामिल .htaccess URL rewriting संभालता है। Nginx के लिए Laravel deployment guide देखें।

विज़ार्ड Step 2 — Database Configuration

जब wizard Step 2 पर पहुँचता है, तो hosting panel में बनाए गए database के लिए MySQL connection विवरण दर्ज करें। database पहले से मौजूद होना चाहिए (खाली हो सकता है — अगला wizard step tables बनाएगा)।

फ़ील्डडिफ़ॉल्ट / उदाहरणनोट्स
Host127.0.0.199% shared hosts (Hostinger, cPanel, Plesk) पर काम करता है। जब तक hosting custom MySQL hostname न दे (AWS RDS, DigitalOcean Managed Database जैसी managed DB services), default रखें।
Port3306मानक MySQL port। केवल तभी बदलें जब provider non-standard port उपयोग करता हो (दुर्लभ)।
डेटाबेस नामuXXXXXX_assethubhosting panel में दिखाया गया पूरा नाम। अधिकांश shared hosts user ID prefix जोड़ते हैं (उदा. Hostinger: u287094729_assethub)।
उपयोगकर्ता नामuXXXXXX_assethubऊपर database पर अनुमतियों वाला MySQL user। root का उपयोग न करें — shared hosts इसकी अनुमति नहीं देते।
पासवर्ड(आपका DB password)MySQL user बनाते समय सेट या कॉपी किया गया password। अधिकांश hosts creation पर एक बार दिखाते हैं — यदि सहेजा नहीं तो "View / Reset" उपयोग करें।

hosting panel के अनुसार credentials कहाँ मिलें

  • Hostinger: hPanel → Databases → Management → अपना database क्लिक करें। पृष्ठ name, username और "Show password" बटन दिखाता है।
  • cPanel: cPanel → MySQL Databases। database सूची नाम दिखाती है; users नीचे सूचीबद्ध हैं। ज़रूरत हो तो "Change Password" उपयोग करें।
  • Plesk: Plesk → Databases → database name क्लिक करें। detail page credentials दिखाता है और password reset देता है।
  • DirectAdmin: DirectAdmin → MySQL Management → database क्लिक करें। credentials और password reset database detail page पर हैं।
  • बाह्य / managed DB: AWS RDS, DigitalOcean Managed Database, आदि। cloud console से custom hostname, port (अक्सर 3306 लेकिन verify करें), DB name, user और password उपयोग करें। सुनिश्चित करें कि server IP DB firewall में whitelisted है।

सामान्य errors और उनका समाधान

त्रुटि संदेशकारण और समाधान
SQLSTATE[HY000] [1045] Access deniedगलत username या password, या user को इस database तक access नहीं। spelling दोबारा जाँचें (shared hosts पर user prefix सहित)। अनिश्चित होने पर hosting panel में password reset करें।
SQLSTATE[HY000] [1049] Unknown databasedatabase name गलत है, या आपने hosting panel में database अभी नहीं बनाया। पहले बनाएँ, फिर exact name (prefix सहित) दोबारा दर्ज करें।
SQLSTATE[HY000] [2002] Connection refusedMySQL server तक पहुँच नहीं। Host और Port verify करें। shared hosts पर 127.0.0.1 के बजाय localhost या इसके विपरीत आज़माएँ। managed DBs के लिए server IP whitelisted होना चाहिए।
SQLSTATE[42S02] Base table not found: sessionsतब होता है जब tables बनने से पहले .env में SESSION_DRIVER=database या CACHE_STORE=database सेट हो। .env संपादित करें और दोनों को file में बदलें, save करें, फिर wizard reload करें। install के बाद चाहें तो database पर वापस जा सकते हैं।
could not find driverPHP pdo_mysql extension missing या disabled है। इसे अपने hosting panel में enable करें (PHP Configuration → Extensions)। cPanel पर: MultiPHP INI Editor → Extensions या Select PHP Version → Extensions। Hostinger पर: hPanel → Advanced → PHP Configuration → PHP Extensions tab।
Tip: Host और Port fields सबसे सामान्य मानों (127.0.0.1 और 3306) से पहले से भरे हैं — shared hosting पर उन्हें वैसे ही छोड़ें। केवल Database name, Username और Password टाइप करें। connection verify करने और Step 3 पर जाने के लिए Test & Save → क्लिक करें।

Localhost (स्थानीय विकास)

production में deploy करने से पहले परीक्षण या विकास के लिए अपने कंप्यूटर पर AssetHub चलाने की त्वरित गाइड। अपने operating system से मेल खाता environment चुनें।

अनुशंसित: macOS और Windows पर Laravel Herd सबसे तेज़ रास्ता है — Docker नहीं, manual Apache/MySQL configuration नहीं। XAMPP और Laragon अच्छे मुफ़्त विकल्प हैं यदि आप traditional stack पसंद करते हैं।

विकल्प 1 — Laravel Herd (अनुशंसित, macOS और Windows)

Laravel Herd Laravel टीम का official local environment है — मुफ़्त, native, Docker नहीं। PHP 8.2/8.3/8.4, Nginx और (Herd Pro में) MySQL/Redis शामिल।

  1. herd.laravel.com से Laravel Herd डाउनलोड और इंस्टॉल करें।
  2. AssetHub project folder ~/Herd/ (macOS) या %USERPROFILE%\Herd\ (Windows) में रखें। Herd स्वतः .test domain बनाता है — उदा. http://assethub.test
  3. Herd → Sites खोलें और PHP version 8.2 या 8.3 होना सुनिश्चित करें। site पर right-click → Secure से HTTPS enable करें (QR scanner के लिए ज़रूरी)।
  4. MySQL database बनाएँ। Herd Pro के साथ Services → MySQL → Open in TablePlus उपयोग करें। अन्यथा MySQL Community इंस्टॉल करें या SQLite उपयोग करें (DB_CONNECTION=sqlite, touch database/database.sqlite)।
  5. .env.example को .env में कॉपी करें, DB credentials भरें, फिर project root से php artisan key:generate चलाएँ।
  6. ब्राउज़र में http://assethub.test/install खोलें और installer wizard का पालन करें।

विकल्प 2 — XAMPP (Windows, macOS, Linux)

XAMPP Apache, MySQL/MariaDB और PHP को bundle करता है। मुफ़्त और cross-platform। PHP 8.2 या नया वाला version चुनें।

  1. apachefriends.org से XAMPP 8.2+ डाउनलोड करें और इंस्टॉल करें।
  2. AssetHub project को C:\xampp\htdocs\AssetHub\ (Windows) या /Applications/XAMPP/htdocs/AssetHub/ (macOS) में कॉपी करें।
  3. XAMPP Control Panel खोलें और Apache तथा MySQL start करें। ports busy हों तो Apache को 8080 पर switch करने के लिए Config → service.conf उपयोग करें।
  4. http://localhost/phpmyadmin पर जाएँ → New → utf8mb4 collation के साथ assethub नाम का database बनाएँ।
  5. project folder में: .env.example को .env में कॉपी करें, DB_DATABASE=assethub, DB_USERNAME=root सेट करें, DB_PASSWORD खाली छोड़ें (XAMPP default)। php artisan key:generate चलाएँ।
  6. installer wizard चलाने के लिए http://localhost/AssetHub/public/install खोलें।
/public/ के बिना Pretty URLs: C:\xampp\apache\conf\extra\httpd-vhosts.conf में virtual host बनाएँ जो DocumentRoot को project के public/ folder पर इंगित करे, फिर hosts file में 127.0.0.1 assethub.local जोड़ें।

विकल्प 3 — Laragon (Windows)

Laragon Laravel के लिए portable Windows stack है — auto vhosts, pretty URLs, MySQL/MariaDB और bundled HeidiSQL।

  1. laragon.org से Laragon Full डाउनलोड करें और इंस्टॉल करें।
  2. Laragon में: Menu → PHP → VersionPHP 8.2 या 8.3 पर switch करें।
  3. AssetHub project को C:\laragon\www\AssetHub\ में कॉपी करें।
  4. Start All क्लिक करें। Laragon स्वतः vhost बनाता है: http://assethub.test (public/ folder पर इंगित)।
  5. bundled HeidiSQL खोलें → assethub database बनाएँ। default credentials: user root, password खाली।
  6. DB credentials के साथ .env संपादित करें, php artisan key:generate चलाएँ, फिर http://assethub.test/install खोलें।

विकल्प 4 — Built-in PHP server (web server की ज़रूरत नहीं)

सबसे सरल विकल्प: Laravel artisan serve के साथ development PHP server शुरू करता है। Apache या Nginx की ज़रूरत नहीं। त्वरित परीक्षण के लिए सर्वोत्तम।

# Dependencies इंस्टॉल करें और configure करें
cd /path/to/AssetHub
composer install
cp .env.example .env
php artisan key:generate

# migrations चलाएँ और initial data seed करें
php artisan migrate --seed

# development server शुरू करें
php artisan serve
# फिर खोलें: http://127.0.0.1:8000/install

सामान्य localhost gotchas

http:// पर QR scanner कैमरा नहीं खुलता

ब्राउज़र camera APIs के लिए HTTPS चाहिए, एक अपवाद: http://localhost और http://127.0.0.1 secure contexts माने जाते हैं। यदि आप LAN IP (उदा. http://192.168.1.10) से AssetHub खोलते हैं, कैमरा मना कर देगा। dev के लिए localhost उपयोग करें, या Herd / mkcert से HTTPS enable करें।

storage पर Permission denied (macOS / Linux)

यदि app log या cache लिखते समय write errors दिखें, अनुमतियाँ ठीक करें: chmod -R 775 storage bootstrap/cache। Windows पर आमतौर पर ज़रूरत नहीं।

Port पहले से उपयोग में

यदि port 8000 किसी अन्य app द्वारा लिया गया है, दूसरा port उपयोग करें:

php artisan serve --port=8001

स्थानीय रूप से ईमेल परीक्षण

अधिकांश localhost setups पर real SMTP उपलब्ध नहीं। दो सुरक्षित विकल्प: (1) .env में MAIL_MAILER=log सेट करें — ईमेल भेजने के बजाय storage/logs/laravel.log में dump होते हैं; या (2) Mailtrap / MailHog से outgoing mail fake inbox में capture करें।

MAIL_MAILER=log
# सभी ईमेल storage/logs/laravel.log में लिखे जाते हैं

Frontend assets (Vite / Tailwind)

AssetHub का Vue/Tailwind frontend पैकेज में pre-built है। यदि आप Vue components या Tailwind config संपादित करते हैं तो Node.js 18+ चाहिए:

npm install
npm run dev    # development के दौरान hot-reload
npm run build  # production build (deploy से पहले चलाएँ)

Hostinger Single (Shared Hosting) पर Deploy

यह VPS या तकनीकी अनुभव के बिना उपयोगकर्ताओं के लिए अनुशंसित मार्ग है। AssetHub सबसे सस्ते Hostinger Single Web Hosting प्लान (~$2.99/माह) के साथ पूर्णतः संगत है। SSH, Composer, command line की ज़रूरत नहीं — Single में native cron jobs, PHP 8.3 और मुफ़्त SSL शामिल हैं।

परीक्षित: Hostinger Single, Premium, Business plans (PHP 8.2+, MySQL 5.7+, सभी tiers पर native Cron Jobs शामिल)।

Step 1 — अपनी hosting तैयार करें

  1. Hostinger hPanel में login करें।
  2. अपने domain के लिए Hosting → Manage पर जाएँ।
  3. Advanced → PHP Configuration से PHP version 8.2 या 8.3 पर सेट करें।
  4. ये PHP extensions enabled हों (आमतौर पर default):
    • OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo

Step 2 — MySQL database बनाएँ

  1. hPanel में Databases → MySQL Databases पर जाएँ।
  2. Create New Database क्लिक करें।
  3. ये 3 मान नोट करें:
    • डेटाबेस नाम — उदा. u123_AssetHub
    • उपयोगकर्ता नाम — उदा. u123_admin
    • पासवर्ड — auto-generated, सुरक्षित रखें

Step 3 — फ़ाइलें अपलोड करें

  1. hPanel में Files → File Manager पर जाएँ।
  2. public_html/ पर जाएँ (यह आपके domain का root है)।
  3. उस folder में कोई default index.html या default.php हटाएँ।
  4. Upload Files क्लिक करें और पैकेज की पूरी source.zip अपलोड करें।
    या चाहें तो /source/ folder की सामग्री सीधे FTP से अपलोड करें।
  5. यदि ZIP अपलोड किया, right-click → Extract। extraction के बाद सभी फ़ाइलें public_html/ के root पर होनी चाहिए।
  6. verify करें public_html/ में शामिल हैं: app/, public/, vendor/, .htaccess, index.php (public/ में), .env, आदि।
महत्वपूर्ण: सुनिश्चित करें public_html/ root पर .htaccess फ़ाइल मौजूद है। इसमें URL rewriting rules हैं। यदि File Manager hidden files छुपाता है, Settings → Show hidden files क्लिक करें।

Step 4 — installer चलाएँ

  1. ब्राउज़र खोलें और https://yourdomain.com/install पर जाएँ।
  2. आपको AssetHub Installer दिखेगा।
  3. Step 1: Requirements — सभी checks pass होने चाहिए (हरा)। कोई fail हो तो missing PHP extension enable करने के लिए Hostinger support से संपर्क करें।
  4. Step 2: Database — ऊपर Step 2 के credentials दर्ज करें:
    • Host: localhost
    • Port: 3306
    • Database: u123_AssetHub
    • Username: u123_admin
    • Password: (Hostinger द्वारा generated)
  5. Step 3: Migrate — "Run Migrations & Seed" क्लिक करें। ~10 सेकंड लगते हैं। refresh न करें।
  6. Step 4: Admin — administrator account बनाएँ। मज़बूत password उपयोग करें।
  7. हो गया! — Cron URL दिखेगा (सहेजें!) और login बटन।

Step 5 — Hostinger Cron से स्वचालित ईमेल अलर्ट सेटअप

AssetHub background tasks के लिए Laravel scheduler उपयोग करता है: warranty alerts, maintenance reminders, document expiry, depreciation refresh और overdue checkouts। hPanel में एक cron job सेटअप करें और Laravel तय करता है कब कौन-सा task चलाना है।

  1. hPanel में Advanced → Cron Jobs पर जाएँ।
  2. Create Cron job क्लिक करें।
  3. type चुनें: Custom ("PHP" नहीं — argument pass करना है)।
  4. command में दर्ज करें (uXXXXXX को अपने Hostinger account username से बदलें):
    /usr/bin/php /home/uXXXXXX/public_html/artisan schedule:run
    Tip: File Manager खोलें, artisan फ़ाइल (project root) ढूँढें, right-click → Properties से full path कॉपी करें।
  5. schedule Every minute पर सेट करें — सभी पाँच fields (Minute, Hour, Day, Month, Day of week) * पर।
  6. Save क्लिक करें।

बस — AssetHub अब overdue checkout reminders, maintenance alerts, document expiry alerts, warranty alerts भेजता है और asset depreciation मूल्य स्वतः refresh करता है। Laravel आंतरिक रूप से प्रत्येक job को सही frequency पर schedule करता है (दैनिक 08:00, मासिक, आदि)।

Document root public_html/public/ पर सेट? कोई समस्या नहीं — Laravel code अभी भी public_html/ root पर है, इसलिए cron path /home/uXXXX/public_html/artisan रहता है (/public/ न जोड़ें)।
cron के बिना hosts के लिए fallback: यदि Hostinger पर नहीं हैं या provider में cron jobs नहीं, AssetHub webhook trigger URL भी देता है।
  1. admin के रूप में login → Settings → System tab → अपना Cron URL कॉपी करें।
  2. cron-job.org पर मुफ़्त sign up करें।
  3. cronjob बनाएँ, URL paste करें, Every 15 minutes सेट करें, save करें।

Step 6 — ईमेल (SMTP) कॉन्फ़िगर करें

Hostinger हर प्लान के साथ email accounts देता है। AssetHub notifications के लिए उपयोग करने हेतु:

  1. hPanel में Emails → Email Accounts पर जाएँ और एक बनाएँ (उदा. noreply@yourdomain.com)।
  2. File Manager से public_html/ में .env फ़ाइल संपादित करें:
    MAIL_MAILER=smtp
    MAIL_HOST=smtp.hostinger.com
    MAIL_PORT=587
    MAIL_USERNAME=noreply@yourdomain.com
    MAIL_PASSWORD=your_email_password
    MAIL_ENCRYPTION=tls
    MAIL_FROM_ADDRESS=noreply@yourdomain.com
    MAIL_FROM_NAME="Your Company Name"
  3. फ़ाइल save करें।
  4. AssetHub में login → Settings → Email tab → Send Test Email। यदि प्राप्त हो, हो गया।
Single पर SMTP limits: Hostinger Single ~100 outgoing emails प्रति घंटा की अनुमति देता है। बड़े deployments के लिए SendGrid, Mailgun या Postmark जैसा dedicated provider उपयोग करें (मुफ़्त tiers उपलब्ध)।

Hostinger Single पर सामान्य समस्याएँ

अपलोड के बाद "500 Internal Server Error"

  • verify करें public_html/ root पर .htaccess मौजूद है और rewrite rules शामिल हैं।
  • verify करें hPanel में PHP version 8.2 या 8.3 सेट है।
  • वास्तविक error के लिए File Manager से storage/logs/laravel.log देखें।

uploads पर "Permission denied"

Hostinger आमतौर पर सही अनुमतियाँ सेट करता है, लेकिन यदि नहीं:

  • File Manager में storage/ पर right-click → Permissions → recursively 755 सेट करें।
  • वही bootstrap/cache/ के लिए।

QR code scanner कैमरा नहीं खोलता

ब्राउज़र camera APIs के लिए HTTPS चाहिए। Hostinger Let's Encrypt से मुफ़्त SSL देता है — hPanel में SSL → Manage के तहत enable करें।

निर्धारित ईमेल नहीं भेजे जा रहे

  • hPanel → Cron Jobs → अपने cron entry पर Last run column देखें। खाली हो तो cron fire नहीं हो रहा — artisan path verify करें।
  • command manually test करें: hPanel में Terminal (यदि उपलब्ध) खोलें और cron command चलाएँ। error हो तो संदेश समस्या बताएगा (गलत PHP version, गलत path, आदि)।
  • verify करें SMTP सही कॉन्फ़िगर है (Settings → Email → Send Test)।
  • scheduler errors के लिए storage/logs/laravel.log देखें।

धीमा प्रदर्शन

Hostinger Single में shared CPU/RAM है। यदि टीम 20 से अधिक users की है, विचार करें:

  • Premium (~$3.99/माह) पर upgrade — तेज़ servers, अधिक resources, multiple databases।
  • या Business (~$5.99/माह) — dedicated resources, daily backups, staging environment।

cPanel पर Deploy (Shared Hosting)

यह गाइड मानक cPanel shared hosting (Namecheap, Bluehost, GoDaddy और अधिकांश budget hosts) को cover करती है। AssetHub vendor/ और pre-built frontend assets के साथ ship होता है — Composer, npm या web Terminal की ज़रूरत नहीं। यदि आपके cPanel में Terminal नहीं है, तो SSH Access या नीचे File Manager workarounds उपयोग करें।

परीक्षित: cPanel 110+ PHP 8.2/8.3, MySQL 5.7+/MariaDB 10.3+, Apache और native Cron Jobs के साथ। Home directory आमतौर पर /home/CPANELUSER/ है — cPanel में General Information के तहत sidebar देखें।

चरण 1 — PHP version और extensions सेट करें

  1. cPanel में login करें।
  2. MultiPHP Manager (या Select PHP Version) खोलें और अपना domain PHP 8.2 या 8.3 पर सेट करें।
  3. MultiPHP INI Editor या PHP Extensions खोलें और confirm करें ये enabled हैं:
    • OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo
  4. यदि कोई extension missing हो, तो extensions list में enable करें या host support से संपर्क करें।

चरण 2 — SSL (HTTPS) enable करें

  1. SSL/TLS Status (या Let's Encrypt SSL / AutoSSL) पर जाएँ।
  2. अपने domain के लिए AutoSSL चलाएँ या free certificate इंस्टॉल करें।
  3. in-browser QR scanner को camera access के लिए HTTPS आवश्यक है।
Tip: SSL enable करने के बाद कुछ मिनट प्रतीक्षा करें, फिर padlock icon confirm करने के लिए https://yourdomain.com जाएँ।

चरण 3 — MySQL database और user बनाएँ

  1. Manage My Databases (Databases के अंतर्गत) खोलें।
  2. Create New Database में, एक नाम दर्ज करें (उदा. assethub) और Create क्लिक करें। cPanel आपके account prefix स्वतः जोड़ता है — पूरा नाम cpaneluser_assethub जैसा दिखेगा।
  3. MySQL Users में, strong password के साथ user बनाएँ। prefix सहित पूरा username कॉपी करें।
  4. Add User To Database में, user और database चुनें, Add क्लिक करें, फिर ALL PRIVILEGES दें। यह चरण छूटना आसान है — इसके बिना Access denied (1045) errors आएंगी।
  5. ये तीन values cPanel में जैसे दिखें ठीक वैसे नोट करें:
    • डेटाबेस नाम — उदा. u123_AssetHub
    • उपयोगकर्ता नाम — उदा. u123_admin
    • पासवर्ड — auto-generated, सुरक्षित रखें

चरण 4 — Files upload करें

  1. File Manager खोलें और public_html/ (अपने domain का document root) पर जाएँ।
  2. Settings → Show Hidden Files enable करें ताकि .htaccess और .env दिख सकें।
  3. यदि मौजूद हो तो public_html/ में कोई default index.html हटाएँ।
  4. पैकेज source.zip upload करें और Extract करें, या /source/ folder की सामग्री FTP से upload करें।
  5. extraction के बाद, public_html/ में app/, public/, vendor/, root .htaccess और artisan एक ही level पर होने चाहिए।
महत्वपूर्ण: Root .htaccess सभी requests को public/ folder में redirect करता है — अधिकांश hosts पर document root manually बदलने की ज़रूरत नहीं

चरण 5 — installer चलाने से पहले .env तैयार करें

/install visit करने से पहले यह चरण पूरा करें। Laravel को .env में valid APP_KEY और सही database settings चाहिए।

  1. File Manager में, .env.example को .env में कॉपी करें (artisan के साथ एक folder में)।
  2. .env संपादित करें और कम से कम ये सेट करें:
    APP_NAME=AssetHub
    APP_ENV=production
    APP_DEBUG=false
    APP_URL=https://yourdomain.com
    
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=cpaneluser_assethub
    DB_USERNAME=cpaneluser_admin
    DB_PASSWORD="your_password"
    
    SESSION_DRIVER=file
    CACHE_STORE=file
  3. DB_CONNECTION=mysql सेट करें — default .env.example SQLite उपयोग करता है; shared hosting के लिए MySQL चाहिए।
  4. पहले migration से पहले SESSION_DRIVER=file और CACHE_STORE=file सेट करें ("sessions table not found" errors से बचाव)।
  5. यदि special characters (#, $, !, आदि) हों तो DB_PASSWORD को double quotes में लपेटें।

APP_KEY जनरेट करें (Terminal की ज़रूरत नहीं)

कई cPanel plans में web Terminal नहीं होता। इनमें से एक method उपयोग करें:

  • SSH Access (cPanel → Security → SSH Access): PuTTY या PowerShell से connect करें, फिर cd ~/public_html && php artisan key:generate चलाएँ।
  • File Manager helperpublic/genkey.php temporarily बनाएँ, browser में visit करें, output को APP_KEY= में कॉपी करें, फिर तुरंत file हटाएँ।
    <?php
    echo 'base64:' . base64_encode(random_bytes(32));
  • अपने PC पर — यदि PHP locally installed है, php -r "echo 'base64:'.base64_encode(random_bytes(32));" चलाएँ और result .env में paste करें।
Security: Key copy करते ही genkey.php हटाएँ। production server पर helper scripts कभी न छोड़ें।
  • यदि installer write errors report करे तो storage/ और bootstrap/cache/ की permissions 755 (recursive) पर सेट करें।

चरण 6 — web installer चलाएँ

  1. browser में https://yourdomain.com/install खोलें।
  2. चरण 1: Requirements — सभी checks pass होने चाहिए (हरा)। ऊपर चरण 1 में missing PHP extensions ठीक करें।
  3. चरण 2: Database — चरण 3 के exact prefixed names दर्ज करें:
    • Host: 127.0.0.1 or localhost
    • Port: 3306
    • Database: cpaneluser_assethub
    • Username: cpaneluser_admin
    • Password: (your MySQL password)
  4. चरण 3: Migrate — "Run Migrations & Seed" क्लिक करें। ~10 seconds लगते हैं। page refresh न करें।
  5. clean production install के लिए Include demo data uncheck करें।
  6. चरण 4: Admin — अपना administrator account बनाएँ।
  7. हो गया! — final screen पर दिखाई गई Cron URL सहेजें।

चरण 7 — email alerts के लिए Cron Jobs सेटअप करें

AssetHub को हर मिनट एक cron job चाहिए ताकि Laravel warranty alerts, maintenance reminders और अन्य scheduled emails भेज सके।

  1. cPanel में Advanced → Cron Jobs पर जाएँ।
  2. Add New Cron Job में, schedule Every minute (* * * * *) पर सेट करें।
  3. command दर्ज करें (CPANELUSER को General Information से अपने cPanel username से बदलें):
    /usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run
    Tip: PHP path /usr/local/bin/php या /usr/bin/php हो सकता है — अनिश्चित हों तो host से पूछें। artisan path वह है जहाँ आपने project upload किया (आमतौर पर /home/CPANELUSER/public_html/artisan)।
  4. save करने के लिए Add New Cron Job क्लिक करें।
Document root public_html/public/ पर सेट? Cron अभी भी /home/CPANELUSER/public_html/artisan पर इंगित करता है — /public/ न जोड़ें।
cron उपलब्ध नहीं? इसके बजाय in-app Cron URL उपयोग करें:
  1. admin के रूप में login → Settings → System → Cron URL कॉपी करें।
  2. cron-job.org पर register करें (मुफ़्त)।
  3. वह URL हर 15 मिनट पर hit करने वाली job बनाएँ।

चरण 8 — email (SMTP) कॉन्फ़िगर करें

outgoing notifications के लिए cPanel email account बनाएँ:

  1. Email Accounts पर जाएँ → उदा. noreply@yourdomain.com बनाएँ।
  2. File Manager में .env संपादित करें:
    MAIL_MAILER=smtp
    MAIL_HOST=mail.yourdomain.com
    MAIL_PORT=587
    MAIL_USERNAME=noreply@yourdomain.com
    MAIL_PASSWORD=your_email_password
    MAIL_ENCRYPTION=tls
    MAIL_FROM_ADDRESS=noreply@yourdomain.com
    MAIL_FROM_NAME="Your Company Name"
  3. Save करें, फिर AssetHub में: Settings → Email → Send Test Email
Shared hosting SMTP limits: कई cPanel hosts outgoing mail (~100–500/hour) cap करते हैं। बड़ी teams के लिए SendGrid, Mailgun या Postmark उपयोग करें।

cPanel पर सामान्य समस्याएँ

"Access denied for user" (SQLSTATE 1045)

  • database name और username cPanel से बिल्कुल सही कॉपी करें — account prefix सहित।
  • Confirm करें कि ALL PRIVILEGES के साथ Add User To Database पूरा किया।
  • cPanel में MySQL password reset करें और .env update करें — special characters हों तो DB_PASSWORD के चारों ओर quotes उपयोग करें।

Database step pass होने के बाद Migration fail

  • wizard form के credentials test करता है, लेकिन Migrate .env से पढ़ता है। सुनिश्चित करें दोनों match करते हैं।
  • यदि मौजूद हो तो bootstrap/cache/config.php हटाएँ, फिर retry करें।
  • सुनिश्चित करें DB_CONNECTION=mysql .env में सेट है (sqlite नहीं)।

migration के दौरान "Invalid default value" (1067)

AssetHub v2.1.0+ में ठीक किया गया (checkouts table dateTime columns उपयोग करता है)। यदि पुरानी copy है, migration file update करें या CodeCanyon से latest package डाउनलोड करें।

upload के बाद "500 Internal Server Error"

  • verify करें root .htaccess मौजूद है और PHP 8.2+ है।
  • वास्तविक error के लिए storage/logs/laravel.log देखें।
  • Confirm करें APP_KEY .env में सेट है — empty key 500 errors का कारण बनती है।

cPanel में Terminal नहीं

कई shared plans पर यह सामान्य है। SSH Access (यदि enabled हो), चरण 5 में temporary genkey.php method, या अपने local PC पर key generate करें।

QR scanner camera नहीं खुलता

SSL/TLS Status → AutoSSL से SSL enable करें और site को https:// से access करें।

कॉन्फ़िगरेशन

.env फ़ाइल

कुंजीविवरणउदाहरण
APP_NAMEtitle bar में दिखाया गया एप्लिकेशन नामAssetHub
APP_URLआपकी installation का सार्वजनिक URLhttps://assets.example.com
APP_DEBUGproduction में false सेट करेंfalse
DB_*Database कनेक्शन विवरणmysql, 127.0.0.1, 3306, ...
MAIL_MAILERMail driversmtp, log, mailgun
MAIL_HOSTSMTP server होस्टनामsmtp.gmail.com
MAIL_PORTSMTP port नंबर587
MAIL_USERNAMESMTP उपयोगकर्ता नामyour@email.com
MAIL_PASSWORDSMTP password या app token**********
MAIL_FROM_ADDRESSडिफ़ॉल्ट From पताnoreply@example.com

इन-ऐप सेटिंग्स

अधिकांश non-sensitive विकल्प Admin → Settings से कॉन्फ़िगर करने योग्य:

  • सामान्य: company name/email/phone, asset tag prefix
  • ईमेल: SMTP verify करने के लिए test email भेजें
  • सूचनाएँ: warranty alert thresholds, maintenance reminder window
  • स्थानीयकरण: timezone (searchable list incl. Europe/Skopje), date format, currency code (incl. MKD — Macedonian Denar), symbol, and symbol position — save के बाद app-wide लागू
  • सामान्य → Public Asset Page: QR visibility (public / login / disabled) और URL बदलने के बाद सभी QR codes regenerate करें
  • Localization tab पूर्ण Translation Editor के लिए Administration → Translations से लिंक करता है (केवल admin)
  • Branding: app name और logo — login logo, footer, badge और browser page title अपडेट करता है (v4.0+)। Login subtitle: Administration → Translations में auth.login_subtitle संपादित करें
  • Appearance (v4.0+): light/dark mode के लिए brand, status और text colors कस्टमाइज़ करें — FAQ में rebrand guide देखें

बहु-भाषा समर्थन

AssetHub 11 भाषाओं के साथ तैयार आता है, जिसमें RTL Arabic और Hindi शामिल हैं। उपयोगकर्ता ऊपर-दाएँ header में flag dropdown से भाषा बदलते हैं।

शिप की गई भाषाएँ

कोडभाषादिशा
enEnglish (default)LTR
viTiếng ViệtLTR
esEspañolLTR
frFrançaisLTR
deDeutschLTR
zh简体中文LTR
ja日本語LTR
pt-BRPortuguês (Brasil)LTR
ruРусскийLTR
arالعربيةRTL
hiहिन्दीLTR

भाषा कैसे बदलें

  1. dropdown खोलने के लिए ऊपर-दाएँ header में flag icon क्लिक करें।
  2. सूची से अपनी भाषा चुनें।
  3. पृष्ठ reload होता है; सभी UI labels, dates और currency formats बदल जाते हैं।
  4. आपकी पसंद user account और cookie (1 वर्ष) दोनों में सहेजी जाती है।
ऐप की .html फ़ाइलें सीधे न खोलें। AssetHub Laravel + Vue server-side app है — language switching /locale/{code} पर POST करता है, जो केवल PHP server चलने पर काम करता है। हमेशा अपने वास्तविक domain (production) या http://localhost:8000 (dev with php artisan serve) से access करें। इसके विपरीत, इस तरह की documentation फ़ाइलें पूर्णतः standalone हैं और सीधे खोली जा सकती हैं।

कस्टम भाषा जोड़ना (admin)

Administration → Translations पर जाएँ (manage translations अनुमति वाले admin users):

  • "Add Locale" क्लिक करें — code दें (उदा. Macedonian के लिए mk), display name, native name, flag SVG filename, direction (LTR/RTL), और base locale जिससे अनुवाद copy करें।
  • नया locale language switcher और Settings → Localization default-language list में दिखता है।
  • DB-stored translations lang/{code}/ में file translations को स्वतः override करती हैं।

Translation Editor

Editor हर translation key को file के अनुसार समूहबद्ध करता है (उदा. assets, nav, settings)। Keys file baseline और कोई DB override दिखाती हैं।

  • locale, translation group, या search text से filter करें।
  • inline edit के लिए value क्लिक करें; changes तुरंत database में save होते हैं।
  • file baseline पर वापस जाने के लिए key reset करें।
  • Built-in locales (en, vi, es, …) edit हो सकते हैं; custom locales पूर्णतः DB-driven हैं।
  • केवल manage translations अनुमति वाले users इस page तक पहुँच सकते हैं।

CSV import / export

  • Export — locale की सभी keys CSV (group,key,value) के रूप में download करें।
  • Import — same columns वाला CSV upload करें; existing DB overrides update, new keys insert होती हैं।

प्रति-उपयोगकर्ता default locale

हर user के पास locale column है। Laravel के HasLocalePreference contract के कारण ईमेल notifications स्वतः recipient की पसंदीदा भाषा में भेजे जाते हैं।

Site default language Settings → Localization → Default Language के तहत सेट है। Individual users header language switcher से override करते हैं।

विशेषता सूची

संपत्ति प्रबंधन

  • स्वतः-जनरेट asset tags
  • प्रति संपत्ति कई images
  • QR code जनरेशन
  • स्थिति और condition tracking
  • बल्क import/export
  • संपत्ति क्लोन
  • बैच / लॉट quantity tracking (v2)

कार्यप्रवाह

  • आवंटन / वापसी / Transfer
  • अनुमोदन-आधारित requests
  • Check-in / Check-out बुकिंग
  • Conflict पहचान

रखरखाव

  • निवारक/सुधारात्मक अनुसूची
  • कैलेंडर दृश्य
  • अगला स्वतः-अनुसूचित
  • लागत ट्रैकिंग
  • ईमेल अनुस्मारक

दस्तावेज़

  • Invoices, manuals संलग्न करें
  • इनलाइन preview
  • समाप्ति अलर्ट
  • कई document types

मूल्यह्रास

  • 3 गणना विधियाँ
  • मूल्य स्वतः-अपडेट
  • अनुसूची chart
  • वार्षिक summary

रिपोर्ट

  • 12 report प्रकार
  • Excel + PDF निर्यात
  • Charts और dashboards
  • तिथि filters

परिचालन (v2)

  • live reconciliation के साथ batch / lot assets
  • कर्मचारियों, विभागों, warehouse को allocations
  • separation-of-duty approval के साथ disposals
  • /a/{tag} पर public QR handover page

स्थानीयकरण और अनुवाद (v3)

  • 11 अंतर्निहित UI भाषाएँ + custom locales
  • Translation Editor — search, group filter, inline edit के साथ
  • bulk translation updates के लिए CSV import/export
  • Timezone & currency settings app-wide लागू

ब्रांडिंग और दिखावट (v4)

  • ब्राउज़र टैब शीर्षक सेटिंग → ब्रांडिंग → ऐप नाम से अपडेट होता है
  • सेटिंग → दिखावट में ऐप रंग अनुकूलित करें (लाइट और डार्क मोड)

उपयोगकर्ता और भूमिकाएँ

AssetHub 5 पूर्व-कॉन्फ़िगर roles के साथ आता है:

भूमिकाक्षमताएँ
Adminपूर्ण system access — users, departments, settings, audit log, webhooks, translations
IT Managerassets (single + batch/lot), categories, maintenance, requests प्रबंधित करें; transfers approve करें; reports और depreciation देखें
लेखाकारassets और depreciation प्रबंधित करें, inventory audits चलाएँ, transfers और disposals approve करें, पूर्ण reports access (financial focus)
Supervisordepartment requests approve करें, checkouts प्रबंधित करें, inventory audits में भाग लें, reports देखें
कर्मचारीassigned assets देखें, requests बनाएँ, अपने checkouts प्रबंधित करें

अनुमतियाँ Spatie roles के रूप में संग्रहीत हैं — administrators database के ज़रिए per-permission fine-tune कर सकते हैं।

संपत्ति प्रबंधन

संपत्तियाँ बनाना

  1. Assets → New Asset पर जाएँ।
  2. name, category, brand, model, serial number भरें।
  3. purchase date और price जोड़ें (depreciation के लिए आवश्यक)।
  4. images अपलोड करें (multiple files, प्रति फ़ाइल अधिकतम 5 MB)।
  5. Save — asset tag और QR code स्वतः जनरेट होते हैं।

Asset Tag प्रारूप

Default: {PREFIX}-{YEAR}-{NNNN}, उदा. AS-2026-0001Settings → General → Asset Tag Prefix से कॉन्फ़िगर करने योग्य।

बल्क इंपोर्ट

  1. Assets page पर Import क्लिक करें।
  2. Excel template डाउनलोड करें।
  3. अपना data भरें — आवश्यक columns: name, category_name
  4. फ़ाइल अपलोड करें।

बैच / लॉट संपत्तियाँ (v2)

मात्रा में समान items (chairs, keyboards, uniforms) के लिए duplicate records बनाने के बजाय New Asset form पर Tracking type → Batch / Lot चुनें।

  1. quantity और unit (piece, set, box) दर्ज करें। save पर stock warehouse pool में रखा जाता है।
  2. asset खोलें → Allocations tab → employee या department को units Allocate करें।
  3. Return, Adjust (damaged/lost/repair), या disposition actions उपयोग करें — live summary को total quantity से reconcile होना चाहिए।
  4. batch assets केवल unit price समर्थित करते हैं; depreciation वैकल्पिक है और तेज़ setup के लिए default off।
अपग्रेड नोट: मौजूदा v1 single-item assets अपरिवर्तित रहते हैं। v2 update के बाद php artisan migrate चलाएँ — कोई data loss नहीं।

QR कोड्स

हर asset को creation पर स्वतः QR code मिलता है। scanning asset का public या authenticated page खोलता है (नीचे देखें)। in-app scanning asset detail screen पर जाती है।

Labels प्रिंट करना

  • Single label: किसी भी asset row पर printer icon क्लिक करें।
  • PDF format: A4, प्रति row 2 labels, asset tag, name, brand, serial शामिल।

स्कैनिंग

Assets page पर Scan QR क्लिक करें। camera permission दें। scanner html5-qrcode उपयोग करता है और किसी भी आधुनिक ब्राउज़र पर काम करता है। नोट: camera access के लिए HTTPS या localhost चाहिए।

Public QR हैंडवर Page (v2)

हर asset का printable public URL /a/{asset_tag} पर भी है — login के बिना physical handover के लिए उपयोगी।

  • Settings → General → Public Asset Page में कॉन्फ़िगर करें: Public, Login required, या Disabled।
  • पृष्ठ photo, key fields और (batches के लिए) quantity breakdown दिखाता है। users इसे handover sheet के रूप में print कर सकते हैं।
  • APP_URL बदलने के बाद उसी settings panel में Regenerate all QR codes क्लिक करें।

कार्यप्रवाह

संपत्ति आवंटन

  1. asset detail page खोलें।
  2. Assign क्लिक करें (asset available हो तो दिखेगा)।
  3. user चुनें, वैकल्पिक return date, notes।
  4. Submit — transaction बनता है और email notification भेजा जाता है।

संपत्ति अनुरोध

employees जरूरत के assets के लिए requests submit कर सकते हैं। requests के 4 statuses: pending → approved → fulfilled, या rejected। approval emails स्वतः भेजे जाते हैं।

Check-in / Check-out

shared assets (cameras, projectors, vehicles) के लिए। bookings में date ranges; system overlapping checkouts रोकता है। calendar view सभी bookings एक नज़र में दिखाता है।

निपटान — Formal Write-off (v2)

घिसे या क्षतिग्रस्त items documented batches में separation of duty (proposer ≠ approver) के साथ write-off होते हैं। manage disposals और approve disposals अनुमतियाँ चाहिए।

  1. Sidebar → DisposalsNew Disposal। title और period (Q1–Q4, yearly, या ad-hoc) सेट करें।
  2. draft खोलें → Add items — eligible damaged batch units या Poor condition में single assets।
  3. Submit for approval क्लिक करें — batch lock हो जाता है।
  4. दूसरा approver Approve & execute क्लिक करता है — assets/units disposed चिह्नित होते हैं।
  5. compliance records के लिए disposal minutes (PDF) print करें।
अपरिवर्तनीय: approved disposals पूर्ववत नहीं हो सकते। signed PDF अपने audit trail के साथ रखें।

मूल्यह्रास

AssetHub तीन विधियों में से एक से संपत्ति मूल्यह्रास की गणना करता है:

विधिसूत्रउपयोग मामला
सीधी रेखा(Cost - Salvage) / Useful Lifeसबसे सामान्य; समान वार्षिक मूल्यह्रास
घटता शेष2 / Useful Life × Book Valueत्वरित; कर उद्देश्य
उत्पादन इकाइयाँउपयोग पर आधारितविनिर्माण उपकरण

defaults संपत्ति की category से inherit होते हैं। schedule entries मासिक जनरेट होती हैं। asset का current_value हर महीने की 1 तारीख को auto-update होता है।

कस्टम फ़ील्ड

Admin → Custom Fields से assets पर असीमित custom attributes जोड़ सकते हैं:

  • प्रकार: text, number, date, select (dropdown), textarea, file, checkbox
  • Scope: सभी categories या विशिष्ट category पर लागू
  • Reorder: grip handle से drag-and-drop
  • required fields asset save पर validate होते हैं

रिपोर्ट

Reports menu से सुलभ बारह अंतर्निहित reports:

  1. Asset Summary — status, condition, category, department के अनुसार totals
  2. Depreciation — प्रति category value loss, top depreciated assets
  3. Transactions — समय के साथ assignment, return, transfer activity
  4. Maintenance Cost — month, category, type के अनुसार spending
  5. Warranty Expiry — 30/60/180 दिनों में ध्यान देने योग्य assets
  6. Department Assets — department के अनुसार asset distribution और budget utilization
  7. Assets by Source — procurement, project, donation, transfer sources में distribution
  8. Inventory Audit Summary — periodic audit cycles में discrepancies
  9. Employee Assignments (v2) — किसके पास क्या है, batch allocations सहित
  10. Department / Location (v2) — department या location के अनुसार assets और quantities
  11. Inventory Reconciliation (v2) — स्टॉक vs allocated vs damaged/lost/disposed
  12. Damaged Assets (v2) — repair या write-off के लिए flagged items

सभी reports page header में बटनों से Excel और PDF export समर्थित करती हैं। v2 reports quantity-aware हैं (asset count + total units)।

वेबहुक

AssetHub महत्वपूर्ण events पर external services को सूचित कर सकता है।

उपलब्ध Events

  • asset.created, asset.updated, asset.deleted
  • asset.assigned, asset.returned, asset.transferred
  • request.created, request.approved, request.rejected, request.fulfilled
  • maintenance.scheduled, maintenance.started, maintenance.completed
  • checkout.created, checkout.returned

Payload प्रारूप

{
  "event": "asset.assigned",
  "timestamp": "2026-05-05T08:00:00+00:00",
  "data": {
    "asset_id": 1,
    "asset_tag": "AS-2026-0001",
    "asset_name": "HP EliteDesk 800",
    "to_user_id": 4,
    "transaction_id": 12
  }
}

Signature सत्यापन

यदि secret कॉन्फ़िगर है, requests में header X-AssetHub-Signature शामिल होता है जिसमें payload body का HMAC-SHA256 होता है। अपनी ओर verify करें:

$expected = hash_hmac('sha256', $rawBody, $secret);
if (hash_equals($expected, $request->header('X-AssetHub-Signature'))) {
  // मान्य
}

Retry नीति

failed deliveries 200 ms delay के साथ 3 बार retry होती हैं। 10 लगातार failures के बाद webhook auto-disabled हो जाता है।

अनुसूचित कार्य

AssetHub background jobs के लिए Laravel scheduler उपयोग करता है। आपको केवल एक cron entry चाहिए — Laravel आंतरिक रूप से प्रत्येक job सही समय पर dispatch करता है।

शेयर्ड hosting (cPanel / Hostinger Cron Jobs UI)

cPanel सेटअप → चरण 7 या Hostinger सेटअप → चरण 5 देखें। संक्षेप में: Advanced → Cron Jobs, command:

/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:run

Schedule: हर मिनट (सभी पाँच fields में *)।

cPanel cron कमांड

CPANELUSER को अपने cPanel username से बदलें:

/usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run

VPS / समर्पित server (crontab)

web user (अक्सर www-data) के रूप में crontab -e चलाएँ और जोड़ें:

* * * * * cd /path/to/AssetHub && php artisan schedule:run >> /dev/null 2>&1

फॉलबैक: external URL pinger

यदि host में बिल्कुल cron नहीं, in-app Cron URL (Settings → System tab) cron-job.org के साथ उपयोग करें (मुफ़्त, हर 15 मिनट)।

स्वतः चलने वाले jobs

समयकमांडउद्देश्य
प्रतिदिन 08:00send-overdue-checkout-alertsअतिदेय checkouts के लिए ईमेल अनुस्मारक
प्रतिदिन 08:30send-maintenance-remindersआगामी maintenance reminders
प्रतिदिन 09:00send-document-expiry-alerts30/14/7/1 दिनों में expire होने वाले documents
प्रतिदिन 09:30send-warranty-alertsWarranty + insurance समाप्ति अलर्ट
प्रतिदिन 10:00assethub:send-depreciation-end-alertsassets के useful life समाप्त होने पर alerts
प्रतिदिन 10:30send-inventory-audit-remindersactive inventory audits के reminders
मासिक 1 को 02:00update-asset-valuesमूल्यह्रास से asset current_value refresh

Upgrade Guides

Step-by-step guides for updating an existing installation. Open the guide that matches your current version.

समस्या निवारण

storage पर "Permission denied"

chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

QR code scanner कैमरा नहीं खोलता

ब्राउज़र camera APIs के लिए HTTPS चाहिए। SSL certificate इंस्टॉल करें या परीक्षण के लिए localhost उपयोग करें।

ईमेल नहीं पहुँच रहे

errors के लिए storage/logs/laravel.log देखें। SMTP credentials verify करने के लिए Settings → Email → Send Test Email उपयोग करें। सुनिश्चित करें SMTP server sending IP की अनुमति देता है।

cPanel पर Database "Access denied" (1045)

गलत username/password, user-to-database assignment missing, या password में special characters .env parsing तोड़ रहे हैं। cPanel सेटअप → सामान्य समस्याएँ देखें।

Migration त्रुटि 1067 (Invalid default value)

shared hosting पर MySQL strict mode multiple NOT NULL timestamp columns को reject करता है। v2.1.0+ में ठीक किया गया। अपना पैकेज update करें या checkouts migration में checkout_date / expected_return_date को dateTime में बदलें।

APP_KEY Missing / install से पहले 500 error

Laravel को app load होने से पहले .env में APP_KEY चाहिए। यदि cPanel में Terminal नहीं है, तो SSH, genkey.php, या local generation methods के लिए cPanel सेटअप → चरण 5 देखें।

installation reset करें

storage/installed.lock हटाएँ और फिर /install खोलें। migrations दोबारा चलाने पर मौजूदा data मिट जाएगा।

प्रदर्शन — धीमी asset list

config, routes, views cache करने के लिए php artisan optimize चलाएँ। सुनिश्चित करें MySQL में assets.asset_tag, assets.serial_number, assets.status पर indexes हैं (migrations द्वारा स्वतः बनते हैं)।

Upgrading from v3.0.x to v3.1

Download the v3.1 package from CodeCanyon, replace application files (keep your .env and storage/ uploads). No new migrations are required. The new visible_locales setting is optional — if unset, all languages remain visible in the navbar picker.

v3.0 → v3.1 — Full upgrade guide

v2.x से v3.0 में upgrade

CodeCanyon से v3 ZIP download करें, application files बदलें (.env और storage/ uploads रखें), फिर php artisan migrate चलाएँ। custom locales और translation overrides के लिए नई tables स्वतः जुड़ती हैं। Existing settings और assets preserved रहते हैं।

v2.x → v3.0 — Full upgrade guide

v1.x से v2.0 में upgrade

CodeCanyon से v2 ZIP डाउनलोड करें, application files बदलें (.env और storage/ uploads रखें), फिर php artisan migrate चलाएँ। upgrade non-breaking है — मौजूदा single assets काम करते रहते हैं; नई batch/disposal tables स्वतः जुड़ती हैं।

v1.x → v2.0 — Full upgrade guide

परिवर्तन लॉग

v3.1.0 — Visible Language Picker (2026-06)

  • Settings → Localization: checklist to choose which languages appear in the navbar language dropdown (built-in + custom locales)
  • Default language is always visible; picker auto-hides when only one language is selected
  • Backend validates locale switches; users on a hidden locale fall back to the default language
  • No database migration required — upgrade is file-replace only
  • Login branding: footer और badge Settings → Branding → App Name से जुड़े हैं (कोड edit नहीं)

v3.0.0 — स्थानीयकरण & Translation Editor (2026-06)

  • Administration → Translations पर Translation Editor UI (Add Locale, inline edit, group से search/filter)
  • Custom locales DB में stored — code, display name, native name, flag SVG, direction, base locale
  • bulk translation updates के लिए CSV import/export
  • Timezone और currency settings अब app-wide लागू (config/localization.php incl. Europe/Skopje, MKD)
  • Settings → Localization: searchable timezone/currency dropdowns, custom value support के साथ
  • Hindi (hi) 11वें built-in locale के रूप में जोड़ा; date_format Vue pages पर respected
  • Permission-gated manage translations; database overrides lang/ file baseline के साथ merge

v2.0.0 — परिचालन रिलीज़ (2026-06)

  • बैच / लॉट assets — मात्रा ट्रैकिंग, आवंटन, वापसी, live मेल-मिलाप
  • 4 परिचालन reports: Employee Assignments, Department/Location, Inventory Reconciliation, Damaged Assets
  • निपटान module — write-off batches, separation-of-duty approval, printable minutes PDF
  • /a/{tag} पर public QR asset page configurable visibility के साथ
  • legacy reports asset count + total units दिखाने के लिए अपडेट
  • QR codes public handover page से लिंक; transaction log batch moves पर quantity record करता है
  • अपडेट demo data, user guide (documentation/ में अलग शिप), और i18n strings

v1.0.0 — प्रारंभिक रिलीज़ (2026-05)

  • QR code auto-generation के साथ Asset CRUD
  • granular permissions के साथ 5 user roles (Admin, IT Manager, Accountant, Supervisor, Employee)
  • Asset Source tracking (केंद्रीकृत खरीद, विकेंद्रीकृत खरीद, निवेश परियोजना, दान, आंतरिक हस्तांतरण)
  • ईमेल notifications के साथ assignment, return workflows
  • permission gating के साथ Transfer Approval Workflow (pending → approved/rejected)
  • Asset request अनुमोदन प्रवाह
  • calendar view के साथ Check-in/check-out
  • auto-renewal के साथ Maintenance scheduling
  • expiry alerts के साथ Document attachments
  • 3 calculation methods + end-of-life alerts के साथ Depreciation
  • Inventory Audit module — discrepancy tracking के साथ periodic stocktake
  • 7 input types और drag-drop sort के साथ Custom fields
  • charts, Excel और PDF export के साथ 8 reports (Assets by Source, Inventory Audit Summary सहित)
  • diff viewer के साथ Spatie Activitylog द्वारा Audit log
  • HMAC signing और auto-retry के साथ Webhooks
  • बहु-भाषा UI: 10 locales (en, vi, es, fr, de, zh, ja, pt-BR, ru, ar RTL के साथ)
  • company, email, notifications, localization, translations के लिए Settings UI
  • वेब-आधारित installation wizard
  • emerald-teal brand palette के साथ Dark mode

श्रेय

उपयोग की गई open-source libraries