🚀 A modern, user-friendly dashboard that brings together a suite of productivity tools, utilities, and games — all in one place!
- 🔑 Google Sign-In Authentication
- 🗂️ Sidebar with Category Navigation and Search
- ⚡ Instant App Launch via Iframe
- 📝 User Activity Logging (localStorage)
- 🌙 Dark/Light Theme Support
- 📱 Progressive Web App (PWA) – Installable on Desktop & Mobile
- 🎮 Games & Productivity Apps in One Place
- Fake News Detection
- PDF Extractor
- Math Problem Solver
- Equation Grapher
- Advanced Meeting Notes Formatter
- Language Translator
- Image Resizer
- AI Markdown Formatter
- AskAI (Latest Addition)
- Clash of Castles, Tap Dash, Circle Bounce Ball, Dots & Boxes (Games)
- ...and more!
- Tailwind CSS
- Vanilla JavaScript (ES6)
- Google Identity Services
- PWA (Service Worker, Manifest)
-
Clone the repo:
git clone https://github.com/BTKcreations/Multi_App.git cd Multi_App -
Run locally:
- Just open
index.htmlin your browser. No build step required!
- Just open
-
Google Sign-In:
- The app uses a public OAuth client for sign-in. No backend needed.
- Open the Application: Navigate to Live Demo or open
index.htmllocally - Sign In: Click the "Sign in with Google" button to authenticate (required for full functionality)
- Dashboard Overview: After signing in, you'll see the main dashboard with:
- Header: Contains user profile, theme toggle, and main navigation
- Sidebar: Categorized app navigation with search functionality
- Main Content Area: App launcher grid and iframe container for running apps
- Sidebar Navigation:
- Browse apps by categories (Productivity, Games, Utilities, etc.)
- Use the search bar to quickly find specific apps
- Collapse/expand sidebar for more screen space
- Theme Toggle: Switch between light and dark modes using the theme button
- App Grid: Click on any app card to launch it instantly in the main content area
- User Profile: Access account information and sign-out option
- Launch Apps: Simply click on any app tile to open it in an iframe
- Full-Screen Mode: Most apps support full-screen viewing
- Back to Dashboard: Use the dashboard button to return to the main app grid
- Recent Activity: Your app usage is automatically logged and can be viewed in your profile
- Launch the App: Click on "PDF Extractor" from the Productivity category
- Upload File: Drag and drop your PDF file or use the file selector
- Extract Content: The app will process your PDF and extract text content
- Download/Copy: Use the provided options to download extracted text or copy to clipboard
- Return: Click the dashboard button to return to the main interface
- Access the Tool: Navigate to "Math Problem Solver" in the Education category
- Input Problem:
- Type your mathematical equation or problem
- Use the provided calculator interface for complex expressions
- Upload an image of handwritten math problems (if supported)
- Solve: Click "Solve" to get step-by-step solutions
- Review Steps: The app will show detailed solution steps
- Export: Save solutions as PDF or share via integrated options
- Browse Games: Navigate to the Games category in the sidebar
- Select Game: Choose from Clash of Castles, Tap Dash, Circle Bounce Ball, or Dots & Boxes
- Play: Games launch in full-screen mode for optimal experience
- Progress Tracking: Game scores and progress are automatically saved
- Leaderboards: Compare your scores with other users (where applicable)
- Launch AskAI: Click on the "AskAI" app from the AI category
- Ask Questions: Type your questions in natural language
- Get Responses: Receive AI-powered answers and explanations
- Context Awareness: The AI maintains conversation context for follow-up questions
- Export Conversations: Save important Q&A sessions for future reference
┌─────────────────────────────────────────────────────────────┐
│ Multi App Dashboard │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────┐ ┌─────────────────┐
│ Frontend UI │ │ Service │ │ Authentication │
│ (Tailwind) │ │ Worker │ │ (Google GIS) │
└─────────────────┘ └─────────────┘ └─────────────────┘
│ │ │
└─────────────────┼─────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Core Components │
├─────────────────────────────────────┤
│ • App Registry (apps.json) │
│ • Dynamic Iframe Loader │
│ • Theme Manager │
│ • Activity Logger │
│ • Search & Filter Engine │
└─────────────────────────────────────┘
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────┐ ┌─────────────────┐
│ Individual │ │ Local │ │ PWA │
│ Apps (HTML) │ │ Storage │ │ Capabilities │
└─────────────────┘ └─────────────┘ └─────────────────┘
Frontend Layer:
- Tailwind CSS: Responsive design system with dark/light theme support
- Vanilla JavaScript: ES6+ modules for app logic and interactivity
- Dynamic UI: Component-based approach for reusable interface elements
Authentication Layer:
- Google Identity Services: OAuth2 authentication flow
- User Session Management: Secure token handling and user state persistence
- Profile Integration: User data and preferences synchronization
Core Application Logic:
- App Registry: JSON-based configuration for all available applications
- Iframe Manager: Secure sandboxing and communication with individual apps
- Theme Controller: CSS custom properties management for theming
- Activity Tracker: User interaction logging and analytics
- Search Engine: Real-time app filtering and categorization
Data Layer:
- LocalStorage: User preferences, activity logs, and app states
- Session Storage: Temporary data and cache management
- IndexedDB: Large data storage for offline capabilities
PWA Features:
- Service Worker: Offline functionality and caching strategies
- Web App Manifest: Installation and native app-like experience
- Background Sync: Data synchronization when connectivity is restored
User Visits App → Check Auth Status → [Not Authenticated]
↓ ↓
Show Login Screen ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ←
↓
Click "Sign in with Google"
↓
Google OAuth Popup
↓
[Success] → Store User Token → Load Dashboard
↓
[Failure] → Show Error Message → Return to Login
Dashboard Load → Initialize Sidebar → Load App Registry
↓ ↓ ↓
Render App Grid → Setup Search → Apply Categories
↓
User Interaction:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Search Apps │ │ Browse Category │ │ Click App Tile │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
Filter Results Show Filtered Apps Launch in Iframe
│ │ │
└─────────────────────┼─────────────────────┘
▼
Update Activity Log
User Clicks App → Validate Selection → Check App Config
↓ ↓ ↓
Show Loading State → Initialize Iframe → Load App HTML
↓ ↓ ↓
Setup Communication → Apply Theme → App Ready
↓ ↓ ↓
Log Activity → Enable Full-Screen → User Interaction
↓
[App Close] → Return to Dashboard → Update Session
App Initialize → Check Stored Theme → Apply Theme
↓ ↓ ↓
User Toggle → Update CSS Variables → Save Preference
↓ ↓ ↓
Propagate to Apps → Update UI Elements → Log Change
User Visits → Check Install Eligibility → Show Install Prompt
↓ ↓ ↓
User Accepts → Register Service Worker → Download Assets
↓ ↓ ↓
Create Shortcuts → Enable Offline Mode → Installation Complete
Error Occurs → Categorize Error Type → Show User-Friendly Message
↓ ↓ ↓
Log Error → [Network Issue] → Show Offline Mode
↓ ↓ ↓
Attempt Recovery → [Auth Issue] → Redirect to Login
↓
[App Issue] → Reload App in Iframe
- Open the Live Demo in your browser.
- Look for the install icon in your browser's address bar or menu, and "Install AppDash" to your device.
- Fork the repository
- Clone your fork locally
- Create a new branch for your feature
- Make your changes
- Test thoroughly
- Submit a pull request
- Create your app HTML file in the
Apps/directory - Add app configuration to
apps.json:{ "id": "your-app-id", "name": "Your App Name", "description": "Brief description", "category": "Productivity", "icon": "🛠️", "url": "Apps/your-app.html", "featured": false } - Test the integration
- Submit a pull request with your addition
- Follow existing code style and structure
- Ensure responsive design compatibility
- Test in both light and dark themes
- Include proper error handling
- Update documentation as needed
Pull requests are welcome! If you have new app ideas or improvements, open an issue or fork and submit a PR.
MIT License - feel free to use this project for personal or commercial purposes.
Author: TharunKumar
Last Updated: October 2025
Made with ❤️ for developers and productivity enthusiasts