// the find
jadijadi/sms_serial_verification
A small Flask + MySQL app that verifies product serial numbers by SMS one-time code, built as a paid freelance job for Schneider Electric Iran and released as a public, filmed step-by-step tutorial. It's aimed at Persian-speaking developers learning how a real freelance web project gets built, not at anyone needing a serial-verification service off the shelf.
Every step of the build is recorded on YouTube/Aparat, so you can watch the actual decisions (schema design, SMS gateway wiring, auth) rather than just read a diff. The scope is realistic and small: Flask app, MySQL backend, Kavenegar SMS API for sending/receiving codes, session auth — a genuinely representative slice of a client project rather than a toy demo. It ships the boring-but-necessary pieces that tutorials often skip: custom 401/404/500 pages, a DB status page, and a Liara (Iranian PaaS) deploy config.
No tests anywhere in the tree, and the whole thing lives in one app/main.py rather than being split into blueprints, so there's no real code structure to learn from past 'add a route here.' It's hard-wired to Kavenegar as the SMS provider with no abstraction, so it's not reusable if you're on a different gateway. It hasn't been touched since July 2024 and the README's setup instructions assume a specific virtualenv/MySQL local setup with no Docker/compose file, so getting it running outside that exact environment takes real digging.