CodeShadow – Telegram
CodeShadow
76 subscribers
181 photos
11 videos
7 files
127 links
👋 Я Артемий — преподаватель Python и фрилансер.

💻 Показываю, как код и нейросети помогают зарабатывать и упрощать работу.

🚀 Делюсь проектами, опытом и лайфхаками из реальной практики.

✍🏻 Вопросы и идеи: @MifmanRu
Download Telegram
Решил запустить новую рубрику - обучение языку Python на кейсах 👨‍💻

💻💻💻

Пилотным запуском станет создание консольного приложения SafeBox - личный шифратор паролей)

Урок выйдет совсем скоро

Пиши свои идеи для рубрики в комментариях ⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
222
📼 Друзья, у нас вышел первый видеоурок по созданию шифратора «SafeBox» на Python 💻

Мы вместе разобрали синтаксис и шаг за шагом начали строить программу 👨‍💻

Хочу узнать ваше мнение ⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Please open Telegram to view this post
VIEW IN TELEGRAM
33
Знаешь, что самое сложное? Начать.
Первый заказ, первый скрипт, первая ошибка.
Ты думаешь: “я не готов”. Но никто не готов.
Готовность появляется в процессе.
22
💼 Окей, давайте поговорим начистоту о разнице между учебными и рабочими проектами!

Помню себя на первом курсе университета, когда казалось, что любые домашние задания и лабораторные работы похожи на настоящие бизнес-задачи: там тоже есть чёткое техзадание, да и поправки порой прилетают. Но потом наступила реальность…

Главное отличие – это деньги. Если на учёбе за проваленное задание самое страшное наказание – отправить тебя на доработку, то в бизнесе каждая ошибка дорого обходится. Сделал недостаточно хорошо – потерял деньги и репутацию перед заказчиком.

Но самое серьёзное изменение – это понимание ценности твоей работы. Когда пишешь код или решаешь проблему для учебного проекта, кажется, будто это пустые упражнения. А вот когда берёшься за реальный заказ, тут-то и приходит осознание, что твоя работа влияет на прибыль и успех бизнеса. Так что готовьте своё портфолио заранее, друзья мои!

Учёба даёт отличную базу, а опыт, полученный вовремя занятий, облегчает переход к профессиональным задачам. Просто всегда помните: каждый проект имеет значение и важен именно потому, что приносит пользу.
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Отлично! 🙂

Совсем скоро выйдет Кейс по простой HTML странице с разбором 💻
Please open Telegram to view this post
VIEW IN TELEGRAM
3
"Фриланс — это не про свободу бездельничать. Это про свободу выбирать, за что тебе платят."
1
💻 Кейс: простая HTML-страница со стилями

👋 Сегодня расскажу, как даже простая HTML-страничка может стать твоим кейсом для портфолио.

Представь, тебе пишет заказчик: “Нужна лендинг-страница визитка — чтобы было стильно, аккуратно и без лишних сложностей.”

Что ты делаешь? Берёшь базовый HTML, добавляешь немного CSS, и уже через пару часов показываешь первый результат.


🥃 Вот минимальный пример такой страницы:

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<noscript>Мой первый сайт</noscript>
<style>
body {
font-family: Arial, sans-serif;
background: #f5f5f5;
margin: 0;
padding: 0;
text-align: center;
}
header {
background: #222;
color: #fff;
padding: 20px;
}
.btn {
display: inline-block;
margin-top: 20px;
padding: 10px 20px;
background: #e63946;
color: #fff;
text-decoration: none;
border-radius: 5px;
}
.btn:hover {
background: #d62828;
}
</style>
</head>
<body>
<header>
<h1>Привет! Это мой сайт</h1>
<p>Здесь могла бы быть ваша реклама 🚀</p>
<a href="#" class="btn">Связаться</a>
</header>
</body>
</html>

👨‍💻 Код максимально простой, но уже выглядит как маленький лендинг.

Такие вещи часто заказывают на фрилансе, и даже на первых заказах это может быть твоим “боевым кейсом”.

🤵‍♂ В следующем посте расскажу, как запустить эту страницу у себя и показать заказчику.
Please open Telegram to view this post
VIEW IN TELEGRAM
32
💻 Кейс: запуск своей первой HTML-страницы

➡️Предыдущий пост

Привет! 👋 В прошлый раз мы собрали простую HTML-страницу со стилями.

Но код — это одно, а показать результат — совсем другое. Давай разберём, как всё это запустить у себя и показать клиенту.


1️⃣ Создай у себя на компьютере обычный текстовый файл и назови его index.html.

Скопируй туда весь код, который я показывал в прошлом посте.

2️⃣ Теперь два пути:

☀️Самый простой: открой файл двойным кликом — он сразу запустится в браузере.

☀️Более “правильный”: поставь любой локальный сервер (например, встроенный в Python).

🥃 Вот минимальный запуск через Python:

# сохрани файл как server.py
import http.server
import socketserver

PORT = 8000
handler = http.server.SimpleHTTPRequestHandler
httpd = socketserver.TCPServer(("", PORT), handler)

print("Сервер запущен на http://localhost:8000")
httpd.serve_forever()

Запусти его, и по адресу http://localhost:8000 увидишь свою страничку.

3️⃣ Чтобы показать заказчику — можно выгрузить на GitHub Pages или в любой бесплатный хостинг. Это даст ссылку, которую удобно скинуть.

И вот у тебя уже не просто кусок кода, а реально работающий сайт. А это и есть кейс для портфолио 🎯
Please open Telegram to view this post
VIEW IN TELEGRAM
4👏2
🥳🥳🥳 Новый проект в CodeShadow 🥳🥳🥳

Я запускаю серию постов про то, как Telegram-бот может стать твоим менеджером по продажам, записям на тренировки или занятия.
Без лишних теорий — только практика, код и готовые кейсы.

➡️ Что ждёт в серии #КлиентБот:

Пост 1 — почему бот лучше лендинга и как он превращает «зашёл → оставил контакт»
Пост 2 — делаем анкету: бот задаёт вопросы и запоминает ответы
Пост 3 — подключаем Google Sheets: база клиентов появляется сама

В итоге у тебя будет готовый Telegram-бот-воронка, который:

1. собирает заявки,
2. сохраняет их в таблицу,

📱 А также экономит время и деньги на менеджерах.

📞 Подписывайся и следи за тегом #КлиентБот — скоро первый пост!

#CodeShadow #TelegramBot #Python #ВоронкаПродаж
Please open Telegram to view this post
VIEW IN TELEGRAM
32
Один из моих учеников сказал: “я слишком стар для программирования”.
А потом сделал Telegram-бота за неделю.
Знаешь, что я ему ответил?
“Ты не старый. Ты просто наконец-то понял, что хочешь делать.”
🤩3🆒32
main1.py
3.4 KB
💎💎💎
Please open Telegram to view this post
VIEW IN TELEGRAM
3
😉 #КлиентБот: Почему бот лучше лендинга и как он превращает «зашёл → оставил контакт»

Привет! 👋
Серия стартовала! Telegram-бот как менеджер по продажам — без теории, только код из реального проекта. Разберём, как этот бот собирает лиды быстрее лендинга, и напишем базу: приветствие + меню услуг.


💡 Почему бот круче лендинга?

Лендинг: юзер читает текст, заполняет форму... и сливает (конверсия 2-5%).
Бот: диалог в чате — меню на кнопках, шаг за шагом до контакта. За 1-2 минуты!
Бонус: лимит 2 заявки/сутки, база в SQLite — всё локально, без облаков.
Итог: экономия на менеджерах, лиды в кармане. 🚀


👨‍💻 Код: База бота — init_db, /start и меню (main.py)

Старт проекта в файле main1.py. Токен из token.txt, БД на SQLite. Функция check_reset_user — для лимита. show_user_menu — приветствие с клавиатурой.


💻 Как это работает:

☀️init_db: Создаёт таблицы users (счётчик заявок) и requests (лиды).
☀️check_reset_user: Сбрасывает лимит каждые 24ч — новый юзер стартует с 0.
☀️/start: Очищает данные, показывает меню с ReplyKeyboard.

💎 Тести: python main.py, /start в боте — меню готово. Юзер "зашёл" — теперь ждём контакт!

➡️ Пост 2: Анкета — бот задаёт вопросы шаг за шагом. Подписывайся!
#CodeShadow #TelegramBot #Python #ВоронкаПродаж #КлиентБот
Please open Telegram to view this post
VIEW IN TELEGRAM
443
💼 #КлиентБот: Пост 2 — Делаем анкету: бот задаёт вопросы и запоминает ответы

➡️ПРЕДЫДУЩИЙ ПОСТ

👋Из Поста 1: юзер зашёл, увидел меню. Теперь воронка в действии — анкета как разговор. Бот спрашивает: услуга? Имя? Контакт? Сохраняет в user_data, ведёт до конца. Нет хаоса — только лиды.


👀 Почему анкета в боте — магия?

Форма на сайте: 10 полей, юзер заполнит 1.
Бот: шаг за шагом, кнопки для выбора — конверсия до 20-30%.
Лимит из Поста 1 + user_data = "память" без ошибок.


👨‍💻 Код: Анкета в действии — service_selection и handle_form (main.py)

Добавляем обработку сообщений. service_selection: Выбор услуги + чек лимита. handle_form: Шаги ввода (имя → контакт → info). Inline-кнопки для удобства.

Смотри main2.py ⬇️⬇️⬇️

🫥 Как это работает:

☀️service_selection: Чек лимита, сохраняет услугу в user_data.
☀️handle_form: Парсит текст по шагам — если услуга, то выбор; имя → кнопки контакта; info → согласие.
☀️contact_selection: Inline для VK/Telegram — юзер кликает, бот запоминает тип.

В main():
app.add_handler(CallbackQueryHandler(contact_selection, pattern="^contact_"))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_form))


⚡️Тести: Выбери услугу → введи имя → кликни Telegram → @username. Бот "помнит" всё!


➡️ Пост 3: Сохранение в БД + админ-панель.
#CodeShadow #TelegramBot #Python #ВоронкаПродаж #КлиентБот
Please open Telegram to view this post
VIEW IN TELEGRAM
42
main2.py
3.3 KB
💎💎💎
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Фриланс учит дисциплине.
Если ты не работаешь — ты не ешь.
Поэтому лучше завести привычку работать по чуть-чуть каждый день.
Даже 1 час в день даст результат через месяц.
321
💼 Кейс: мини-лендинг для клиента

Привет! 👋 Расскажу о небольшом, но показательном проекте.
Недавно ко мне обратился клиент с просьбой:

“Хочу простую страницу-визитку, чтобы человек понял, чем я занимаюсь, и мог быстро написать мне в Telegram.”


Без CMS, без форм регистрации — просто лёгкий мини-лендинг, который работает и на телефоне, и на ПК.

Главная задача — сделать быстро, красиво и понятно.
Вот с чего я начал👇

1️⃣Структура.

Создал базу на HTML: шапка, короткий текст, кнопка и футер.
Всего один файл — index.html 💻

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<noscript>Услуги по разработке</noscript>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>Привет! Я — веб-разработчик</h1>
<p>Создаю современные сайты и автоматизирую бизнес-процессы</p>
<a href="https://news.1rj.ru/str/username" class="btn">Связаться</a>
</header>
</body>
</html>


🚬 Просто и без лишних деталей.
После этого перешёл к стилям — именно они делают проект “живым”.
Please open Telegram to view this post
VIEW IN TELEGRAM
432
💻 #КлиентБот: Пост 3 — Сохраняем в SQLite: база клиентов + админ-панель

Привет! 👋

➡️ПРЕДЫДУЩИЙ ПОСТ

Меню (1) + анкета (2) — заявка собрана. Финал: consent сохраняет в SQLite, админ видит лиды через /check. База растёт локально — строчки в requests.db, готово к экспорту.


💻 Почему SQLite — идеал для старта?

1️⃣Нет API, облаков — просто файл БД.
2️⃣Лиды: ID, имя, контакт, статус. Админ завершает кнопкой.
3️⃣Масштаб: потом на Sheets/N8N, но здесь — чистый Python.


👨‍💻 Код: Финал анкеты + админ (consent, check_requests — main.py)

consent: UUID для ID, INSERT в requests, +1 к счётчику. Уведомление админу. check_requests: Показывает активные (status=1) с кнопкой "Завершить".

💎Смотри main3.py 💎

Как это работает:


☀️consent: Если "Согласен" — INSERT в requests (status=1), уведомление админу, очистка user_data.
☀️check_requests: SELECT активных, вывод с Inline-кнопкой.
☀️complete_request: DELETE по ID — заявка ушла.

В main():
app.add_handler(CallbackQueryHandler(consent, pattern="^consent_"))
app.add_handler(CommandHandler("check", check_requests))
app.add_handler(CallbackQueryHandler(complete_request, pattern="^complete_"))


☕️ Тести: Заполни анкету → согласие → /check (как админ) — увидишь лид, кликни "Завершить". База живая!


⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Серия готова — бот-менеджер на Python. Доработки? В комменты! 🚀
#CodeShadow #TelegramBot #Python #ВоронкаПродаж #КлиентБот
Please open Telegram to view this post
VIEW IN TELEGRAM
43
main3.py
3.6 KB
💎💎💎
Please open Telegram to view this post
VIEW IN TELEGRAM
2