Skip to content

rabuhr/LaxCheckBeta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LaxCheck - Open Source Lacrosse Head Identification System

License: MIT Node.js Version TypeScript

LaxCheck is a comprehensive, open-source lacrosse head identification and valuation platform that combines machine learning with AI-powered market analysis to help collectors identify equipment and find the highest market prices for their lacrosse heads.

πŸš€ Features

Core Identification System

  • Advanced ML Pipeline: Custom TensorFlow.js model with 14+ lacrosse head classes
  • OpenCV Preprocessing: Image enhancement, background removal, and edge detection
  • AI-Powered Analysis: OpenAI GPT-4 Vision integration for comprehensive equipment analysis
  • PDF Report Generation: Detailed analysis reports with technical specifications and market data

Market Intelligence

  • Real-time Valuation: Live market pricing from multiple platforms
  • Highest Price Finder: Identifies best selling platforms and optimal pricing
  • Market Trends: Real-time pricing data and market movement tracking
  • Demand Analysis: Platform-specific demand and pricing optimization

User Experience

  • Drag & Drop Upload: Support for up to 3 photos per analysis
  • Mobile Optimized: Responsive design for desktop and mobile use
  • Real-time Processing: Live progress tracking during analysis
  • Performance Dashboard: System analytics and identification metrics

πŸ› οΈ Technology Stack

Frontend

  • React 18 with TypeScript
  • Vite for development and building
  • Tailwind CSS for styling
  • Radix UI for accessible components
  • TanStack Query for state management
  • Wouter for routing

Backend

  • Node.js with Express
  • TypeScript for type safety
  • PostgreSQL with Drizzle ORM
  • TensorFlow.js Node for ML inference
  • OpenAI SDK for AI analysis
  • Sharp for image processing

Machine Learning

  • Custom TensorFlow Model: Trained on 1000+ lacrosse head images
  • Google Teachable Machine: Training pipeline for model updates
  • Image Preprocessing: Advanced OpenCV-style processing pipeline
  • Confidence Thresholding: Smart fallback to AI analysis

πŸ—οΈ Project Structure

laxcheck/
β”œβ”€β”€ client/                 # React frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/     # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ pages/         # Route components
β”‚   β”‚   β”œβ”€β”€ lib/           # Utilities and configuration
β”‚   β”‚   └── hooks/         # Custom React hooks
β”œβ”€β”€ server/                # Node.js backend
β”‚   β”œβ”€β”€ routes.ts          # API endpoints
β”‚   β”œβ”€β”€ enhanced_ml_identifier.ts  # ML processing pipeline
β”‚   β”œβ”€β”€ openai.ts          # AI analysis service
β”‚   β”œβ”€β”€ storage.ts         # Database operations
β”‚   └── db.ts              # Database connection
β”œβ”€β”€ shared/                # Shared TypeScript types
β”‚   └── schema.ts          # Database schema and types
β”œβ”€β”€ model/                 # ML model files
β”‚   β”œβ”€β”€ model.json         # TensorFlow.js model
β”‚   β”œβ”€β”€ weights.bin        # Model weights
β”‚   └── metadata.json      # Class labels and metadata
β”œβ”€β”€ electron/              # Desktop app wrapper
└── uploads/              # Image upload storage

πŸš€ Quick Start

Prerequisites

  • Node.js 20+
  • PostgreSQL database
  • OpenAI API key (optional, for enhanced analysis)

Installation

  1. Clone the repository
git clone https://github.com/yourusername/laxcheck.git
cd laxcheck
  1. Install dependencies
npm install
  1. Set up environment variables
cp .env.example .env
# Edit .env with your database URL and API keys
  1. Initialize database
npm run db:push
  1. Start development server
npm run dev

The application will be available at http://localhost:5000

Desktop Application

Build and run the desktop version:

# Development
npm run electron:dev

# Build for production
npm run electron:build

πŸ”§ Configuration

Environment Variables

# Database
DATABASE_URL=postgresql://user:password@host:port/database

# AI Services (Optional)
OPENAI_API_KEY=your_openai_api_key

# Development
NODE_ENV=development
SESSION_SECRET=your_session_secret

ML Model

The system includes a pre-trained model with these classes:

  • Warrior Blade, Jett, Evolution series
  • Brine Edge, Cyber, Vapor series
  • STX Excalibur, SAM II
  • Nike Blur, Reebok 6K
  • Vintage and rare collector pieces
  • Unknown (fallback class)

To train a custom model:

  1. Collect 15+ photos per lacrosse head model
  2. Use Google Teachable Machine
  3. Export as TensorFlow.js
  4. Replace files in /model/ directory

πŸ“± Deployment

Web Deployment (Replit)

  1. Deploy to Replit

    • Import from GitHub repository
    • Set environment variables in Secrets
    • Deploy using Replit's deployment system
  2. Custom Domain Setup

    • Configure custom domain in Replit
    • Update REPLIT_DOMAINS environment variable

Desktop Distribution

# Build for all platforms
npm run electron:build

# Platform-specific builds
npm run electron:build:win
npm run electron:build:mac
npm run electron:build:linux

Builds are output to /dist/ directory.

🀝 Contributing

We welcome contributions from the lacrosse community! Here's how to help:

Areas for Contribution

  1. ML Model Training: Add photos of rare/vintage heads
  2. Market Data: Contribute pricing information and sales data
  3. Feature Development: Enhance identification algorithms
  4. Documentation: Improve setup guides and tutorials
  5. Testing: Report bugs and edge cases

Development Process

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add tests if applicable
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Code Style

  • Use TypeScript for all new code
  • Follow existing naming conventions
  • Add JSDoc comments for new functions
  • Ensure responsive design for UI changes

πŸ“Š Performance

  • Model Accuracy: 87-92% on validation set
  • Processing Time: 2-8 seconds per analysis
  • Supported Formats: JPEG, PNG, WebP
  • Max File Size: 10MB per image
  • Concurrent Users: Optimized for 100+ simultaneous analyses

πŸ›‘οΈ Privacy & Security

  • Data Privacy: Images are processed locally, not stored permanently
  • No User Tracking: Anonymous usage for performance metrics only
  • Secure API Keys: Environment-based configuration
  • Open Source: Full transparency in processing methods

πŸ“œ License

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

πŸ† Community Impact

LaxCheck was created as a community gift to help collectors maximize the value of their lacrosse equipment. By making this system open source, we enable:

  • Maximum Value: Find the highest prices across all major marketplaces
  • Market Intelligence: Real-time pricing data and platform optimization
  • Educational Value: Learn about lacrosse equipment history and market trends
  • Community Building: Collaborative improvement of pricing accuracy

πŸ™ Acknowledgments

  • Google Teachable Machine for accessible ML training
  • OpenAI for advanced image analysis capabilities
  • The lacrosse collecting community for photos and market data
  • Contributors who help improve the system

πŸ“ž Support


Built with ❀️ for the lacrosse community

LaxCheck is dedicated to preserving lacrosse equipment history and maximizing collector value through open-source market intelligence and community collaboration.