Transform chaos into clarity. Track tasks, capture leads, and never miss a deadline—all in one beautiful dashboard.
- ✨ What is Daily Work DashBoard?
- 🎬 Screenshots & Demo
- 🔥 Features
- 🛠️ Tech Stack
- ⚡ Quick Start
- 📦 Installation
- ⚙️ Configuration
- 💡 Usage Examples
- 📂 Project Structure
- 🔔 Push Notifications
- 🚀 Deployment
- 🤝 Contributing
- 📄 License
- 👨💻 Author
Daily Work DashBoard is not just another task manager—it's your intelligent work companion designed specifically for agencies and consultants running 60-day client acquisition plans.
Running a client acquisition campaign means juggling:
- 📋 Daily tasks that can't be missed
- 🎯 Leads that need constant follow-up
- 💰 Revenue tracking to stay profitable
- ⏰ Reminders that actually work (even when you're offline!)
A single, beautiful dashboard that:
- ✅ Tracks everything in real-time
- 🔔 Sends push notifications even when the app is closed
- 📊 Visualizes your progress with stunning charts
- 📱 Works offline as a Progressive Web App
- 🤖 Automates daily reminders via Vercel Cron
Built for speed. Designed for results. Powered by modern web tech.
Coming Soon: Add your screenshot here
Coming Soon: Add your mobile screenshot here
Coming Soon: Add notification screenshot here
🎥 Live Demo: View Demo (Deploy and add your link here)
|
|
- 🌙 Dark Mode - Easy on the eyes
- ⚡ Lightning Fast - Optimized with Next.js 15
- 📱 Responsive Design - Perfect on any screen size
- ♿ Accessible - ARIA-compliant components
- 🎯 Intuitive UI - Built with Radix UI primitives
- ⚡ Next.js 15 - Server components, streaming, and edge runtime
- 🎨 Tailwind CSS 4 - Utility-first styling with zero runtime
- 🔔 Web Push API - Native browser notifications (no Firebase needed!)
- 📊 Recharts - Beautiful, responsive charts out of the box
- 🚀 Vercel - Zero-config deployment with automatic HTTPS
Get up and running in 60 seconds:
# Clone the repository
git clone https://github.com/virajverse/Daily-Work-DashBoard.git
# Navigate to project
cd Daily-Work-DashBoard
# Install dependencies
npm install
# Generate VAPID keys for push notifications
node scripts/generate-vapid-keys-proper.js
# Copy the keys to .env.local (see Configuration section)
# Start development server
npm run dev🎉 That's it! Open http://localhost:3000 and start tracking!
- Node.js 18.17+ or 20.3+ or 21+
- npm or pnpm or yarn
- A modern browser (Chrome, Firefox, Edge, Safari 16.4+)
# 1. Clone the repository
git clone https://github.com/virajverse/Daily-Work-DashBoard.git
cd Daily-Work-DashBoard
# 2. Install dependencies
npm install
# or
pnpm install
# or
yarn install
# 3. Generate VAPID keys for push notifications
node scripts/generate-vapid-keys-proper.js
# 4. Create environment file
cp .env.example .env.local
# Then edit .env.local with your keys
# 5. Run development server
npm run dev
# 6. Build for production
npm run build
# 7. Start production server
npm startCreate a .env.local file in the root directory:
# Authentication
DASHBOARD_PASSWORD=your-secure-password
# VAPID Keys for Push Notifications (generate with script)
NEXT_PUBLIC_VAPID_PUBLIC_KEY=your-public-key-here
VAPID_PRIVATE_KEY=your-private-key-here
VAPID_EMAIL=mailto:your-email@taliyotech.com
# App Configuration
NEXT_PUBLIC_APP_URL=http://localhost:3000
# Cron Job Security (for automated reminders)
CRON_SECRET=your-random-secret-key-hereVAPID keys are required for push notifications:
node scripts/generate-vapid-keys-proper.jsCopy the output directly into your .env.local file.
Edit vercel.json to change when daily reminders are sent:
{
"crons": [
{
"path": "/api/cron/daily-reminder",
"schedule": "30 3 * * *" // 9:00 AM IST (3:30 AM UTC)
}
]
}Cron Schedule Examples:
0 9 * * *- 9:00 AM UTC daily30 3 * * *- 9:00 AM IST daily0 9 * * 1-5- 9:00 AM UTC weekdays only0 */6 * * *- Every 6 hours
Your data is stored in the local-data/ folder as JSON files:
- Location:
<project-root>/local-data/ - Files:
tasks.json,leads.json - Privacy: Folder is git-ignored, your data stays private
- Backup: Simply copy the folder to backup your data
# Create backup
cp -r local-data local-data-backup-$(date +%Y%m%d)
# Restore from backup
cp -r local-data-backup-20250108/* local-data/You can directly access and edit the JSON files:
# View tasks
cat local-data/tasks.json
# View leads
cat local-data/leads.json
# Edit manually (use any text editor)
code local-data/tasks.json// Tasks are managed through the UI
// Click "Add Task" → Fill details → Save
// Tasks automatically sync to localStorage// In the Dashboard:
// 1. Click "Enable Push Notifications"
// 2. Allow browser permission
// 3. Test with "Test Notification" button
// 4. Set your preferred reminder time// Export tasks to CSV
const exportTasks = () => {
// Click "Export" button in Task Tracker
// Downloads tasks.csv automatically
}
// Export to PDF
const exportPDF = () => {
// Click "Export PDF" in any section
// Generates formatted PDF report
}# Manually trigger daily reminder (for testing)
curl -X GET https://your-app.vercel.app/api/cron/daily-reminder \
-H "Authorization: Bearer your-cron-secret"Daily-Work-DashBoard/
├── 📁 local-data/ # 🔒 Your data storage (git-ignored)
│ ├── tasks.json # Tasks data
│ ├── leads.json # Leads data
│ └── README.md # Data backup guide
├── 📁 app/
│ ├── 📁 api/
│ │ ├── 📁 cron/
│ │ │ └── 📁 daily-reminder/
│ │ │ └── route.ts # Automated reminder endpoint
│ │ ├── 📁 push/
│ │ │ ├── 📁 send/
│ │ │ │ └── route.ts # Send push notifications
│ │ │ └── 📁 subscribe/
│ │ │ └── route.ts # Subscribe to push
│ │ └── 📁 vapid-key/
│ │ └── route.ts # Get public VAPID key
│ ├── 📁 server-actions/
│ │ └── auth.ts # Authentication logic
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Dashboard page
│ └── login/
│ └── page.tsx # Login page
├── 📁 components/
│ ├── 📁 dashboard/
│ │ ├── lead-table.tsx # Lead tracker component
│ │ ├── notifications-panel.tsx # Push notification UI
│ │ ├── revenue-expense-chart.tsx # Financial charts
│ │ ├── summary-cards.tsx # Metrics overview
│ │ └── task-table.tsx # Task management
│ ├── 📁 pwa/
│ │ └── pwa-init.tsx # PWA initialization
│ └── 📁 ui/
│ └── ... # Reusable UI components
├── 📁 hooks/
│ └── use-toast.ts # Toast notifications hook
├── 📁 lib/
│ ├── utils.ts # Utility functions
│ └── web-push.ts # Web Push helpers
├── 📁 public/
│ ├── 📁 icons/
│ │ ├── icon-192.jpg # PWA icon
│ │ └── icon-512.jpg # PWA icon
│ ├── manifest.webmanifest # PWA manifest
│ └── sw.js # Service Worker
├── 📁 scripts/
│ └── generate-vapid-keys-proper.js # VAPID key generator
├── .env.local # Environment variables (create this)
├── vercel.json # Vercel config + Cron
├── package.json # Dependencies
├── tailwind.config.ts # Tailwind configuration
├── tsconfig.json # TypeScript config
├── QUICK_START.md # Quick setup guide
├── PUSH_NOTIFICATIONS_SETUP.md # Detailed push setup
└── README.md # You are here! 👋
graph LR
A[User Enables Push] --> B[Browser Subscribes]
B --> C[Subscription Stored]
C --> D[Vercel Cron Triggers]
D --> E[API Sends Push]
E --> F[User Receives Notification]
F --> G[Click Opens App]
- ✅ Works Offline - Notifications delivered even when app is closed
- ✅ Cross-Platform - Chrome, Firefox, Edge, Safari 16.4+
- ✅ Secure - VAPID authentication
- ✅ Automated - Vercel Cron schedules daily reminders
- ✅ Customizable - Set your own reminder time
📖 Detailed Guide: PUSH_NOTIFICATIONS_SETUP.md
🚀 Quick Start: QUICK_START.md
Manual Deployment:
# 1. Install Vercel CLI
npm i -g vercel
# 2. Login to Vercel
vercel login
# 3. Deploy
vercel
# 4. Add environment variables in Vercel Dashboard
# Settings > Environment Variables > Add all from .env.local
# 5. Deploy to production
vercel --prodAdd these in Vercel Dashboard → Settings → Environment Variables:
DASHBOARD_PASSWORDNEXT_PUBLIC_VAPID_PUBLIC_KEYVAPID_PRIVATE_KEYVAPID_EMAILNEXT_PUBLIC_APP_URL(your production URL)CRON_SECRET
✅ Automatic! Vercel reads vercel.json and sets up cron jobs automatically.
Check logs: Vercel Dashboard → Deployments → Functions → Logs
The app automatically uses Vercel KV (Redis) for production storage:
- Create a Vercel KV database in your project
- Vercel automatically adds KV environment variables
- Your data is stored securely in the cloud
📖 Detailed Guide: VERCEL_DEPLOYMENT.md
We love contributions! Here's how you can help:
- Check existing issues
- Create a new issue with:
- Clear title
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Open a feature request
- Describe the feature and use case
- We'll discuss and prioritize!
# 1. Fork the repository
# 2. Create a feature branch
git checkout -b feature/amazing-feature
# 3. Make your changes
# 4. Commit with clear messages
git commit -m "Add amazing feature"
# 5. Push to your fork
git push origin feature/amazing-feature
# 6. Open a Pull Request- ✅ Follow existing code style
- ✅ Write clear commit messages
- ✅ Test your changes thoroughly
- ✅ Update documentation if needed
- ✅ Keep PRs focused and small
Copyright © 2025 Taliyo Technologies. All rights reserved.
This software is proprietary and confidential. Unauthorized copying,
distribution, or use of this software is strictly prohibited.
- Next.js Team - For the amazing framework
- Vercel - For seamless deployment and cron jobs
- Radix UI - For accessible component primitives
- Tailwind Labs - For the best CSS framework
- Open Source Community - For inspiration and tools