Andrey Leshchenko's Work | ContraWork by Andrey Leshchenko
Andrey Leshchenko

Andrey Leshchenko

Web developer | Bots, automation & small web fixes

New to Contra

Andrey is building their profile!

Cover image for AURELIA: Next.js jewelry store with
AURELIA: Next.js jewelry store with an owner admin panel My own project. A demo jewelry store in Ukrainian: from the storefront to the owner's back office. The cover is a real screenshot of the admin panel on working data. What works: Catalog with product variants: size, plating, separate price and stock for each variant. Cart and checkout with an AUR-XXXX order code. The total is calculated on the server, so it cannot be swapped from the browser. Customer account: order history, favourites, saved searches. Promo codes: percentage or fixed amount, usage limit, and the total never goes negative. Admin: catalog, stock with a movement log, orders, customers, analytics, audit log. sitemap.xml, robots.txt, Product and Organization markup. Stack: Next.js 15, React 19, TypeScript, Prisma, PostgreSQL. Honest limits: payment and delivery here are manual. There is no real acquiring, no carrier API and no fiscalisation — those are the shop owner's separate decisions, not forgotten details.
1
11
Cover image for Nero: Discord publishing bot with
Nero: Discord publishing bot with PNG card rendering My own project. A bot for a community that keeps a chronicle of an invented world. Every piece goes draft → queue → scheduled publication. The cover shows real PNG cards the bot generated, not a design sample. What works: Card rendering to PNG: background, frame, caption, text wrapping that adapts to length. Scheduler: an item goes into the queue and is published at the given time. Send queue with retries, so a publication is not lost to a network failure. Audit log: who called which command and what changed. Permission levels: member, editor, administrator. Export and backups, with an integrity check before restore. Stack: Python, discord.py (http://discord.py), SQLite, Pillow. Tests: about 40 pytest files; scheduler, queue, audit and restore-from-backup are covered separately.
1
10
Cover image for Health Control: offline health tracker
Health Control: offline health tracker in vanilla JS My own project. A single-page app with no backend: everything is calculated in the browser and the data stays on the computer. The cover shows six real tabs. The records on them are demo data — I do not show my own. What works: Daily records: food, training, sleep, wellbeing, body measurements. Analytics: calories, protein and fibre, weekly totals, best and worst day. A fill-quality score. "Don't remember" counts as an honest gap and lowers the day's score instead of being disguised as a filled field. An RPG sheet: level, index, body map, progressions — so that keeping a diary is not boring. Trend charts for weight, measurements and activity. JSON export and import to move between browsers. Stack: HTML, CSS, JavaScript. No frameworks, no build step. Tracker data is never sent to a server: the working state lives in the browser's localStorage. The page does load external web fonts, so that claim is about user data, not about the total number of network requests.
1
11
Cover image for MacroLens AI: Flutter food logging
MacroLens AI: Flutter food logging app My own project. The Flutter base of an app that estimates the calories in a meal and keeps a food diary. The cover shows three real screens from a built release: the daily total, a meal recognition result, and manual entry. What works: Daily total: calories, protein, carbs and fat against the goals in the profile. Meal recognition with a confidence score and a from–to range instead of a single number. Editing items: change the weight, remove an item, add your own — the total recalculates. Manual entry for when recognition fails. Meal history by day. A free recognition limit and a paid subscription screen. Local data deletion with a confirmation step. Stack: Flutter, Dart. One codebase for iOS and Android. Data stays on the device. The app shows an estimate, not a medical recommendation — and says so in the interface.
0
9