Skip to content

Ismaillhan2007/UniApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 

Repository files navigation

UniApp — DataHub ВУЗов Казахстана

Каталог университетов Казахстана с информацией о программах, факультетах и стоимости обучения.


📁 Структура проекта

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

🗄️ Модели базы данных

University (Университет)

Поле Тип Описание
name CharField Название университета
city CharField Город
description TextField Описание
founded_year IntegerField Год основания
logo URLField Ссылка на лого
website URLField Сайт
ranking IntegerField Рейтинг
student_count IntegerField Количество студентов
address TextField Адрес
phone CharField Телефон
email EmailField Email

Faculty (Факультет)

Поле Тип Описание
university ForeignKey Привязка к университету
name CharField Название факультета

Program (Программа)

Поле Тип Описание
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

🔌 API Endpoints

Все эндпоинты только для чтения (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]}

🚀 Установка и запуск

Backend (Django)

# 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 runserver

API доступен: http://127.0.0.1:8000/api/

Frontend (React)

# 1. Перейти в папку frontend
cd frontend

# 2. Установить зависимости
npm install

# 3. Запустить
npm start

Приложение: http://localhost:3000


📝 Как добавить данные

Способ 1: Seed команда

cd backend
python3 manage.py seed

Способ 2: Django Admin

# Создать админа
python3 manage.py createsuperuser

# Открыть http://127.0.0.1:8000/admin/

Способ 3: Редактировать seed.py

Файл: 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 команды

# Получить последние изменения
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

📝 Add This Section to Your README.md

Replace the existing "Установка и запуск" section with this:


🚀 Установка и запуск

Предварительные требования

  • Python 3.8+
  • Node.js 16+
  • Docker Desktop (Download)

Быстрый старт

1️⃣ Клонировать репозиторий

git clone <repository-url>
cd UniApp

2️⃣ Запустить базу данных (Docker)

# Убедитесь что Docker Desktop запущен!
docker-compose up -d

# Проверить статус:
docker-compose ps
# Должно показать: uniapp_postgres   Up

3️⃣ Backend настройка

cd 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 runserver

API доступен: http://127.0.0.1:8000/api/

4️⃣ Frontend настройка

# В новом терминале
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_db

Полный сброс (удалить ВСЕ данные)

docker-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.sql

Полезные команды Docker

docker-compose up -d       # Запустить БД
docker-compose down        # Остановить БД (сохранить данные)
docker-compose down -v     # Остановить и удалить данные
docker-compose ps          # Статус контейнеров
docker-compose logs -f db  # Посмотреть логи
docker-compose restart     # Перезапустить

Troubleshooting

Проблема: "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 перед началом работы
  • Регулярно делать бэкапы БД

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •