Каталог университетов Казахстана с информацией о программах, факультетах и стоимости обучения.
UniApp/
├── backend/ # Django API (Python)
│ ├── api/ # Основное приложение
│ │ ├── models.py # Модели базы данных
│ │ ├── views.py # Логика API
│ │ ├── serializers.py # Конвертация данных в JSON
│ │ ├── urls.py # Маршруты API
│ │ └── management/ # Команды (seed data)
│ ├── backend/ # Настройки Django
│ │ ├── settings.py # Конфигурация
│ │ └── urls.py # Главные маршруты
│ ├── manage.py # CLI Django
│ └── requirements.txt # Python зависимости
│
├── frontend/ # React приложение (JavaScript)
│ ├── src/
│ └── package.json
│
├── .gitignore
└── README.md
| Поле | Тип | Описание |
|---|---|---|
| name | CharField | Название университета |
| city | CharField | Город |
| description | TextField | Описание |
| founded_year | IntegerField | Год основания |
| logo | URLField | Ссылка на лого |
| website | URLField | Сайт |
| ranking | IntegerField | Рейтинг |
| student_count | IntegerField | Количество студентов |
| address | TextField | Адрес |
| phone | CharField | Телефон |
| EmailField |
| Поле | Тип | Описание |
|---|---|---|
| university | ForeignKey | Привязка к университету |
| name | CharField | Название факультета |
| Поле | Тип | Описание |
|---|---|---|
| university | ForeignKey | Привязка к университету |
| faculty | ForeignKey | Привязка к факультету |
| name | CharField | Название программы |
| degree | CharField | bachelor/master/phd |
| duration_years | IntegerField | Длительность обучения |
| language | CharField | Язык обучения (KZ/RU/EN) |
| tuition_fee | IntegerField | Стоимость в тенге/год |
| description | TextField | Описание |
University (1) ──→ (∞) Faculty
University (1) ──→ (∞) Program
Faculty (1) ──→ (∞) Program
Все эндпоинты только для чтения (GET). Данные добавляются через admin или seed.
| Метод | URL | Описание |
|---|---|---|
| GET | /api/universities/ |
Список всех университетов |
| GET | /api/universities/1/ |
Детали университета (+ факультеты, программы) |
| GET | /api/universities/1/faculties/ |
Факультеты университета |
| GET | /api/universities/1/programs/ |
Программы университета |
| GET | /api/programs/ |
Все программы |
| GET | /api/programs/?degree=bachelor |
Фильтр по степени |
| GET | /api/programs/?language=EN |
Фильтр по языку |
| GET | /api/search/?q=КБТУ |
Поиск |
| POST | /api/compare/ |
Сравнение университетов |
Получить все университеты:
GET http://127.0.0.1:8000/api/universities/
Получить детали университета:
GET http://127.0.0.1:8000/api/universities/1/
Поиск:
GET http://127.0.0.1:8000/api/search/?q=Назарбаев
Сравнение (POST):
POST http://127.0.0.1:8000/api/compare/
Body: {"ids": [1, 2, 3]}
# 1. Перейти в папку backend
cd backend
# 2. Создать виртуальное окружение
python3 -m venv venv
# 3. Активировать venv
source venv/bin/activate # Mac/Linux
venv\Scripts\activate # Windows
# 4. Установить зависимости
pip install -r requirements.txt
# 5. Создать .env файл
cp .env.example .env
# Добавить SECRET_KEY (спросить у Ismail)
# 6. Применить миграции
python3 manage.py migrate
# 7. Загрузить тестовые данные
python3 manage.py seed
# 8. Запустить сервер
python3 manage.py runserverAPI доступен: http://127.0.0.1:8000/api/
# 1. Перейти в папку frontend
cd frontend
# 2. Установить зависимости
npm install
# 3. Запустить
npm startПриложение: http://localhost:3000
cd backend
python3 manage.py seed# Создать админа
python3 manage.py createsuperuser
# Открыть http://127.0.0.1:8000/admin/Файл: backend/api/management/commands/seed.py
| Участник | Задача | Папка/Файлы |
|---|---|---|
| Backend Dev | API, Models | backend/api/ |
| Frontend Dev 1 | Страницы | frontend/src/pages/ |
| Frontend Dev 2 | Компоненты | frontend/src/components/ |
| Data/AI | Данные, AI | seed.py, AI интеграция |
# Получить последние изменения
git pull
# Сохранить изменения
git add .
git commit -m "Описание изменений"
git push
# ВАЖНО: всегда делайте git pull перед git push!| Файл | Что делает |
|---|---|
models.py |
Структура базы данных |
views.py |
Логика API (что возвращать) |
serializers.py |
Как конвертировать в JSON |
urls.py |
Какой URL → какая функция |
settings.py |
Настройки Django |
seed.py |
Тестовые данные |
- Django настроен
- Модели созданы
- API endpoints работают
- Тестовые данные есть
- Frontend страницы
- Подключение React к API
- UI/UX дизайн
- Сравнение университетов
- AI интеграция
"No module named django"
→ Активируй venv: source venv/bin/activate
"python не найден"
→ Используй python3 вместо python
"npm не найден" → Установи Node.js: https://nodejs.org
API возвращает пустой список
→ Запусти python3 manage.py seed
1.01.2026
Replace the existing "Установка и запуск" section with this:
- Python 3.8+
- Node.js 16+
- Docker Desktop (Download)
git clone <repository-url>
cd UniApp# Убедитесь что Docker Desktop запущен!
docker-compose up -d
# Проверить статус:
docker-compose ps
# Должно показать: uniapp_postgres Upcd backend
# Создать виртуальное окружение
python3 -m venv venv
source venv/bin/activate # Mac/Linux
# venv\Scripts\activate # Windows
# Установить зависимости
pip install -r requirements.txt
# Создать .env файл
cp .env.example .env
# Применить миграции
python3 manage.py migrate
# Загрузить тестовые данные
python3 manage.py seed
# Запустить сервер
python3 manage.py runserverAPI доступен: http://127.0.0.1:8000/api/
# В новом терминале
cd frontend
# Установить зависимости
npm install
# Запустить
npm startПриложение: http://localhost:3000
# Утро: Начало работы
docker-compose up -d # Запустить БД
cd backend && source venv/bin/activate
python manage.py runserver # Запустить Django
# В отдельном терминале:
cd frontend && npm start # Запустить React
# Вечер: Завершение работы
# Ctrl+C (остановить Django и React)
docker-compose down # Остановить БД# Сбросить данные
python3 manage.py flush
python3 manage.py seed
# Изменили models.py?
python3 manage.py makemigrations
python3 manage.py migrate
# Доступ к PostgreSQL
docker-compose exec db psql -U uniapp_user -d uniapp_dbdocker-compose down -v
docker-compose up -d
python3 manage.py migrate
python3 manage.py seed# Создать бэкап
docker-compose exec db pg_dump -U uniapp_user uniapp_db > backup.sql
# Восстановить
docker-compose exec -T db psql -U uniapp_user -d uniapp_db < backup.sqldocker-compose up -d # Запустить БД
docker-compose down # Остановить БД (сохранить данные)
docker-compose down -v # Остановить и удалить данные
docker-compose ps # Статус контейнеров
docker-compose logs -f db # Посмотреть логи
docker-compose restart # ПерезапуститьПроблема: "Port 5432 already in use"
# Остановить локальный PostgreSQL
brew services stop postgresql@15 # Mac
# Или через Services app (Windows)Проблема: "Cannot connect to database"
# Проверить что Docker запущен
docker-compose ps
# Если не запущен:
docker-compose up -dПроблема: "No such table"
python3 manage.py migrate
python3 manage.py seedПроблема: API возвращает []
python3 manage.py seed- GUI для БД: pgAdmin, DBeaver, TablePlus
⚠️ НЕ коммитить.envфайл! (уже в.gitignore)⚠️ Использоватьdocker-compose downБЕЗ-vчтобы сохранить данные- ✅ Делать
git pullперед началом работы - ✅ Регулярно делать бэкапы БД