Files
social-graph/README.md
T
gitrusprusandCursor b668ee8507 Add network map UX and theme support.
Introduce network map view/components with filtering and positioning, expand contacts/map backend fields and migrations, and add a persistent light/dark theme toggle with graph label color updates for readability.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 13:24:48 +03:00

3.2 KiB
Raw Blame History

Social Graph Builder

Построитель социального графа: импорт контактов, визуализация связей, CRUD.

Стек

Слой Технология
Backend API Django 4.2 + Django REST Framework
База данных SQLite
Frontend Vue.js 3 + Vite
Граф vis-network
Состояние Pinia
Запуск Docker Compose

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

git clone <repo>
cd social-graph
docker compose up --build

API endpoints

Метод URL Описание
GET/POST /api/contacts/ Список / создание контактов
GET/PATCH/DELETE /api/contacts/{id}/ Контакт по ID
GET/POST /api/relations/ Список / создание связей
DELETE /api/relations/{id}/ Удалить связь
GET /api/graph/ Граф (nodes + edges для vis.js)
GET /api/relation-types/ Типы связей
POST /api/import/ Импорт CSV/JSON

Формат CSV для импорта

name,email,phone,organization,position,notes
Иван Иванов,ivan@example.com,+7-900-000-0001,ООО Ромашка,Директор,
Мария Петрова,maria@example.com,+7-900-000-0002,Газпром,Аналитик,

Формат JSON для импорта

[
  {"name": "Иван Иванов", "email": "ivan@example.com", "organization": "ООО Ромашка"},
  {"name": "Мария Петрова", "phone": "+7-900-000-0002"}
]

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

social-graph/
├── backend/
│   ├── config/          # Django settings, urls
│   ├── contacts/        # models, serializers, views, urls
│   ├── manage.py
│   ├── requirements.txt
│   └── Dockerfile
├── frontend/
│   ├── src/
│   │   ├── views/       # GraphView, ContactsView, ContactDetailView, ImportView
│   │   ├── components/  # ContactForm
│   │   ├── stores/      # Pinia store (contacts)
│   │   ├── router/      # Vue Router
│   │   ├── api.js       # Axios instance
│   │   └── App.vue
│   ├── vite.config.js
│   └── Dockerfile
└── docker-compose.yml

Запуск без Docker

Backend:

cd backend
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver

Frontend:

cd frontend
npm install
npm run dev

В vite.config.js прокси настроен на http://backend:8000.
При локальном запуске без Docker замените на http://localhost:8000.

Планируемые фичи (следующие итерации)

  • Авторизация (Django auth + JWT)
  • Теги/группы контактов
  • Экспорт в CSV/JSON
  • Поиск по организации и должности
  • История изменений контакта
  • Импорт из vCard (.vcf)
  • Уведомления / дни рождения