MathAI Calculator — это веб-приложение на Django, объединяющее классический калькулятор,
высшую математику и Google Gemini AI в одном элегантном интерфейсе.
Поддерживает аутентификацию пользователей, историю вычислений и полноценный ИИ-чат.
✨ Функции · 🛠️ Технологии · ⚙️ Установка · 🏗️ Архитектура · 🗺️ Планы
| Категория | Возможности |
|---|---|
| 🔢 Базовые вычисления | Сложение, вычитание, умножение, деление, скобки, проценты |
| 📐 Тригонометрия | sin, cos, tan, arcsin, arccos, arctan + гиперболические функции |
| 📈 Алгебра | Степени, корни, логарифмы (log, ln, log₂) |
| ∫ Высшая математика | Производные, интегралы, пределы — через специальный интерфейс |
| 📜 История | Автоматическое сохранение всех вычислений для каждого пользователя |
| 🤖 ИИ-чат (Gemini) | Пошаговые объяснения, помощь с задачами, поддержка LaTeX и Markdown |
| 👤 Профиль | Регистрация, вход, личный профиль с биографией |
| 🔐 JWT Auth | Токенная аутентификация через DRF SimpleJWT |
Встроенный чат с Google Gemini AI — это больше, чем просто ответы на вопросы:
- 💬 Объясняет решения — пошаговый разбор любой задачи
- 🧮 Рендеринг формул — ответы с LaTeX-формулами через MathJax
- 📝 Markdown-поддержка — красиво оформленные ответы с кодом и списками
- 🌐 Многоязычность — отвечает на языке вопроса (русский, английский, узбекский и др.)
- 💾 История чата — все диалоги сохраняются в БД и привязаны к аккаунту
Вы: "Объясни, как взять производную от sin(x²)"
ИИ: Используем правило цепочки: d/dx[sin(u)] = cos(u)·u',
где u = x². Тогда u' = 2x.
Итого: d/dx[sin(x²)] = cos(x²) · 2x
| Пакет | Версия | Назначение |
|---|---|---|
| Django | 6.0.2 | Основной веб-фреймворк |
| djangorestframework | 3.16.1 | REST API |
| djangorestframework-simplejwt | 5.5.1 | JWT-аутентификация |
| google-genai | >=0.4.0 | Google Gemini AI |
| django-environ | 0.13.0 | Управление переменными окружения |
| python-dotenv | >=1.0.0 | Загрузка .env файла |
| Pillow | 12.1.1 | Работа с изображениями |
- Python
>= 3.10 - pip
- Google Gemini API ключ (получить здесь)
# 1. Клонируйте репозиторий
git clone https://github.com/bositxonn/Calculator.git
cd Calculator/MathAI
# 2. Создайте и активируйте виртуальное окружение
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux / macOS
# 3. Установите зависимости
pip install -r requirements.txt
# 4. Настройте переменные окружения
copy .env.example .env # Windows
# cp .env.example .env # Linux / macOS
# Отредактируйте .env и укажите свои ключи
# 5. Примените миграции
python manage.py migrate
# 6. Создайте суперпользователя (опционально)
python manage.py createsuperuser
# 7. Запустите сервер
python manage.py runserverОткройте браузер: https://calculatorhandmade.pythonanywhere.com/
Создайте файл .env в папке MathAI/ (на основе .env.example):
# Django
SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=127.0.0.1,localhost
# Google Gemini AI
GEMINI_API_KEY=your_gemini_api_key_here
# CORS & CSRF (для продакшена)
CORS_ALLOWED_ORIGINS=http://localhost:3000
CSRF_TRUSTED_ORIGINS=https://yourdomain.com📦 MathAI/ ← Корень Django-проекта
├── 📁 calculator_project/ ← Настройки проекта
│ ├── settings.py # Конфигурация Django
│ ├── urls.py # Главный URL-роутер
│ └── wsgi.py / asgi.py
│
├── 📁 calculator/ ← Приложение: калькулятор
│ ├── models.py # CalculationHistory (история вычислений)
│ ├── views.py # Логика вычислений
│ ├── urls.py # URL-маршруты
│ └── utils.py # Вспомогательные функции
│
├── 📁 accounts/ ← Приложение: пользователи
│ ├── models.py # Profile, ChatMessage
│ ├── views.py # Регистрация, вход, профиль, чат
│ ├── forms.py # Формы регистрации и профиля
│ └── urls.py # URL-маршруты
│
├── 📁 templates/ ← HTML-шаблоны
│ ├── base.html # Базовый шаблон
│ ├── calculator/
│ │ ├── home.html # Главная страница калькулятора
│ │ ├── advanced.html # Высшая математика
│ │ └── history.html # История вычислений
│ └── accounts/
│ ├── chat.html # ИИ-чат (Gemini)
│ └── profile.html # Профиль пользователя
│
├── 📁 static/ ← Статические файлы (CSS, JS)
├── 📁 config/ ← Дополнительные конфиги
├── manage.py
├── requirements.txt
└── .env.example
User (встроенный Django)
├── Profile (1:1) — bio, created_at
├── ChatMessage (1:N) — message, response, created_at
└── CalculationHistory (1:N) — expression, result, calculation_type, created_at
Введите выражение в поле ввода на главной странице:
2 + 2 * (3 - 1) → 6
sqrt(144) → 12
sin(pi/2) → 1
log(100) → 2
Используйте раздел Advanced для сложных вычислений:
# Производная
diff(x^3 + 2*x, x) → 3x² + 2
# Интеграл
integrate(sin(x), x) → -cos(x) + C
# Предел
limit(sin(x)/x, x, 0) → 1
Зайдите в раздел Chat и задайте вопрос на любом языке:
"Помоги решить систему уравнений: x+y=5, 2x-y=1"
"What is the derivative of e^x?"
"Integralni tushuntir: ∫x²dx"
- Базовые арифметические операции
- Тригонометрические и логарифмические функции
- История вычислений с привязкой к пользователю
- ИИ-чат на базе Google Gemini
- JWT-аутентификация (DRF)
- Рендеринг LaTeX-формул (MathJax)
- Профиль пользователя
- 📊 Построение графиков функций
- 📱 Мобильное приложение
- 🔗 Общий доступ к истории по ссылке
- 🐘 PostgreSQL в продакшене
- 🐳 Docker + docker-compose
Вклад приветствуется! Вот как можно помочь:
- 🍴 Сделайте Fork репозитория
- 🌿 Создайте ветку:
git checkout -b feature/amazing-feature - 💾 Зафиксируйте изменения:
git commit -m 'Add amazing feature' - 📤 Отправьте ветку:
git push origin feature/amazing-feature - 🔃 Откройте Pull Request
Распространяется под лицензией MIT. Подробности в файле LICENSE.
- Google Gemini — AI-движок для чата
- Django — мощный Python веб-фреймворк
- DRF SimpleJWT — JWT-аутентификация
- MathJax — рендеринг математических формул