Веб-приложение для управления сотрудниками и тестирования на базе Flask
wkr — это веб-приложение для управления персоналом и проведения тестирования сотрудников. Система поддерживает разделение ролей (HR-менеджер / Сотрудник), создание тестов, назначение заданий и отслеживание результатов.
- 🔐 Аутентификация: регистрация, вход, выход из системы
- 👥 Ролевая модель:
hr— создание сотрудников, тестов, назначение заданийemployee— прохождение тестов, просмотр результатов
- 📝 Управление тестами:
- Создание тестов с вопросами и правильными ответами
- Привязка вопросов к темам, настройка баллов
- 📊 Назначение и отслеживание:
- Назначение тестов сотрудникам
- Статусы:
assigned,in_progress,completed - Подсчёт баллов и фиксация времени завершения
- 🎓 Курсы: управление обучающими материалами (название, описание, уровень, теги, ссылка)
wkr/
├── app/ # Основной пакет приложения
│ ├── __init__.py # Фабрика приложения, регистрация blueprint'ов
│ ├── auth.py # Маршруты аутентификации
│ ├── hr.py # Маршруты для HR-менеджеров
│ ├── employee.py # Маршруты для сотрудников
│ ├── decorators.py # Декораторы @login_required, @role_required
│ ├── models.py # SQLAlchemy модели
│ ├── static/ # Статические файлы (CSS, JS)
│ ── templates/ # HTML-шаблоны
├── config.py # Конфигурация приложения
├── run.py # Точка входа
├── check_db.py # Утилита проверки БД
└── README.md # Документация
- Backend: Python 3.8+, Flask, Flask-SQLAlchemy
- База данных: MySQL (через PyMySQL)
- Frontend: HTML5, CSS3, JavaScript
- Шаблоны: Jinja2
git clone https://github.com/Limkor/wkr.git
cd wkrpython -m venv venv
# Для Windows:
venv\Scripts\activate
# Для Linux/Mac:
source venv/bin/activatepip install flask flask-sqlalchemy pymysql python-dotenv
# Или, если есть requirements.txt:
pip install -r requirements.txt
SECRET_KEY = 'your-secure-secret-key' # Замените на надёжный ключ
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://user:password@localhost:3306/vkr?charset=utf8mb4'
# Рекомендуется использовать переменные окружения:
# SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL')