Skip to content

Repository files navigation

Mathtermind

Mathtermind — це платформа для самостійного вивчення математики та інформатики, що інтегрує елементи гейміфікації та адаптивного навчання для покращення користувацького досвіду.


Зміст


Огляд

Mathtermind поєднує навчальні модулі з елементами гейміфікації та адаптивного навчання, щоб забезпечити захоплюючий досвід для студентів, які вивчають математику та інформатику. Платформа розроблена як настільний додаток з використанням Python та PyQt для користувацького інтерфейсу, забезпечуючи плавний та чуйний досвід. Додаток зосереджений на самостійному навчанні, дозволяючи студентам прогресувати у власному темпі без необхідності втручання викладача.


Функції

  • Навчання у власному темпі: Навчайтеся самостійно у зручному для вас темпі без необхідності нагляду викладача.
  • Інтерактивні навчальні модулі: Індивідуальні уроки та вікторини з різних тем математики та інформатики.
    • Аналітика продуктивності: Відстежуйте прогрес своїх навичок та показники продуктивності з часом.
  • Комплексне відстеження прогресу: Моніторинг вашого навчального шляху з детальною аналітикою прогресу.
  • Система досягнень: Розблоковуйте значки та нагороди, опановуючи нові концепції та виконуючи завдання.
  • Функції гейміфікації:
    • Виклики та вікторини: Беріть участь у завданнях з обмеженим часом, щоб перевірити свої знання під тиском.
  • Навчальні інструменти:
    • Математичні інструменти: Вбудовані калькулятори, інструменти для побудови графіків та візуалізатори геометрії.
    • Інструменти інформатики: Редактори коду, візуалізатори алгоритмів, візуалізатори структур даних та симулятори логічних схем.
    • Інтерактивні візуалізації: Динамічні візуальні представлення складних концепцій.
  • Встановлення особистих цілей: Встановлюйте та відстежуйте щоденні, щотижневі та специфічні для курсу навчальні цілі.
  • Зручний інтерфейс користувача: Інтуїтивно зрозумілий інтерфейс, створений за допомогою PyQt для легкої навігації та доступності.

Початок роботи

Передумови

  • Python 3.9 або вище
  • Git
  • Make (опціонально, для використання команд Makefile)

Встановлення

Автоматичне налаштування (Рекомендовано)

  1. Клонуйте репозиторій:

    git clone https://github.com/yourusername/Mathtermind.git
    cd Mathtermind
  2. Використання Make (якщо доступно):

    make setup

    Або використання скрипту налаштування напряму:

    python setup.py

    Це:

    • Створить віртуальне середовище
    • Встановить залежності
    • Налаштує базу даних
    • Створить файл .env
  3. Активуйте віртуальне середовище:

    • На Windows:
      venv\Scripts\activate
    • На macOS/Linux:
      source venv/bin/activate
  4. Запустіть додаток:

    make run

    Або:

    python main.py

Ручне налаштування

  1. Клонуйте репозиторій:

    git clone https://github.com/yourusername/Mathtermind.git
    cd Mathtermind
  2. Налаштуйте віртуальне середовище:

    python -m venv venv
  3. Активуйте віртуальне середовище:

    • На Windows:
      venv\Scripts\activate
    • На macOS/Linux:
      source venv/bin/activate
  4. Встановіть залежності:

    pip install -r requirements.txt
  5. Створіть файл .env:

    cp .env.example .env
  6. Налаштуйте базу даних:

    python db_manage.py init
    python db_manage.py seed
  7. Запустіть додаток:

    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

Використання

Використання Make

Проєкт включає 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

Ручне використання

  1. Активуйте віртуальне середовище:

    source venv/bin/activate  # Або використовуйте venv\Scripts\activate на Windows
  2. Запустіть додаток:

    python main.py
  3. Створіть обліковий запис користувача та почніть навчання!


Участь у розробці

  1. Зробіть форк репозиторію.
  2. Створіть нову гілку (git checkout -b feature/YourFeature).
  3. Зробіть коміт ваших змін (git commit -m 'Add your feature').
  4. Відправте у гілку (git push origin feature/YourFeature).
  5. Відкрийте Pull Request.

Для більш детальної інформації, зверніться до CONTRIBUTING.md у папці /docs.


Ліцензія

Цей проєкт ліцензований за ліцензією MIT. Дивіться файл LICENSE для деталей.


About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages