How matveykonkin/shaverma_maxbot works
InternCheck MAX is a MAX chat bot for a first-pass Python Backend internship self-check. The user sends a job description; the bot validates it, detects supported skills, selects a prepared test, conducts it one question at a time, then reports scores and review material. It also supports cancellation/restart, history, and user statistics. SQLite persists sessions, answers, and completed results. The runtime excerpts show the main orchestration and scoring; some test-selection and reporting details are documented in the README but their implementation was not sampled.
Main entry points: main.py Polling and dialogue · analyzer.py Skill detection · test_engine.py Test selection · scoring.py Scoring and thresholds
Components 16
MAX conversation
- Polling and dialogue
app/main.py - Input parsing
app/parsing.py
Assessment flow
- Skill detection
app/services/analyzer.py - Test selection
app/services/test_engine.py - Question validation
app/services/test_engine.py - Scoring and thresholds
app/services/scoring.py - Error explanations
app/services/feedback.py
Assessment content
- JSON loader
app/utils/data_loader.py - Skill taxonomy
data/skills.json - Question banks
data/tests - Evaluation rules
data/evaluation_rules.json - Review materials
data/learning_materials.json
User records
- SQLite records
app/database.py - SQLite database
data/interncheck.db
Other components
- MAX user
- MAX platform
Connections 16
- MAX user → MAX platform: sends messages
README.md - MAX platform → Polling and dialogue: delivers events
README.md - Polling and dialogue → MAX platform: sends replies
app/main.py - Polling and dialogue → Input parsing: validates text
README.md - Polling and dialogue → Skill detection: detects skills
README.md - Skill detection → Input parsing: normalizes text
app/services/analyzer.py - Skill detection → Skill taxonomy: loads taxonomy
app/services/analyzer.py - Polling and dialogue → Test selection: chooses test
README.md - Test selection → Question banks: loads questions
README.md - Polling and dialogue → Question validation: validates test
app/main.py - Polling and dialogue → Scoring and thresholds: calculates result
app/main.py - Scoring and thresholds → Evaluation rules: loads thresholds
app/services/scoring.py - Polling and dialogue → Error explanations: builds review
README.md - Error explanations → Review materials: finds resources
README.md - Polling and dialogue → SQLite records: reads and writes
app/main.py - SQLite records → SQLite database: persists records
app/database.py