Производственная практика. О прохождении учебной практики
Скачать 392.2 Kb.
|
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «ТЮМЕНСКИЙ ИНДУСТРИАЛЬНЫЙ университет» Институт сервиса и отраслевого управления ОТЧЕТ О ПРОХОЖДЕНИИ УЧЕБНОЙ ПРАКТИКИ Тип практики ТЕХНОЛОГИЧЕСКАЯ (ПРОЕКТНО-ТЕХНОЛОГИЧЕСКАЯ) Студента 2 курса группы МКМБ-20 по направлению 02.03.01 «Математика и компьютерные науки» направленность Математическое и компьютерное моделирование Маглёваного Богдана Александровича Наименование базы практики ООО «АБ-групп» Руководитель от базы практики Абрамюк В.И. Руководитель от кафедры бизнес-информатики и математики Чунихин С.А. СОДЕРЖАНИЕВВЕДЕНИЕ 3 ПОСТАНОВКА ЗАДАЧИ 4 Описание специальных понятий и необходимых инструментов 5 Результаты 6 ЗАКЛЮЧЕНИЕ 11 Список литературы 12 ПРИЛОЖЕНИЕ 13 ВВЕДЕНИЕПроизводственная практика является необходимым этапом формирования у обучающихся требуемых компетенций. Ее ценность заключается в приобретении новых и закреплении уже полученных знаний. В период прохождения производственной практики, обучающиеся должны закрепить теоретический материал, приобрести практические навыки. Цель – закрепление и углубление знаний и умений, полученных в процессе обучения, овладение системой первичных профессиональных умений, а также приобретение начального опыта самостоятельной профессиональной деятельности. Задачи: закрепление и углубление знаний, полученных обучающимися при изучении теоретических дисциплин; получение обучающимися общего представления об объектах профессиональной деятельности; изучение организационной структуры предприятия и действующей в нем системы управления; изучение действующих стандартов, должностных обязанностей, положений и инструкций, принятых в организации; выполнение правил трудового распорядка предприятия (организации); ознакомление с содержанием основных работ и исследований, выполняемых в организации по месту прохождения практики; выполнение задания, предусмотренного рабочей программой практики; ПОСТАНОВКА ЗАДАЧИЦель автоматизации информационных потоков складывается из увеличения показателей и результатов финансовой хозяйственной деятельности организации в связи с получением своевременной и качественной информации, направленная на принятие верного и точного управленческого решения. На сегодняшний день при уровне и развитии современных технологий, связанных с информационными потоками и управлением для предприятий перспективно внедрять в свою деятельность вычислительную технику и информационные системы нового поколения, которые обеспечивают точную и обширную обработку данных с автоматизированных рабочих мест, локальных сетей и профессиональных структур поддержки для принятия решения. В ходе прохождения практики была поставлена задача по автоматизации процесса записи клиентов. Реализовывать ее было решено посредством написания телеграмм-бота. Поставленная задача разделена на следующие этапы: Выбор языка программирования для реализации бота (Python) Выбор фреймворка для реализации бота конкретно в телеграмме (airogram, Telethon, telebot, pyrogram, informer, pyTelegramBotAPI) Изучение соответствующей документации и литературы по языку и его фреймворку Изучение документации и литературы для работы с базами данных Написание кода программы Тестирование бота Описание специальных понятий и необходимых инструментовДля реализации программы был выбран язык программирование Python. Разработка осуществлялась с помощью IDE PyCharm, которая включает в себя функциональный редактор Python, поддержку системы контроля версий, инструмент запуска тестов и графический отладчик, инструмент для навигации по коду. В качестве фреймворка для написания бота выбран – pyTelegramBotAPI (Telebot). pyTelegramBotAPI – фреймворк для создания телеграмм-ботов на языке Python. Включает различные методы такие как: отправка сообщений, отправка графических файлов, отправка видеофайлов, средств администрирования чатов, возможность для парсинга данных пользователей. Ссылки на документацию по фреймворку расположены в списке литературы. Для администрирования базы данных выбрана программа - SQLite3. SQLite3 - это быстрая и легкая встраиваемая однофайловая СУБД на языке C, которая не имеет сервера и позволяет хранить всю базу локально на одном устройстве. Для работы SQLite не нужны сторонние библиотеки или службы. Понятие «встраиваемый» означает, что СУБД не использует парадигму клиент-сервер. Движок SQLite —не отдельно работающий процесс, с которым взаимодействует программа, а библиотека. Программа компонуется с ней, и движок служит составной частью программы. В качестве протокола обмена применяются вызовы функций (API) библиотеки SQLite. РезультатыБыла изучена структура и основные виды деятельности предприятия, такие как: Торговля оптовая автомобильными деталями, узлами и принадлежностями Торговля оптовая компьютерами, периферийными устройствами к компьютерам и программным обеспечением Техническое обслуживание и ремонт легковых автомобилей и легких грузовых автотранспортных средств Результатом выполнения задачи стал работающий телеграмм-бот для автоматической записи клиентов в базу данных. Реализация функции кнопочного интерфейса бота: @bot.message_handler(commands=["start"]) def start(m, res=False): markup=types.ReplyKeyboardMarkup(resize_keyboard=True) item1=types.KeyboardButton("Записаться") item2=types.KeyboardButton("Контакты") markup.add(item1) markup.add(item2) Подключение БД: conn = sqlite3.connect('C:\My files\DB\Clients.db', check_same_thread=False) cursor = conn.cursor() def db_table_val(user_id: int, user_name: str, user_surname: str, username: str,fullname:str,phone:str, service_name:str): cursor.execute('INSERT INTO booking (user_id, user_name, user_surname, username,fullname,phone,service_name) VALUES (?, ?, ?, ?,?,?,?)', (user_id, user_name, user_surname, username,fullname,phone,service_name)) conn.commit() Реализация записи данных в БД: us_id = message.from_user.id us_name = message.from_user.first_name us_sname = message.from_user.last_name username = message.from_user.username fulln = FN phone_num = NUMB serv_nm = SN db_table_val(user_id=us_id, user_name=us_name, user_surname=us_sname, username=username, fullname=fulln, phone=phone_num, service_name=serv_nm) Реализация всплывающего окна кнопки «Контакты»: elif message.text.strip() == 'Контакты': answer = emoji.emojize(":house:")+"- г. Тюмень, ул. Рижская, д. 72 корп.3 \n " + emoji.emojize(":telephone:")+" - 89505103231" bot.send_message(message.chat.id, answer) bot.register_next_step_handler(message, start) Аккаунт бота создан посредством сервиса BotFather. BotFather – один из способов для регистрации, настройки и управления другими telegram-ботами. BotFather передает токен к аккаунту, через который непосредственно ведется работа. Принцип работы бота: клиент запускает телеграмм-бота через мессенджер, далее посредством интерфейса выбирает нужную ему функцию (Запись, просмотр контактов, уточнение заявки). В случае осуществления записи клиентом, заявка клиента заносится в базу данных, а также пересылается менеджеру в телеграмм. Также клиент в случае неверного ввода может не отправлять свою заявку, а составить новую. В заявке клиент указывает ФИО, контактный телефон, наименование услуги. Результат работы программы можно увидеть на Рисунках (1-3) Данные и структура базы данных представлены на Рисунках (4-5) Код программы расположен в приложении. Рисунок 1. Главное меню бота Рисунок 2. Пункт Контакты Рисунок 3. Функция записи Рисунок 4. Структура базы данных Рисунок 5. База данных ЗАКЛЮЧЕНИЕВ результате были достигнуты все планируемы цели и задачи: закрепление и углубление знаний и умений, полученных в процессе обучения, овладение системой первичных профессиональных умений, а также приобретение начального опыта самостоятельной профессиональной деятельности. закрепление и углубление знаний, полученных обучающимися при изучении теоретических дисциплин; изучение организационной структуры предприятия, действующих стандартов, должностных обязанностей, положений и инструкций, принятых в организации; выполнение правил трудового распорядка предприятия (организации); ознакомление с содержанием основных работ и исследований, выполняемых в организации; принятие участия в исследованиях и проектах, связанных с разработкой, анализом, внедрением и сопровождением информационных систем; усвоение приемов, методов и способов обработки, представления и интерпретации результатов проведенных практических исследований; получение профессиональных умений и навыков выполнения обязанностей на первичных должностях в области применения современного программного обеспечения, информационных систем и компьютерных технологий. Список литературы1. Лутц М. Программирование на Python, том I, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2011. – 992 с.2. Лафоре, Р. Объектно-ориентированное программирование в С++ / Р. Лафоре. - СПб.: Питер, 2019. - 128 c. 2. Гэддис Т. Начинаем программировать на Python. – 4-е изд.: Пер. с англ. – СПб.: БХВ-Петербург, 2019. – 768 с. 3. Свейгарт, Эл. Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих. Пер. с англ. — М.: Вильямc, 2016. – 592 с. 4. Документация по фреймворку Telebot [Электронный ресурс] - Режим доступа https://github.com/eternnoir/pyTelegramBotAPI - (Дата обращения 07.07.2022 г); ПРИЛОЖЕНИЕimport sqlite3 import telebot import emoji from telebot import types conn = sqlite3.connect('C:\My files\DB\Clients.db', check_same_thread=False) cursor = conn.cursor() def db_table_val(user_id: int, user_name: str, user_surname: str, username: str,fullname:str,phone:str, service_name:str): cursor.execute('INSERT INTO booking (user_id, user_name, user_surname, username,fullname,phone,service_name) VALUES (?, ?, ?, ?,?,?,?)', (user_id, user_name, user_surname, username,fullname,phone,service_name)) conn.commit() bot = telebot.TeleBot('5413159629:AAHieK0bNLkm339Y53OMzPF5-jmJCOwZfW8') global txt123 txt123 = "" global proverka proverka = 0 @bot.message_handler(commands=["start"]) def start(m, res=False): markup=types.ReplyKeyboardMarkup(resize_keyboard=True) item1=types.KeyboardButton("Записаться") item2=types.KeyboardButton("Контакты") markup.add(item1) markup.add(item2) bot.send_sticker(m.chat.id, 'CAACAgIAAxkBAAEQzXBiyXiYI-aPg0pXuxfmRxCT8XUGGwAC9AwAAsmkKUqt14TvU6ZpwykE') bot.send_message(m.chat.id, 'Нажми: \nЗаписаться — для онлайн записи\nКонтакты — для контактной информации ', reply_markup=markup) @bot.message_handler(content_types=["text"]) def handle_text(message): if message.text.strip() == 'Записаться' : bot.send_message(message.from_user.id, "Введите имя(ФИО):") bot.register_next_step_handler(message, get_name) elif message.text.strip() == 'Контакты': answer = emoji.emojize(":house:")+"- г. Тюмень, ул. Рижская, д. 72 корп.3 \n " + emoji.emojize(":telephone:")+" - 89505103231" bot.send_message(message.chat.id, answer) bot.register_next_step_handler(message, start) @bot.message_handler(content_types=['text']) def get_name(message): if message.text.strip() == 'Контакты': bot.register_next_step_handler(message, start) global txt123 global FN FN = message.text.strip() if proverka == 1: txt123 = '' txt123 += 'ФИО:' txt123 += message.text txt123 += ' ' bot.send_message(message.from_user.id, "Введите номер:") bot.register_next_step_handler(message, get_num) @bot.message_handler(content_types=['text']) def get_num(message): global NUMB NUMB = message.text.strip() if message.text.strip() == 'Контакты': bot.register_next_step_handler(message, start) global txt123 txt123 += 'Номер:' txt123 += message.text txt123 += " " bot.send_message(message.from_user.id, "Введите услугу:") bot.register_next_step_handler(message, get_serv) @bot.message_handler(content_types=['text']) def get_serv(message): if message.text.strip() == 'Контакты': bot.register_next_step_handler(message, start) global txt123 global SN SN = message.text.strip() txt123 += 'Услуга:' txt123 += message.text txt123 += " " emsg = "Заявка составлена: " + txt123+ " \n(Отправить заявку? Да/Нет)" bot.send_message(message.from_user.id, emsg ) bot.register_next_step_handler(message, ending) def ending(message): global txt123 if message.text.strip() == 'Контакты': bot.register_next_step_handler(message, start) if message.text.strip() == 'Нет': proverka = 1 txt123 = '' bot.send_message(message.from_user.id, "Введите команду /start для перезапуска") bot.register_next_step_handler(message, start) if message.text.strip() == 'Да': # Вставка ДБ us_id = message.from_user.id us_name = message.from_user.first_name us_sname = message.from_user.last_name username = message.from_user.username fulln = FN phone_num = NUMB serv_nm = SN db_table_val(user_id=us_id, user_name=us_name, user_surname=us_sname, username=username, fullname=fulln, phone=phone_num, service_name=serv_nm) # Отправка в ТГ оператору bot.send_message(558742396, txt123) # 1413828191 txt123 = '' ans2 = "Благодарим за обращение, надемся мы смогли решить ваш вопрос" bot.send_message(message.from_user.id, ans2) bot.send_sticker(message.chat.id, 'CAACAgIAAxkBAAEQzYZiyXrR7d6drGl_cxub4lOtKJn2xQAC5g4AAkFyKEraBMBMl5EVaSkE') txt123 = '' bot.polling(none_stop=True, interval=0) |