Скриншот архива с проектом



Структура проекта

Задание
Разработать простое веб-приложение на языке Python позволяющее вести учет сотрудников организации. Приложение должно обладать базовым функционалом и выполнять базовые CRUD-операции.
Кроме того должна быть реализована простейшая система регистрации и авторизации. Приложение должно быть реализовано на фреймворке Flask.
Разработать телеграмм-бота, который будет взаимодействовать с веб-приложением и будет обладать следующим функционалом: получение сведений о сотрудниках и добавление новых сотрудников.
Функционал программы (приложение Flask)
- регистрация и авторизация пользователей
- добавление сотрудников
- редактирование сотрудников
- удаление сотрудников
- поиск сотрудника по фамилии
- Выгрузка списка сотрудников в эксель
- вывод данных на печать
- построение графика зарплат
Функционал программы (приложение телегракмм-бот)
- вывод информации о сотрудниках
- добавление новых сотрудников
Содержание отчета к программе

Фрагмент программного кода
from email_validator import validate_email, EmailNotValidError
from flask_wtf import FlaskForm
from wtforms import StringField, DateField, PasswordField, SubmitField, FileField
from wtforms.fields.numeric import FloatField
from wtforms.validators import DataRequired, EqualTo, ValidationError
class RegistrationForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
email = StringField('Email', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
confirm_password = PasswordField('Confirm Password', validators=[DataRequired(), EqualTo('password')])
submit = SubmitField('Sign Up')
def validate_email(self, email):
try:
# Валидация email
valid_email = validate_email(email.data)
email.data = valid_email['email'] # нормализованный адрес
except EmailNotValidError as e:
raise ValidationError(str(e))
class LoginForm(FlaskForm):
email = StringField('Email', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
submit = SubmitField('Login')
def validate_email(self, email):
try:
# Валидация email
valid_email = validate_email(email.data)
email.data = valid_email['email'] # нормализованный адрес
except EmailNotValidError as e:
raise ValidationError(str(e))
class EmployeeForm(FlaskForm):
staff_surname = StringField('Фамилия', validators=[DataRequired()])
staff_name = StringField('Имя', validators=[DataRequired()])
staff_photo = FileField('Фото')
staff_department = StringField('Отдел', validators=[DataRequired()])
staff_position = StringField('Должность', validators=[DataRequired()])
staff_salary = FloatField('Оклад', validators=[DataRequired()])
create_date = DateField('Дата приема на работу', format='%Y-%m-%d', validators=[DataRequired()])
class SearchForm(FlaskForm):
staff_surname = StringField('Фамилия')
submit = SubmitField('Поиск')
clear = SubmitField('Очистить поиск') # Новое поле для очистки
Пояснения по запуску программы
Смотри документ Инструкция по запуску.docx. В документе по шагам описывается порядок действий. Будьте внимательны! Версия интерпретатора Python должна совпадать! Это важно!
Телеграм
-