The Infiniti Analytics Dashboard is a full-stack web application designed to provide AI-powered productivity analytics using Redmine time tracking data. Its core purpose is to offer intelligent insights and recommendations, enhance task management, and automate reminders for overdue tasks. The application is branded with Infiniti Software's identity, aiming to improve team efficiency and project oversight.
Preferred communication style: Simple, everyday language.
- Technology: React 18 with TypeScript
- Build Tool: Vite (with HMR)
- Styling: Tailwind CSS with Radix UI components
- State Management: React Query for server state; React hooks for local state
- Routing: Wouter
- UI/UX: Features a modern aesthetic with glassmorphism effects, responsive design, professional typography (Inter font family), and color schemes that include dark and black-white themes. Elements incorporate visual hierarchy, card-based layouts, gradient backgrounds, and interactive hover effects. Animations are implemented using Framer Motion for enhanced user experience. Infiniti Software branding is integrated throughout the design, including logo and color palette.
- Server: Node.js with Express.js and TypeScript
- Database: PostgreSQL with Drizzle ORM
- Authentication: Express sessions with
passport-local - Email Service: Nodemailer (configured with Gmail SMTP)
- Data Synchronization: Automated 12-hour data synchronization from Redmine to the PostgreSQL database for historical data storage and offline capability. A manual sync option is also available.
- Email Management: Comprehensive
BulkEmailServicefor task reminders and compliance alerts, supporting professional HTML templates. - Activity Monitoring: Automated daily activity tracking with an 8-hour compliance check. Features a dual notification system for missing hours, sending reports to HR and personalized Google Chat warnings to individual users.
- Data Flow: Python HTTP server serves static files, including the React frontend. Frontend loads data from the Node.js backend, which queries the PostgreSQL database.
- Theming: A robust theme system uses React Context and CSS variables for seamless switching between dark and black-white themes, persisting preferences in
localStorage. - Database-Driven: The application primarily operates from a PostgreSQL database, replacing direct Redmine API consumption for improved performance and data persistence.
- Python 3.11 (for running the HTTP server)
- Node.js 20
- PostgreSQL
- Redmine API (for initial data ingestion and scheduled synchronization)
- Gmail SMTP (for email services)
- Google Chat (for user activity warning notifications)