Скриншот архива с проектом
Структура проекта
Задание
Разработать простое веб-приложение на языке 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 должна совпадать! Это важно!
admin