This document provides comprehensive context for AI systems to understand the "My Dashboard" project. It includes project goals, architecture, technology stack, current implementation status, and links to detailed documentation.
Project Name: My Dashboard Description: A dashboard management system for displaying information on old Android phones. Users create dashboards through a web application, add widgets, and bind phones via QR code. The phone receives data through an API and displays widgets in real-time. Live Demo: https://site15-my-dashboard.vercel.app
The project consists of two main components:
-
Mobile Application (
/mobile)- Framework: Ionic-Angular with Capacitor for Android support
- Build system: Ionic + Capacitor
- Target platform: Android
- Navigation: Tab-based (tab1, tab2, tab3)
-
Web Application (
/web)- Framework: AnalogJS (Angular-based fullstack framework)
- Backend: Server routes in
/src/server - Database: Prisma ORM with PostgreSQL
- API: tRPC for type-safe communication
- Deployment: Vercel
- Frontend: AnalogJS, Angular, tRPC client
- Backend: AnalogJS server routes, tRPC server
- Database: Prisma ORM, PostgreSQL
- Styling: Pico.css, Tailwind CSS
- Authentication: Telegram OAuth
- Deployment: Vercel
- Framework: Ionic-Angular
- Native Integration: Capacitor
- UI Components: Ionic UI library
- Target: Android
- Language: TypeScript
- Build Tool: npm
- Testing: Vitest
- Database: PostgreSQL (Neon recommended)
See detailed schema in schema.prisma:
- User: id, anonymousId, telegramUserId, telegramUserData, isBlackTheme, Session[], Dashboard[]
- Session: id, userId, createdAt, deletedAt
- Dashboard: id, name, deviceId, userId, isBlackTheme, Widget[]
- Widget: id, options (JSON), state (JSON), grid positioning, colors, dashboardId
- WidgetLog: id, oldOptions, newOptions, oldState, newState, widgetId
- Project infrastructure (AnalogJS, Ionic, Prisma)
- Database schema implementation
- Telegram authentication system
- Basic web UI (login, dashboard list, dashboard view, device linking)
- QR code generation for device linking
- Vercel deployment configuration
- GitHub Actions workflow for mobile builds
- Email/password registration
- Anonymous mode with localStorage
- User reattachment functionality
- Full Dashboard CRUD operations
- Widget CRUD operations
- Partial implementation of Habits Tracking Widget
- Mobile QR code scanning
- Widget display components on mobile
- Real-time widget updates
- Widget state management
- Offline caching for mobile
- Usage metrics collection
See detailed task tracking in:
- PROJECT_TASKS.md (English)
- PROJECT_TASKS_RU.md (Russian)
Focus: Complete core functionality for basic dashboard management
Focus: Implement mobile application and full integration
- schema.prisma - Database schema
- vite.config.ts - Vite configuration
- package.json - Dependencies and scripts
- src/app/ - Frontend components
- src/server/ - Backend routes and logic
- src/server/trpc/routers/ - tRPC API endpoints
- capacitor.config.ts - Capacitor configuration
- ionic.config.json - Ionic configuration
- package.json - Dependencies and scripts
- src/app/ - Application source code
/users- User management/telegram- Telegram authentication/auth- Authentication operations/dashboards- Dashboard operations/widgets- Widget operations
See implementation in src/server/trpc/routers/
The web application uses Telegram authentication with:
- Redirect method
- Server-side hash verification
- Tunneling via tuna.am for local development
See Telegram Authentication Integration for details.
- Node.js 22.x
- PostgreSQL database (Neon recommended)
- Telegram bot for authentication (optional for local development)
MY_DASHBOARD_DATABASE_POSTGRES_URL=postgresql_connection_string
cd web
npm install
npm startcd mobile
npm install
ionic serve- Platform: Vercel
- Database: Neon PostgreSQL (native integration)
- URL: https://site15-my-dashboard.vercel.app
- Platform: Android APK
- Build: GitHub Actions workflow
- Distribution: Manual
For comprehensive project information, refer to:
- PROJECT_OVERVIEW.md - Technical specification and implementation plan
- TECHNICAL_DOCUMENTATION.md - Detailed technical documentation
- README.md - Root project documentation
- web/README.md - Web application documentation
- mobile/README.md - Mobile application documentation
Common issues and solutions:
- "Bot domain invalid" - Configure bot domain via BotFather
- "Blocked request" - Add domain to vite.config.ts allowedHosts
See Troubleshooting for detailed solutions.