Mathtermind — це платформа для самостійного вивчення математики та інформатики, що інтегрує елементи гейміфікації та адаптивного навчання для покращення користувацького досвіду.
- Огляд
- Функції
- Початок роботи
- Структура проєкту
- База даних
- Моделі бази даних
- Залежності
- Використання
- Участь у розробці
- Ліцензія
Mathtermind поєднує навчальні модулі з елементами гейміфікації та адаптивного навчання, щоб забезпечити захоплюючий досвід для студентів, які вивчають математику та інформатику. Платформа розроблена як настільний додаток з використанням Python та PyQt для користувацького інтерфейсу, забезпечуючи плавний та чуйний досвід. Додаток зосереджений на самостійному навчанні, дозволяючи студентам прогресувати у власному темпі без необхідності втручання викладача.
- Навчання у власному темпі: Навчайтеся самостійно у зручному для вас темпі без необхідності нагляду викладача.
- Інтерактивні навчальні модулі: Індивідуальні уроки та вікторини з різних тем математики та інформатики.
- Аналітика продуктивності: Відстежуйте прогрес своїх навичок та показники продуктивності з часом.
- Комплексне відстеження прогресу: Моніторинг вашого навчального шляху з детальною аналітикою прогресу.
- Система досягнень: Розблоковуйте значки та нагороди, опановуючи нові концепції та виконуючи завдання.
- Функції гейміфікації:
- Виклики та вікторини: Беріть участь у завданнях з обмеженим часом, щоб перевірити свої знання під тиском.
- Навчальні інструменти:
- Математичні інструменти: Вбудовані калькулятори, інструменти для побудови графіків та візуалізатори геометрії.
- Інструменти інформатики: Редактори коду, візуалізатори алгоритмів, візуалізатори структур даних та симулятори логічних схем.
- Інтерактивні візуалізації: Динамічні візуальні представлення складних концепцій.
- Встановлення особистих цілей: Встановлюйте та відстежуйте щоденні, щотижневі та специфічні для курсу навчальні цілі.
- Зручний інтерфейс користувача: Інтуїтивно зрозумілий інтерфейс, створений за допомогою PyQt для легкої навігації та доступності.
- Python 3.9 або вище
- Git
- Make (опціонально, для використання команд Makefile)
-
Клонуйте репозиторій:
git clone https://github.com/yourusername/Mathtermind.git cd Mathtermind -
Використання Make (якщо доступно):
make setup
Або використання скрипту налаштування напряму:
python setup.py
Це:
- Створить віртуальне середовище
- Встановить залежності
- Налаштує базу даних
- Створить файл
.env
-
Активуйте віртуальне середовище:
- На Windows:
venv\Scripts\activate
- На macOS/Linux:
source venv/bin/activate
- На Windows:
-
Запустіть додаток:
make run
Або:
python main.py
-
Клонуйте репозиторій:
git clone https://github.com/yourusername/Mathtermind.git cd Mathtermind -
Налаштуйте віртуальне середовище:
python -m venv venv
-
Активуйте віртуальне середовище:
- На Windows:
venv\Scripts\activate
- На macOS/Linux:
source venv/bin/activate
- На Windows:
-
Встановіть залежності:
pip install -r requirements.txt
-
Створіть файл .env:
cp .env.example .env
-
Налаштуйте базу даних:
python db_manage.py init python db_manage.py seed
-
Запустіть додаток:
python main.py
Mathtermind/
│
├── src/
│ ├── ui/ # Компоненти користувацького інтерфейсу
│ ├── db/ # Моделі та операції бази даних
│ ├── services/ # Логіка додатку та алгоритми
│ └── tests/ # Тестовий набір
│
├── docs/ # Документація
│ ├── requirements.md
│ ├── architecture.md
│ └── design_docs/
│
├── assets/ # Статичні ресурси
│ ├── images/
│ ├── fonts/
│ ├── audio/
│ └── stylesheets/
│
├── README.md
└── requirements.txt
Mathtermind використовує SQLite для зберігання даних, з SQLAlchemy як ORM та Alembic для міграцій бази даних. Файл бази даних зберігається в директорії data.
Для детальної інформації про управління базою даних, див. DATABASE.md.
Проєкт включає інструмент управління базою даних (db_manage.py), який надає інтерфейс командного рядка для поширених операцій з базою даних:
# Ініціалізувати базу даних з останньою схемою
python db_manage.py init
# Запустити всі очікуючі міграції
python db_manage.py migrate
# Заповнити базу даних тестовими даними
python db_manage.py seed
# Скинути базу даних (видалити всі таблиці та створити заново)
python db_manage.py reset
# Показати поточний статус міграції
python db_manage.py status
# Створити нову міграцію
python db_manage.py create_migration "Опис змін"Mathtermind використовує базу даних PostgreSQL з наступними основними моделями:
- User: Зберігає інформацію про студента, метрики прогресу та дані аутентифікації.
- Course: Містить навчальні модулі з тем математики та інформатики.
- Lesson: Окремі навчальні одиниці в рамках курсів.
- Content: Уніфікована модель контенту з спеціалізованими підтипами:
- TheoryContent: Пояснювальний текст та медіа для концепцій.
- ExerciseContent: Практичні вправи для закріплення.
- AssessmentContent: Формальні оцінювання та вікторини.
- InteractiveContent: Інтерактивні елементи, такі як симуляції.
- UserContentProgress: Відстежує прогрес користувача через окремі елементи контенту.
- LearningTool: Базова модель для навчальних інструментів з спеціалізованими підтипами:
- MathTool: Математичні інструменти, такі як калькулятори та утиліти для побудови графіків.
- InformaticsTool: Інструменти програмування та візуалізації алгоритмів.
- UserToolUsage: Записує, як користувачі взаємодіють з навчальними інструментами.
- Achievement: Елементи гейміфікації для винагороди за навчальні досягнення.
- PersonalBest: Відстежує особисті найкращі результати для самовдосконалення.
- LearningGoal: Визначені користувачем навчальні цілі та завдання.
- LearningRecommendation: Персоналізовані рекомендації для навчальних шляхів.
- LearningSession: Записи окремих навчальних сесій.
- StudyStreak: Відстежує послідовність у навчальних звичках.
- Resource: Навчальні матеріали, такі як відео, документи та посилання.
- Tag: Система категоризації для курсів та уроків.
База даних розроблена для підтримки адаптивного навчання шляхом відстеження продуктивності користувача, сильних та слабких сторін для персоналізації навчального досвіду.
- SQLAlchemy: ORM для операцій з базою даних.
- PyQt5: Для побудови графічного інтерфейсу користувача.
- SQLite: База даних для зберігання даних користувача та навчального контенту.
- scikit-learn: Для функцій машинного навчання в адаптивному навчанні.
- sympy: Для символьної математики та обчислень.
- matplotlib: Для візуалізацій та графіків у навчальних модулях.
Встановіть всі залежності через:
pip install -r requirements.txtПроєкт включає Makefile з ярликами для поширених операцій:
# Налаштувати проєкт
make setup
# Запустити додаток
make run
# Очистити тимчасові файли та кеші
make clean
# Запустити тести
make test
# Запустити інструменти лінтингу
make lint
# Операції з базою даних
make db-init # Ініціалізувати базу даних
make db-seed # Заповнити базу даних тестовими даними
make db-reset # Скинути базу даних
make db-migrate # Запустити міграції бази даних
make db-status # Показати статус міграції бази даних
# Показати всі доступні команди
make help-
Активуйте віртуальне середовище:
source venv/bin/activate # Або використовуйте venv\Scripts\activate на Windows
-
Запустіть додаток:
python main.py
-
Створіть обліковий запис користувача та почніть навчання!
- Зробіть форк репозиторію.
- Створіть нову гілку (
git checkout -b feature/YourFeature). - Зробіть коміт ваших змін (
git commit -m 'Add your feature'). - Відправте у гілку (
git push origin feature/YourFeature). - Відкрийте Pull Request.
Для більш детальної інформації, зверніться до CONTRIBUTING.md у папці /docs.
Цей проєкт ліцензований за ліцензією MIT. Дивіться файл LICENSE для деталей.