WIP: local changes

This commit is contained in:
2026-04-08 15:29:52 +03:00
parent 07842540ba
commit 81ba6cd076
56 changed files with 2015 additions and 0 deletions
+107
View File
@@ -0,0 +1,107 @@
# Social Graph Builder
Построитель социального графа: импорт контактов, визуализация связей, CRUD.
## Стек
| Слой | Технология |
|------|-----------|
| Backend API | Django 4.2 + Django REST Framework |
| База данных | SQLite |
| Frontend | Vue.js 3 + Vite |
| Граф | vis-network |
| Состояние | Pinia |
| Запуск | Docker Compose |
## Быстрый старт
```bash
git clone <repo>
cd social-graph
docker-compose up --build
```
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000/api/
## 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 для импорта
```csv
name,email,phone,organization,position,notes
Иван Иванов,ivan@example.com,+7-900-000-0001,ООО Ромашка,Директор,
Мария Петрова,maria@example.com,+7-900-000-0002,Газпром,Аналитик,
```
## Формат JSON для импорта
```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:**
```bash
cd backend
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
```
**Frontend:**
```bash
cd frontend
npm install
npm run dev
```
> В `vite.config.js` прокси настроен на `http://backend:8000`.
> При локальном запуске без Docker замените на `http://localhost:8000`.
## Планируемые фичи (следующие итерации)
- [ ] Авторизация (Django auth + JWT)
- [ ] Теги/группы контактов
- [ ] Экспорт в CSV/JSON
- [ ] Поиск по организации и должности
- [ ] История изменений контакта
- [ ] Импорт из vCard (.vcf)
- [ ] Уведомления / дни рождения