Skip to content

Complete Analytics API ecosystem with Android SDK, Backend API, and Admin Portal

License

Notifications You must be signed in to change notification settings

michaelarie96/InsightTrack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

53 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

InsightTrack Analytics SDK

JitPack License: MIT

Complete Analytics SDK Ecosystem - Track user behavior, sessions, events, and crashes with enterprise-grade analytics infrastructure

InsightTrack is a comprehensive analytics solution that provides developers with a powerful Android SDK, robust backend API, and intuitive admin dashboard to track and analyze user behavior in mobile applications.

🎯 What You Get

  • πŸ“Š Real-time Analytics Dashboard - See user behavior instantly
  • πŸ“± Screen Tracking - Know which screens users visit most
  • πŸ’° E-commerce Insights - Track purchases and conversions
  • πŸ’₯ Crash Reporting - Automatically detect and report crashes
  • 🌐 Offline Support - Events saved when offline, sent when online
  • πŸ”’ Privacy Focused - GDPR compliant, no personal data required

πŸš€ Quick Start (5 Minutes)

1. Add to Your App

In your app's build.gradle:

dependencies {
    implementation 'com.github.michaelarie96:InsightTrack:v1.0.7'
}

2. Initialize (One Time Setup)

Create or edit your Application class:

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        
        InsightTrackSDK.Builder.with(this)
            .setApiKey("your-api-key")  // Get this from the InsightTrack team
            .useProduction("insighttrack-dashboard.app")  // Demo server (not deployed)
            .build()
    }
}

3. Track Events (Anywhere in Your App)

// ✨ Super simple - just describe what happened
InsightTrackSDK.getInstance().trackEvent("User shared a photo")

// πŸ“ Simple with category
InsightTrackSDK.getInstance().trackEvent("button_click", "User tapped the like button")

// 🏒 Advanced (for complex apps)
InsightTrackSDK.getInstance().trackPurchase("order_123", 29.99)

That's it! Your app is now tracking user behavior.


πŸ“Š Complete Analytics Tracking

🎯 Custom Event Tracking

// ✨ Simple - describe anything that happens
InsightTrackSDK.getInstance().trackEvent("User completed tutorial")
InsightTrackSDK.getInstance().trackEvent("User subscribed to premium")

// πŸ“ Organized - categorize your events
InsightTrackSDK.getInstance().trackEvent("video_action", "User played intro video")
InsightTrackSDK.getInstance().trackEvent("social_share", "User shared on Instagram")

// πŸ”§ Advanced - custom properties for detailed analysis
InsightTrackSDK.getInstance().trackEvent("level_completed", mapOf(
    "level" to 5,
    "score" to 1250,
    "time_spent" to 120,
    "difficulty" to "hard"
))

πŸ›οΈ E-commerce Analytics

// Complete purchase funnel tracking
InsightTrackSDK.getInstance().trackProductView("iphone15", "iPhone 15", 999.0, "Electronics")
InsightTrackSDK.getInstance().trackAddToCart("iphone15", "iPhone 15", 999.0, 1)
InsightTrackSDK.getInstance().trackCheckout()
InsightTrackSDK.getInstance().trackPurchase("order_456", 999.0)

πŸ‘€ User Journey Tracking

// User identification and authentication
InsightTrackSDK.getInstance().setUserId("user_12345")
InsightTrackSDK.getInstance().trackLogin("email")
InsightTrackSDK.getInstance().trackLogout()

// Screen and navigation tracking
InsightTrackSDK.getInstance().trackScreenView("MainActivity")
InsightTrackSDK.getInstance().trackButtonClick("share_button")
InsightTrackSDK.getInstance().trackFeatureUsed("premium_feature")

πŸ” Search & Discovery

// Track user search behavior
InsightTrackSDK.getInstance().trackSearch("laptop", 25) // query and results count
InsightTrackSDK.getInstance().trackSettingsChanged("notifications", true)
InsightTrackSDK.getInstance().trackProfileUpdated()

πŸ’₯ Automatic Crash & Error Tracking

// Automatic crash reporting (set up in Application class)
try {
    riskyOperation()
} catch (exception: Exception) {
    InsightTrackSDK.getInstance().logCrash(exception)
}

// Manual error logging
InsightTrackSDK.getInstance().logError("API_ERROR", "Failed to load user data")

πŸ“Έ Analytics Dashboard Preview

πŸ“Š Complete Analytics Overview

Dashboard Overview

Real-time analytics with user growth, retention analysis, and comprehensive metrics



πŸ’₯ Crash And Event Analytics

Crash Analytics

Device crash patterns, daily trends, and geographic event distribution



πŸ“± Interactive Data Tables

Session Analytics

Session duration analysis, crash impact ranking, and clickable activity tables



πŸ” Detailed Event Inspection

Event Details Modal

Click any event to see complete details including user info, properties, and device data



πŸ› οΈ Developer-Friendly Crash Reports

Crash Details Modal

Full stack traces, impact analysis, and debugging information for quick issue resolution


Features Shown:

  • πŸ“ˆ Real-time user growth and retention analytics
  • 🌍 Geographic user distribution worldwide
  • πŸ’₯ Comprehensive crash reporting with trends
  • πŸ“± Device-specific crash patterns
  • 🎯 Top events and user interaction tracking
  • πŸ” Clickable tables with detailed modals
  • πŸ“Š Session duration and engagement analysis

🎬 Video Demo

Watch the complete InsightTrack ecosystem in action:

InsightTrack Demo Video

Note: Video recorded for academic demonstration purposes


πŸ”§ Configuration Options

Development vs Production

🏠 Development Setup

// For local testing with your Flask server
InsightTrackSDK.Builder.with(this)
    .setApiKey("test-key")
    .useLocalDevelopment(5001)  // Your Flask server port
    .build()

Requirements:

  1. Run Flask server locally: python app.py
  2. Allow HTTP traffic for Android (create network_security_config.xml):
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="false">10.0.2.2</domain>
        <domain includeSubdomains="false">localhost</domain>
    </domain-config>
</network-security-config>
  1. Add to AndroidManifest.xml:
<application
    android:networkSecurityConfig="@xml/network_security_config"
    ...>

🌐 Production Setup

// For live apps with your deployed backend
InsightTrackSDK.Builder.with(this)
    .setApiKey("your-api-key")
    .useProduction("your-analytics-api.vercel.app")  // YOUR deployed Flask server
    .build()

Requirements:

  1. Deploy your Flask backend to Vercel/Heroku/AWS/etc.
  2. Set up MongoDB Atlas database
  3. Use your deployed server URL

πŸ“‹ Requirements

  • Minimum Android: API 26 (Android 8.0)
  • Permissions: Internet access (automatically added)
  • Size: < 500KB added to your app

πŸ“„ License

MIT License - use in any project, commercial or personal.


πŸ“Œ Maintained by: Michael Arie

About

Complete Analytics API ecosystem with Android SDK, Backend API, and Admin Portal

Resources

License

Stars

Watchers

Forks

Packages

No packages published