init commit
This commit is contained in:
142
README.md
Normal file
142
README.md
Normal file
@@ -0,0 +1,142 @@
|
||||
# Women's Safety App - Backend Services
|
||||
|
||||
🚨 **Микросервисная архитектура для приложения безопасности женщин с поддержкой миллионов пользователей** 🚨
|
||||
|
||||
> Высокопроизводительная, масштабируемая система для экстренных уведомлений, геолокационных сервисов и управления женским здоровьем.
|
||||
|
||||
[](https://python.org)
|
||||
[](https://fastapi.tiangolo.com)
|
||||
[](https://postgresql.org)
|
||||
[](https://docker.com)
|
||||
|
||||
## 🏗️ Архитектура
|
||||
|
||||
### 🎯 Ключевые возможности:
|
||||
- **Мгновенные SOS-сигналы** с геолокационным таргетингом
|
||||
- **Умный поиск** пользователей в радиусе 1км
|
||||
- **Женский календарь** с ИИ-аналитикой
|
||||
- **Push-уведомления** в реальном времени
|
||||
- **JWT-аутентификация** и защита данных
|
||||
- **Горизонтальное масштабирование** для миллионов пользователей
|
||||
|
||||
### 🚀 Микросервисы:
|
||||
- **🔐 User Service** (8001): Профили, аутентификация, настройки
|
||||
- **🚨 Emergency Service** (8002): SOS-сигналы, экстренные уведомления
|
||||
- **📍 Location Service** (8003): Геолокация, поиск по радиусу
|
||||
- **📅 Calendar Service** (8004): Женское здоровье, цикл, аналитика
|
||||
- **🔔 Notification Service** (8005): Push-уведомления, FCM
|
||||
- **🌐 API Gateway** (8000): Маршрутизация, rate limiting, балансировка
|
||||
|
||||
### 🛠️ Технологический стек:
|
||||
- **Backend**: Python 3.11+ с FastAPI
|
||||
- **Database**: PostgreSQL 15+ с партиционированием
|
||||
- **Cache**: Redis 7+ для сессий и геоданных
|
||||
- **Messaging**: Kafka для event streaming
|
||||
- **Monitoring**: Prometheus + Grafana
|
||||
- **Deployment**: Docker + Docker Compose
|
||||
|
||||
## 🚀 Запуск
|
||||
|
||||
### Требования
|
||||
- Python 3.11+
|
||||
- Docker & Docker Compose
|
||||
- PostgreSQL 14+
|
||||
- Redis 7+
|
||||
|
||||
### Установка
|
||||
```bash
|
||||
# Клонирование и настройка
|
||||
git clone <repository>
|
||||
cd women-safety-backend
|
||||
|
||||
# Создание виртуального окружения
|
||||
python -m venv venv
|
||||
source venv/bin/activate # Linux/Mac
|
||||
# venv\Scripts\activate # Windows
|
||||
|
||||
# Установка зависимостей
|
||||
pip install -r requirements.txt
|
||||
|
||||
# Запуск инфраструктуры
|
||||
docker-compose up -d postgres redis kafka
|
||||
|
||||
# Миграции БД
|
||||
alembic upgrade head
|
||||
|
||||
# Запуск сервисов
|
||||
python -m uvicorn user_service.main:app --port 8001
|
||||
python -m uvicorn emergency_service.main:app --port 8002
|
||||
python -m uvicorn location_service.main:app --port 8003
|
||||
python -m uvicorn calendar_service.main:app --port 8004
|
||||
python -m uvicorn notification_service.main:app --port 8005
|
||||
python -m uvicorn api_gateway.main:app --port 8000
|
||||
```
|
||||
|
||||
## 📱 Основной функционал
|
||||
|
||||
### SOS Alert System
|
||||
- Мгновенная отправка сигналов тревоги
|
||||
- Геолокационный поиск пользователей в радиусе 1км
|
||||
- Массовые push-уведомления
|
||||
- Интеграция с службами экстренного реагирования
|
||||
|
||||
### Профили пользователей
|
||||
- Регистрация и аутентификация
|
||||
- Личные данные и настройки
|
||||
- Контакты для экстренной связи
|
||||
|
||||
### Женский календарь
|
||||
- Отслеживание менструального цикла
|
||||
- Уведомления и напоминания
|
||||
- Аналитика здоровья
|
||||
|
||||
## 🔧 Разработка
|
||||
|
||||
### Структура проекта
|
||||
```
|
||||
├── services/
|
||||
│ ├── user-service/
|
||||
│ ├── emergency-service/
|
||||
│ ├── location-service/
|
||||
│ ├── calendar-service/
|
||||
│ ├── notification-service/
|
||||
│ └── api-gateway/
|
||||
├── shared/
|
||||
│ ├── database/
|
||||
│ ├── messaging/
|
||||
│ └── utils/
|
||||
├── docker-compose.yml
|
||||
├── requirements.txt
|
||||
└── README.md
|
||||
```
|
||||
|
||||
### Команды разработки
|
||||
```bash
|
||||
# Тесты
|
||||
python -m pytest
|
||||
|
||||
# Линтеры
|
||||
black .
|
||||
flake8 .
|
||||
mypy .
|
||||
|
||||
# Миграции
|
||||
alembic revision --autogenerate -m "description"
|
||||
alembic upgrade head
|
||||
```
|
||||
|
||||
## 🔒 Безопасность
|
||||
- JWT аутентификация
|
||||
- Rate limiting
|
||||
- HTTPS only
|
||||
- Шифрование персональных данных
|
||||
- Валидация входных данных
|
||||
- CORS настройки
|
||||
|
||||
## 📊 Масштабируемость
|
||||
- Горизонтальное масштабирование сервисов
|
||||
- Партиционирование БД по географическим регионам
|
||||
- Кэширование критических данных
|
||||
- Асинхронная обработка
|
||||
- Circuit breaker pattern
|
||||
- Health checks и service discovery
|
||||
Reference in New Issue
Block a user