Files
Yuji Ueki 92f0e25af5 refactor: complete dependency injection for Repository layer
- Inject DAOs into all Repository classes using shaku
- Remove unused database fields from AnalyticsService and RepositoryService
- Add GitRepositoryRepository to DI module
- Convert GitRepositoryRepository, StageRepository to pure DAO-based implementation
- SessionRepository keeps database field for transaction management but uses injected DAOs
- Remove unused imports (FileStorageInterface, Database, HasDatabase)
- Refactor SessionDao to use SaveSessionResultParams struct to reduce argument count
- Add VersionCheckFuture type alias to simplify complex type signatures
- Update all tests to work with new DI-based Repository layer
- All 1420 tests passing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-12 13:31:18 +09:00
..

Development Tools

This directory contains development tools and utilities for GitType.

Seed Database

Populate the database with sample data for development and testing.

Usage

# Generate default dataset (10 repos, 1000 sessions, 3000 stages)
cargo run --example seed_database -- --clear

# Generate custom dataset
cargo run --example seed_database -- --clear --repos 5 --sessions 100 --stages 500

# Small dataset for quick testing
cargo run --example seed_database -- --clear --repos 2 --sessions 20 --stages 50

Options

  • --clear: Clear existing data before seeding
  • --repos <N>: Number of repositories to generate (default: 10)
  • --sessions <N>: Number of sessions to generate (default: 1000)
  • --stages <N>: Number of stages to generate (default: 3000)

Generated Data

The tool generates realistic sample data including:

  • Repositories: Various programming languages and project types
  • Sessions: Mix of completed and incomplete typing sessions
  • Challenges: Real code snippets in multiple languages
  • Stages: Individual typing challenges with timing data
  • Results: Performance metrics, rankings, and statistics

This data is useful for:

  • Testing UI components with realistic data volumes
  • Performance testing with large datasets
  • Developing analytics and reporting features
  • Manual testing of different user scenarios