Skip to content

Explainable developer assessment platform with multi-path evaluation, evidence-based scoring, and growth-focused feedback. Helps candidates understand their strengths and areas for improvement. Built with Python, FastAPI, and Docker.

License

Notifications You must be signed in to change notification settings

doronpers/sono-eval

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

91 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Sono-Eval

Explainable Multi-Path Developer Assessment System

Python 3.9+ License: MIT Version Security Audit Documentation

A growth-oriented assessment platform for candidates. Understand your strengths, track your progress, and get actionable feedback.

⚠️ Active Development: Sono-Eval is in active development. Features are being added and refined, APIs may change, and the system is not yet production-ready. Use at your own risk.

Quick Start β€’ Documentation β€’ Key Features β€’ Usage Examples


🎯 What is Sono-Eval?

Sono-Eval is an assessment system designed to help you understand and grow your skills. Unlike traditional tests that just give you a score, Sono-Eval:

  • Explains every score with concrete evidence from your work
  • Evaluates multiple dimensions - not just code, but design thinking, collaboration, and problem-solving
  • Identifies your strengths and shows you exactly where to improve
  • Tracks your growth over time with detailed history
  • Provides actionable feedback you can use immediately

For Candidates: Think of it as a helpful coach, not just a grader! For Teams: Get deep insights into skills and growth potential, not just pass/fail.


⚑ Quick Start

Get Sono-Eval running in 5 minutes:

🐳 Docker (Recommended)

# Clone and start
git clone https://github.com/doronpers/sono-eval.git
cd sono-eval
./launcher.sh start

# Access services
# πŸ“š API Docs: http://localhost:8000/docs
# πŸ“Š Dashboard: http://localhost:8088 (admin/admin)
# πŸ“± Mobile: http://localhost:8000/mobile

🐍 Python Installation

# Setup
git clone https://github.com/doronpers/sono-eval.git
cd sono-eval
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -e .

# Run your first assessment
sono-eval assess run \
  --candidate-id demo_user \
  --content "def hello(): return 'world'" \
  --paths technical

πŸ“– Next Steps


🌟 Key Features

For Candidates

  • πŸ“– Clear Explanations - Understand exactly why you received each score
  • 🎯 Multiple Paths - Evaluated on technical skills, design thinking, collaboration, and more
  • πŸ“ˆ Track Progress - See how you improve over time
  • πŸ’‘ Actionable Feedback - Specific recommendations for growth
  • πŸ† Identify Strengths - Understand what you're naturally good at
  • πŸ“± Mobile Companion - Complete assessments on any device with guided, interactive experience

For Evaluators

  • πŸ” Deep Insights - Go beyond surface-level scores
  • πŸ“Š Analytics - Visualize candidate performance and cohorts
  • βš–οΈ Fair Assessment - Consistent, evidence-based evaluation
  • 🀝 Better Experience - Candidates learn even if not hired
  • πŸš€ Easy Setup - Docker deployment in minutes
  • πŸ“± Mobile-Friendly - Candidates can complete assessments anywhere

πŸ“š Documentation

Getting Started

User Guides

Concepts

Help & Resources

πŸ“– Browse All Documentation


πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     Sono-Eval System                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Interfaces:  CLI  β”‚  REST API  β”‚  Python SDK               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Core Engine:                                               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚  Assessment  β”‚  β”‚   Semantic   β”‚  β”‚    Memory    β”‚    β”‚
β”‚  β”‚    Engine    β”‚  β”‚    Tagging   β”‚  β”‚   (MemU)     β”‚    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Storage:  PostgreSQL  β”‚  Redis  β”‚  File System            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Analytics:  Apache Superset Dashboards                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

See Architecture Overview for details.


⚠️ System Limits (Honesty Statement)

Current State (v0.1.0 - Active Development):

  • ML Integration: Current "Hybrid" mode is primarily heuristic-driven. ML insights (T5/LoRA) are secondary and require high-compute environments (GPU) to be performant. The heuristic-first approach is currently the most reliable.
  • Concurrency: MemUStorage is currently filesystem-based. While thread-safe for reads, concurrent writes to the same candidate profile may result in data race conditions. Use Redis for high-concurrency needs.
  • Assessment Retrieval: The GET /api/v1/assessments/{id} endpoint retrieves assessments from hierarchical memory storage.
  • Dark Horse Mode: The ML-based "Dark Horse" tracking and T5 tagging are primarily heuristic fallbacks. The documentation accurately reflects current capabilities.

Security Requirements:

  • SECRET_KEY must be a 32-byte secure token (validated at startup).
  • Candidate IDs are strictly sanitized (alphanumeric/dash/underscore only).
  • File uploads enforce path traversal protection and content-type verification.

Recommended Configuration:

  • Maintain DARK_HORSE_MODE as "enabled" to track micro-motives (Mastery vs. Efficiency), which reveal more about character than raw scores.
  • The Heuristic-First approach is currently the most reliable for production use.

πŸ’» Usage Examples

Command Line

# Create a candidate
sono-eval candidate create --id candidate_001

# Run assessment
sono-eval assess run \
  --candidate-id candidate_001 \
  --file solution.py \
  --paths technical design collaboration

# Generate code tags
sono-eval tag generate --file mycode.js --max-tags 5

# Start API server
sono-eval server start --reload

Python API

from sono_eval.assessment import AssessmentEngine, AssessmentInput, PathType

# Initialize engine
engine = AssessmentEngine()

# Run assessment
result = await engine.assess(AssessmentInput(
    candidate_id="candidate_001",
    submission_type="code",
    content={"code": your_code},
    paths_to_evaluate=[PathType.TECHNICAL, PathType.DESIGN]
))

# View results
print(f"Score: {result.overall_score}/100")
print(f"Summary: {result.summary}")
for finding in result.key_findings:
    print(f"β€’ {finding}")

REST API

# Create assessment
curl -X POST http://localhost:8000/api/v1/assessments \
  -H "Content-Type: application/json" \
  -d '{
    "candidate_id": "candidate_001",
    "submission_type": "code",
    "content": {"code": "def hello(): return \"world\""},
    "paths_to_evaluate": ["TECHNICAL"]
  }'

πŸš€ Deployment

Docker (Recommended)

# Start all services
./launcher.sh start

# View status
./launcher.sh status

# View logs
./launcher.sh logs

# Stop services
./launcher.sh stop

Local Development

# Setup environment
./launcher.sh dev

# Activate virtual environment
source venv/bin/activate

# Run directly
sono-eval assess run --candidate-id test --file test.py

See Installation Guide for detailed instructions.


πŸ§ͺ Development

Setup

# Clone repository
git clone https://github.com/doronpers/sono-eval.git
cd sono-eval

# Setup dev environment
./launcher.sh dev
source venv/bin/activate

# Install with dev dependencies
pip install -e ".[dev]"

Testing

# Run tests
pytest

# With coverage
pytest --cov=src/sono_eval --cov-report=html

# Specific test file
pytest tests/test_assessment.py

Code Quality

# Format code
black src/ tests/

# Lint
flake8 src/ tests/

# Type check
mypy src/

See Contributing Guide for more details.


🀝 Contributing

We welcome contributions! Whether you're:

  • πŸ› Reporting bugs
  • πŸ’‘ Suggesting features
  • πŸ“ Improving documentation
  • πŸ”§ Submitting code

Read our Contributing Guide to get started.


πŸ“„ License

Sono-Eval is licensed under the MIT License.

You're free to use, modify, and distribute it. See the LICENSE file for details.


πŸ†˜ Getting Help


πŸ—ΊοΈ Roadmap

Current (v0.1.0 - Active Development)

  • Explainable assessment engine (heuristic-first)
  • Multi-path evaluation
  • CLI and REST API
  • Docker deployment
  • Comprehensive documentation
  • Repaired assessment retrieval endpoint
  • Timezone-aware datetime handling
  • LRU cache eviction for memory storage
  • Enhanced security validation

Next Release (v0.2.0)

  • Real ML-based scoring (not placeholder)
  • Batch assessment processing
  • Authentication system
  • Web UI for reviews
  • Enhanced analytics
  • Redis-backed memory storage for high concurrency

Future

  • Multi-language support
  • Plugin system
  • Real-time collaboration
  • Integration with GitHub/GitLab
  • Mobile dashboards

See CHANGELOG.md for version history.


πŸ™ Acknowledgments

  • Dark Horse Model - Based on tex-assist-coding research
  • T5 - Google's Text-to-Text Transfer Transformer
  • PEFT - Hugging Face Parameter-Efficient Fine-Tuning
  • Apache Superset - Modern data exploration platform

πŸ“Š Stats

  • Lines of Code: ~2,500
  • Documentation Pages: 15+
  • Test Coverage: Core functionality tested
  • Docker Services: 4 containers
  • API Endpoints: 10+ REST endpoints
  • CLI Commands: 15+ commands

Built with ❀️ by the Sono-Eval Team

Version: 0.1.0 | Last Updated: January 2026 | Status: Active Development

⬆ Back to top

Agent Instructions

CRITICAL: All AI agents MUST read AGENT_KNOWLEDGE_BASE.md before performing any tasks. It contains non-negotiable Patent, Security, and Design rules.

Additional resources:

About

Explainable developer assessment platform with multi-path evaluation, evidence-based scoring, and growth-focused feedback. Helps candidates understand their strengths and areas for improvement. Built with Python, FastAPI, and Docker.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •