Главная страница
Навигация по странице:

  • «ТЮМЕНСКИЙ ИНДУСТРИАЛЬНЫЙ университет»

  • Цель

  • Задачи

  • Производственная практика. О прохождении учебной практики


    Скачать 392.2 Kb.
    НазваниеО прохождении учебной практики
    АнкорПроизводственная практика
    Дата13.12.2022
    Размер392.2 Kb.
    Формат файлаdocx
    Имя файлаMaglyovany.docx
    ТипОтчет
    #843471

    МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ Российской Федерации

    Федеральное государственное бюджетное

    образовательное учреждение высшего образования

    «ТЮМЕНСКИЙ ИНДУСТРИАЛЬНЫЙ университет»
    Институт сервиса и отраслевого управления

    ОТЧЕТ

    О ПРОХОЖДЕНИИ УЧЕБНОЙ ПРАКТИКИ
    Тип практики ТЕХНОЛОГИЧЕСКАЯ (ПРОЕКТНО-ТЕХНОЛОГИЧЕСКАЯ)

    Студента 2 курса группы МКМБ-20

    по направлению 02.03.01 «Математика и компьютерные науки»

    направленность Математическое и компьютерное моделирование
    Маглёваного Богдана Александровича

    Наименование базы практики

    ООО «АБ-групп»

    Руководитель от базы практики

    Абрамюк В.И.

    Руководитель от кафедры

    бизнес-информатики и математики

    Чунихин С.А.

    СОДЕРЖАНИЕ





    ВВЕДЕНИЕ 3

    ПОСТАНОВКА ЗАДАЧИ 4

    Описание специальных понятий и необходимых инструментов 5

    Результаты 6

    ЗАКЛЮЧЕНИЕ 11

    Список литературы 12

    ПРИЛОЖЕНИЕ 13


    ВВЕДЕНИЕ



    Производственная практика является необходимым этапом формирования у обучающихся требуемых компетенций. Ее ценность заключается в приобретении новых и закреплении уже полученных знаний. В период прохождения производственной практики, обучающиеся должны закрепить теоретический материал, приобрести практические навыки.

    Цель – закрепление и углубление знаний и умений, полученных в процессе обучения, овладение системой первичных профессиональных умений, а также приобретение начального опыта самостоятельной профессиональной деятельности.

    Задачи:

    1. закрепление и углубление знаний, полученных обучающимися при изучении теоретических дисциплин;

    2. получение обучающимися общего представления об объектах профессиональной деятельности;

    3. изучение организационной структуры предприятия и действующей в нем системы управления;

    4. изучение действующих стандартов, должностных обязанностей, положений и инструкций, принятых в организации;

    5. выполнение правил трудового распорядка предприятия (организации);

    6. ознакомление с содержанием основных работ и исследований, выполняемых в организации по месту прохождения практики;

    7. выполнение задания, предусмотренного рабочей программой практики;



    ПОСТАНОВКА ЗАДАЧИ



    Цель автоматизации информационных потоков складывается из увеличения показателей и результатов финансовой хозяйственной деятельности организации в связи с получением своевременной и качественной информации, направленная на принятие верного и точного управленческого решения. На сегодняшний день при уровне и развитии современных технологий, связанных с информационными потоками и управлением для предприятий перспективно внедрять в свою деятельность вычислительную технику и информационные системы нового поколения, которые обеспечивают точную и обширную обработку данных с автоматизированных рабочих мест, локальных сетей и профессиональных структур поддержки для принятия решения.

    В ходе прохождения практики была поставлена задача по автоматизации процесса записи клиентов.

    Реализовывать ее было решено посредством написания телеграмм-бота.

    Поставленная задача разделена на следующие этапы:

    1. Выбор языка программирования для реализации бота (Python)

    2. Выбор фреймворка для реализации бота конкретно в телеграмме (airogram, Telethon, telebot, pyrogram, informer, pyTelegramBotAPI)

    3. Изучение соответствующей документации и литературы по языку и его фреймворку

    4. Изучение документации и литературы для работы с базами данных

    5. Написание кода программы

    6. Тестирование бота

    Описание специальных понятий и необходимых инструментов



    Для реализации программы был выбран язык программирование Python.

    Разработка осуществлялась с помощью IDE PyCharm, которая включает в себя функциональный редактор Python, поддержку системы контроля версий, инструмент запуска тестов и графический отладчик, инструмент для навигации по коду.

    В качестве фреймворка для написания бота выбран – pyTelegramBotAPI (Telebot).

    pyTelegramBotAPI – фреймворк для создания телеграмм-ботов на языке Python. Включает различные методы такие как: отправка сообщений, отправка графических файлов, отправка видеофайлов, средств администрирования чатов, возможность для парсинга данных пользователей. Ссылки на документацию по фреймворку расположены в списке литературы.

    Для администрирования базы данных выбрана программа - SQLite3.

    SQLite3 - это быстрая и легкая встраиваемая однофайловая СУБД на языке C, которая не имеет сервера и позволяет хранить всю базу локально на одном устройстве. Для работы SQLite не нужны сторонние библиотеки или службы. Понятие «встраиваемый» означает, что СУБД не использует парадигму клиент-сервер. Движок SQLite —не отдельно работающий процесс, с которым взаимодействует программа, а библиотека. Программа компонуется с ней, и движок служит составной частью программы. В качестве протокола обмена применяются вызовы функций (API) библиотеки SQLite.

    Результаты



    Была изучена структура и основные виды деятельности предприятия, такие как:

    1. Торговля оптовая автомобильными деталями, узлами и принадлежностями

    2. Торговля оптовая компьютерами, периферийными устройствами к компьютерам и программным обеспечением

    3. Техническое обслуживание и ремонт легковых автомобилей и легких грузовых автотранспортных средств

    Результатом выполнения задачи стал работающий телеграмм-бот для автоматической записи клиентов в базу данных.

    Реализация функции кнопочного интерфейса бота:

    @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. закрепление и углубление знаний и умений, полученных в процессе обучения, овладение системой первичных профессиональных умений, а также приобретение начального опыта самостоятельной профессиональной деятельности.

    2. закрепление и углубление знаний, полученных обучающимися при изучении теоретических дисциплин;

    3. изучение организационной структуры предприятия, действующих стандартов, должностных обязанностей, положений и инструкций, принятых в организации;

    4. выполнение правил трудового распорядка предприятия (организации);

    5. ознакомление с содержанием основных работ и исследований, выполняемых в организации;

    6. принятие участия в исследованиях и проектах, связанных с разработкой, анализом, внедрением и сопровождением информационных систем;

    7. усвоение приемов, методов и способов обработки, представления и интерпретации результатов проведенных практических исследований;

    8. получение профессиональных умений и навыков выполнения обязанностей на первичных должностях в области применения современного программного обеспечения, информационных систем и компьютерных технологий.


    Список литературы



    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)


    написать администратору сайта