Instruction file imported from caolaidhest/Old (
.cursor/rules/cursor_project_rules.mdc). Copyright stays with the author.
Project Overview
- Type: cursor_project_rules
- Description: # Технический отчет по выбору технологий для разработки приложений тестирования студентов
Отчет представляет результаты анализа технического задания для разработки двух взаимосвязанных приложений тестирования студентов. Учтены функциональные требования, UI/UX, рендеринг LaTeX формул и работа с изображениями. Рабочая среда – Windows, без доступа к интернету, разрешения: преподавательское (1280×960), студенческое (FullHD).
- Primary Goal: Разработать две взаимосвязанные приложения – одно для преподавателей с управлением лабораторными работами, вопросами (с поддержкой LaTeX через WpfMath и drag-and-drop изображениями) и встроенным TCP/IP сервером для мониторинга, и другое для студентов, обеспечивающее интуитивное тестирование с авто-сохранением ответов, актуальное для оффлайн-среды.
Project Structure
Framework-Specific Routing
-
Directory Rules:
- WPF (.NET 7/8): Использовать классическую MVVM-структуру с разделением между Views (XAML), ViewModels (C#) и Models. Все представления хранятся в папке
Views, логика – вViewModels, а данные и бизнес-логика – вModelsили общих библиотеках. - Пример: Для экрана входа используйте
Views/LoginView.xamlи соответствующийViewModels/LoginViewModel.cs. - Пример: Для панели преподавателя используйте
Views/TeacherDashboard.xamlи вложенные папки с детализированными представлениями, например,Views/Teacher/QuestionEditor.xaml. - Пример: Для студенческого интерфейса используйте
Views/StudentDashboard.xamlс отдельной структурой для тестовых модулей.
- WPF (.NET 7/8): Использовать классическую MVVM-структуру с разделением между Views (XAML), ViewModels (C#) и Models. Все представления хранятся в папке
Core Directories
-
Versioned Structure:
- TeacherApp: Содержит модули управления лабораторными работами, редактирования вопросов и серверный модуль с TCP/IP реализацией.
- StudentApp: Включает аутентификацию, выбор лабораторной работы и тестовый модуль с авто-сохранением ответов.
- Common: Библиотеки, сервисы (например, для работы с SQLite, Entity Framework Core, и автоматического обновления через update.exe), а также общие ресурсы (стили, анимации) для обеспечения Apple-like дизайна с мягкой мятной палитрой.
Key Files
-
Stack-Versioned Patterns:
- App.xaml & App.config: Основная настройка приложения для WPF (.NET 7/8) с ресурсами и темами, используемыми во всех модулях.
- MainWindow.xaml: Точка входа в приложение, с навигацией между модулями через MVVM.
- TeacherDashboard.xaml & StudentDashboard.xaml: Основные экраны для соответствующих ролей с адаптацией под заданные разрешения.
Tech Stack Rules
-
Version Enforcement:
- c_sharp: Следуйте рекомендованным стилям кодирования C# с использованием современных возможностей языка.
- dotnet@7/8: Применяйте специфику платформы .NET для оффлайн-приложений, используя лучшие практики по безопасности, управлению ресурсами, и производительности.
- wpf: Требуется реализация интерфейсов с использованием паттерна MVVM, ресурсных словарей для стилей и анимаций, соответствующих современному Apple-like дизайну.
- xaml: Используйте чистый, хорошо структурированный XAML с поддержкой адаптивного дизайна для разрешений 1280×960 и FullHD.
PRD Compliance
-
Non-Negotiable:
- "Приложения должны обеспечивать оффлайн-работу, поддержку автоматических обновлений через update.exe, встроенный TCP/IP сервер для преподавательского модуля с мониторингом до четырех подключений, а также локальное логирование ошибок и автоматическое резервное копирование SQLite базы данных." - Все вышеизложенные функциональные и технические требования, включая интеграцию с MS Office для вставки формул (Ctrl+C/Ctrl+V) и использование WpfMath для рендеринга LaTeX, должны быть строго соблюдены.
App Flow Integration
-
Stack-Aligned Flow:
-
WPF MVVM Flow:
-
Преподавательское приложение:
- При запуске открывается модуль аутентификации (
Views/LoginView.xaml). - После входа пользователя показывается
Views/TeacherDashboard.xamlс таблицей лабораторных работ. Двойной клик по работе открывает редактор вопросов (Views/Teacher/QuestionEditor.xaml) с поддержкой реального времени для LaTeX через WpfMath и управления изображениями. - Серверный модуль инициируется из панели управления и стартует встроенный TCP/IP сервер с логированием и уведомлениями об отключениях.
- При запуске открывается модуль аутентификации (
-
Студенческое приложение:
- При аутентификации открывается
Views/StudentDashboard.xaml, где пользователь выбирает лабораторную работу. - Активируется тестовый модуль с таймером, автоматическим выбором 5 вопросов и сохранением ответов локально.
- При аутентификации открывается
-
-
Best Practices
-
c_sharp
- Используйте строгие правила кодирования и именования.
- Применяйте асинхронное программирование для операций ввода-вывода.
- Поддерживайте SOLID-принципы для улучшения масштабируемости и тестируемости.
-
dotnet
- Используйте последние патчи и обновления для платформы .NET 7/8.
- Реализуйте эффективное управление памятью и оптимизацию для оффлайн-режима.
- Соблюдайте лучшие практики безопасности, особенно в работе с локальными базами данных.
-
visual_studio
- Организуйте проекты с четким разделением по функциональности (TeacherApp, StudentApp, Common).
- Используйте встроенные средства отладки и контроля версий.
- Интегрируйте AI-помощь для повышения качества кода.
-
wpf
- Применяйте MVVM-подход для разделения логики и представления.
- Используйте ресурсные словари и стили для единообразного оформления UI.
- Оптимизируйте работу с UI потоками для плавности анимаций.
-
xaml
- Структурируйте XAML файлы для переиспользования компонентов.
- Используйте шаблоны данных для эффективного связывания.
- Следуйте рекомендациям по адаптивному дизайну для различных разрешений.
-
data_grid
- Правильно настройте биндинги для отображения данных в реальном времени.
- Обеспечьте поддержку сортировки и фильтрации данных через MVVM.
- Регулярно валидируйте данные для предотвращения ошибок во время редактирования.
-
sqlite
- Используйте зашифрованные соединения и регулярное резервное копирование.
- Применяйте параметризованные запросы для предотвращения SQL-инъекций.
- Автоматизируйте планирование бэкапов для обеспечения сохранности данных.
-
entity_framework_core
- Используйте миграции для управления схемой базы данных.
- Применяйте асинхронные методы для повышения производительности.
- Следите за оптимизацией запросов для улучшения времени отклика.
-
wpf_math
- Используйте кэширование результатов для повышения производительности рендеринга LaTeX формул.
- Обеспечьте высокое качество рендеринга для поддержки динамического предпросмотра.
- Тщательно тестируйте на сложных формулах для исключения лагов.
-
tcp_ip
- Реализуйте обработку ошибок и автоматическое восстановление соединений.
- Логируйте все события подключения и отключения для мониторинга сети.
- Тестируйте серверное приложение на предмет одновременной поддержки нескольких подключений.
Rules
- Derive folder/file patterns directly from techStackDoc versions.
- Если приложение разработано на WPF: Обязательно придерживаться структуры MVVM с четким разделением между Views, ViewModels и Models.
- Разрабатывая серверный модуль, убедитесь, что реализация TCP/IP соответствует требованиям для обработки до четырех одновременных подключений с логированием и уведомлениями.
- Соблюдайте единый стиль Apple-like с мягкими анимациями и нежным мятным цветом для всех интерфейсов, адаптированных для разрешений 1280×960 (преподаватели) и FullHD (студенты).
- Never mix version patterns or architectural approaches; все компоненты должны соответствовать стандартам указанного технологического стека.