Skip to content

TeLIXSoftware/TeLIXDash

Repository files navigation

🏎️ iRacing Telemetry Dashboard

A comprehensive web-based dashboard for analyzing iRacing telemetry data with professional-grade insights and AI-free analytics.

Dashboard Preview Next.js TypeScript TailwindCSS

✨ Features

πŸ“Š Dashboard Overview

  • Session Statistics: Total sessions, best lap times, consistency metrics, max speeds
  • Recent Sessions: Quick access to your latest racing sessions
  • Performance Trends: Visual insights into your driving progress
  • Modern UI: Smooth animations and responsive design

πŸ“ IBT File Processing

  • Drag & Drop Upload: Easy IBT file uploading with validation
  • Automatic Parsing: Extract telemetry data, lap times, GPS coordinates
  • Track & Car Recognition: Automatic detection from filename patterns
  • Data Validation: Ensures clean, accurate telemetry data

🏁 Session Management

  • Session List: View all your racing sessions with sortable data
  • Detailed Views: Comprehensive session analysis with lap breakdowns
  • Fastest Laps: Highlight your best performances across sessions
  • Track Categorization: Organize sessions by track and car

πŸ”¬ Lap Analytics (AI-Free)

Professional rule-based analysis providing actionable insights:

Performance Categories

  • 🚦 Braking Performance: Consistency, threshold braking analysis
  • ⚑ Throttle Control: Smoothness, progressive application metrics
  • 🏎️ Speed Management: Corner speed consistency and optimization
  • 🎯 Corner Performance: Entry/exit analysis, momentum preservation
  • ⏱️ Lap Time Performance: Comparison against personal bests

Scoring System

  • 0-100 Point Scale: Clear performance metrics
  • Color-Coded Status: Excellent (Green), Good (Blue), Needs Improvement (Yellow), Poor (Red)
  • Specific Suggestions: Actionable advice like "Focus on threshold braking" or "Improve corner exit speed"

πŸ“ˆ Data Visualization

  • Racing Line Maps: GPS-based track visualization with speed color-coding
  • Telemetry Graphs: Speed, throttle, brake, and steering traces
  • Lap Time Charts: Visual comparison of lap times with trend analysis
  • Performance Bars: Visual representation of consistency metrics

πŸ” Authentication & Security

  • Secure Login: Email-based authentication with session management
  • User Isolation: Each user's data is completely separate
  • Session Persistence: Stay logged in across browser sessions

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • SQLite (included)
  • Modern web browser

Installation

  1. Clone the repository

    git clone <repository-url>
    cd iracing-dashboard
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp .env.example .env.local
    # Edit .env.local with your configuration
  4. Initialize the database

    npm run db:init
  5. Start the development server

    npm run dev
  6. Open your browser Navigate to http://localhost:3000

πŸ“– Usage Guide

Getting Started

  1. Create Account: Sign up with your email address
  2. Upload IBT File: Drag and drop your iRacing telemetry files
  3. View Sessions: Browse your uploaded sessions in the Sessions tab
  4. Analyze Performance: Use the Analytics tab for detailed lap analysis

IBT File Requirements

  • Format: .ibt files from iRacing
  • Size Limit: Up to 100MB per file
  • Content: Must contain valid telemetry data with GPS coordinates

Analytics Workflow

  1. Select Session: Choose from your uploaded sessions
  2. Pick Lap: Select specific lap for detailed analysis
  3. Review Scores: Check performance metrics (0-100 scale)
  4. Follow Suggestions: Implement recommended improvements
  5. Compare: Track progress across sessions

πŸ› οΈ Technology Stack

Frontend

  • Framework: Next.js 15 with App Router
  • Language: TypeScript for type safety
  • Styling: Tailwind CSS with custom animations
  • State Management: React hooks with tRPC
  • Icons: Lucide React for consistent iconography

Backend

  • API: tRPC for end-to-end type safety
  • Database: SQLite with better-sqlite3
  • Authentication: better-auth for secure sessions
  • File Processing: Custom IBT parser for telemetry data

Data Processing

  • Telemetry Parser: Custom IBT file decoder
  • GPS Processing: Coordinate validation and track mapping
  • Analytics Engine: Rule-based performance analysis
  • Data Validation: Comprehensive input sanitization

πŸ“ Project Structure

iracing-dashboard/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                    # Next.js app directory
β”‚   β”‚   β”œβ”€β”€ api/               # API routes
β”‚   β”‚   β”œβ”€β”€ globals.css        # Global styles & animations
β”‚   β”‚   └── page.tsx           # Main application page
β”‚   β”œβ”€β”€ components/            # React components
β”‚   β”‚   β”œβ”€β”€ auth/              # Authentication components
β”‚   β”‚   β”œβ”€β”€ DashboardLayout.tsx
β”‚   β”‚   β”œβ”€β”€ LapAnalytics.tsx   # Main analytics component
β”‚   β”‚   β”œβ”€β”€ Navigation.tsx     # Sidebar navigation
β”‚   β”‚   β”œβ”€β”€ PerformanceInsights.tsx
β”‚   β”‚   β”œβ”€β”€ SessionsList.tsx
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ lib/                   # Utility libraries
β”‚   β”‚   β”œβ”€β”€ auth.ts           # Authentication configuration
β”‚   β”‚   β”œβ”€β”€ db.ts             # Database setup
β”‚   β”‚   └── ibt-parser.ts     # IBT file parser
β”‚   β”œβ”€β”€ server/               # tRPC server
β”‚   β”‚   └── api/
β”‚   β”‚       └── routers/      # API route handlers
β”‚   └── types/                # TypeScript definitions
β”œβ”€β”€ public/                   # Static assets
β”œβ”€β”€ scripts/                  # Database initialization scripts
└── package.json

πŸ”§ Configuration

Environment Variables

# Database
DATABASE_URL="./iracing.db"

# Authentication
AUTH_SECRET="your-secret-key"
AUTH_TRUST_HOST="true"

# Application
NEXT_PUBLIC_APP_URL="http://localhost:3000"

Database Schema

The application uses SQLite with the following main tables:

  • racing_sessions: Session metadata and telemetry
  • lap_data: Individual lap information
  • users: User accounts and authentication

πŸ“Š Analytics Methodology

Rule-Based Analysis

Our analytics engine uses proven racing principles:

  • Braking Analysis: Measures consistency using standard deviation of brake pressure
  • Throttle Control: Calculates smoothness by analyzing input variations
  • Speed Management: Evaluates corner speed consistency and optimization
  • Lap Time Comparison: Benchmarks against personal and session bests

Scoring Algorithm

  • Data Normalization: All inputs validated and normalized (0-100%)
  • Consistency Metrics: Statistical analysis of driving patterns
  • Comparative Analysis: Performance relative to driver's best efforts
  • Actionable Insights: Specific, implementable suggestions

🀝 Contributing

Development Setup

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes with proper TypeScript types
  4. Test thoroughly with sample IBT files
  5. Submit a pull request with detailed description

Code Standards

  • TypeScript: Strict mode enabled, no any types
  • ESLint: Follow configured linting rules
  • Formatting: Use Prettier for consistent code style
  • Testing: Add tests for new analytics features

Feature Requests

  • Use GitHub Issues for feature requests
  • Provide detailed use cases and examples
  • Consider backward compatibility with existing data

πŸ“‹ Roadmap

Upcoming Features

  • Multi-Session Comparison: Compare performance across multiple sessions
  • Setup Analysis: Correlate car setup with performance metrics
  • Weather Integration: Factor weather conditions into analysis
  • Sector Analysis: Break down track performance by sectors
  • Export Reports: PDF/CSV export of analysis results

Performance Improvements

  • Data Compression: Reduce database size for large datasets
  • Caching Layer: Improve load times for frequently accessed data
  • Background Processing: Async analysis for large files

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • iRacing: For providing the telemetry data format
  • Racing Community: For feedback and feature suggestions
  • Open Source Libraries: All the amazing tools that made this possible

πŸ“ž Support

  • Issues: Use GitHub Issues for bug reports
  • Documentation: Check the /docs folder for detailed guides
  • Community: Join discussions in GitHub Discussions

Happy Racing! 🏁

Built with ❀️ for the iRacing community

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published