bharath/webapp/src/views/pages/broker-dashboard.ejs
Vivek ed320e82c1 feat: add 35+ features - i18n, voice input, gamification, driver tools, marketplace
- Multi-language support (English, Hindi, Tamil, Telugu) with icon-based UI
- Voice input (Web Speech API) for low-literacy users
- Driver tools: Ledger, Trip Planner, Return Load, Safety, Maintenance, FASTag
- Marketplace: WhatsApp share, Rate Intelligence, Classifieds, Fleet
- Engagement: Gamification (XP/Levels), Challenges, Leaderboard, Referrals, Feed
- Business: Invoice (GST+UPI), Reports+CSV, Notifications, Documents, Bank
- Games: Rate Guesser, Route Quiz
- SEO: Sitemap, public load share pages with OG tags
- India utilities: vehicle validation, UPI links, toll/fuel calculator
- 29 routes, 54 templates, 4 languages, 3 migration files
2026-05-31 09:19:16 +00:00

67 lines
3.4 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<% var title = t('dashboard.brokerTitle'); %>
<%- include('../partials/header') %>
<div class="tricolor-strip"><div class="tricolor-saffron"></div><div class="tricolor-white"></div><div class="tricolor-green"></div></div>
<section class="section" style="padding-top:var(--space-lg)">
<div class="container">
<h2 style="font-size:1.3rem;margin-bottom:var(--space-md)">🤝 <%= t('dashboard.hello') %>, <%= user.name %>!</h2>
<div class="stats-grid">
<div class="stat-card"><div class="stat-value"><%= stats.totalLoads %></div><div class="stat-label"><%= t('dashboard.loadsPosted') %></div></div>
<div class="stat-card"><div class="stat-value"><%= stats.bookedLoads %></div><div class="stat-label"><%= t('dashboard.deals') %></div></div>
<div class="stat-card"><div class="stat-value"><%= stats.activeTrips %></div><div class="stat-label"><%= t('dashboard.activeTrips') %></div></div>
</div>
<% if (recentLoads.length > 0) { %>
<h3 style="font-size:1rem;margin-top:var(--space-lg);margin-bottom:var(--space-sm)">📋 <%= t('dashboard.recentLoads') %></h3>
<% recentLoads.forEach(load => { %>
<a href="/loadboard/<%= load.id %>" class="card card-accent" style="display:block;text-decoration:none;color:inherit;margin-bottom:var(--space-sm)">
<div style="display:flex;justify-content:space-between;align-items:center">
<div>
<strong><%= load.origin_city %> → <%= load.destination_city %></strong>
<div style="font-size:0.8rem;color:var(--gray-700)"><%= load.weight_tons %> <%= t('common.tons') %> | 🏷️ <%= load.bid_count %> <%= t('common.bids') %></div>
</div>
<span class="badge badge-<%= load.status === 'open' ? 'open' : 'booked' %>"><%= load.status %></span>
</div>
</a>
<% }) %>
<% } %>
<div style="margin-top:var(--space-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)">
<a href="/loadboard/post" class="icon-action-btn">
<span class="icon-action-emoji"></span>
<span class="icon-action-label"><%= t('actions.postLoad') %></span>
</a>
<a href="/loadboard" class="icon-action-btn">
<span class="icon-action-emoji">📋</span>
<span class="icon-action-label"><%= t('actions.viewLoads') %></span>
</a>
<a href="/invoice" class="icon-action-btn">
<span class="icon-action-emoji">🧾</span>
<span class="icon-action-label">Invoice</span>
</a>
<a href="/rates" class="icon-action-btn">
<span class="icon-action-emoji">📊</span>
<span class="icon-action-label">Rates</span>
</a>
<a href="/fleet" class="icon-action-btn">
<span class="icon-action-emoji">🚛</span>
<span class="icon-action-label">Fleet</span>
</a>
<a href="/classifieds" class="icon-action-btn">
<span class="icon-action-emoji">🛒</span>
<span class="icon-action-label">Buy/Sell</span>
</a>
<a href="/referral" class="icon-action-btn">
<span class="icon-action-emoji">🤝</span>
<span class="icon-action-label">Referral</span>
</a>
<a href="/notifications" class="icon-action-btn">
<span class="icon-action-emoji">🔔</span>
<span class="icon-action-label">Alerts</span>
</a>
</div>
</div>
</section>
<%- include('../partials/footer') %>