init commit

This commit is contained in:
2025-09-25 08:05:25 +09:00
commit 4d7551d4f1
56 changed files with 5977 additions and 0 deletions

142
README.md Normal file
View File

@@ -0,0 +1,142 @@
# Women's Safety App - Backend Services
🚨 **Микросервисная архитектура для приложения безопасности женщин с поддержкой миллионов пользователей** 🚨
> Высокопроизводительная, масштабируемая система для экстренных уведомлений, геолокационных сервисов и управления женским здоровьем.
[![Python](https://img.shields.io/badge/Python-3.11+-blue.svg)](https://python.org)
[![FastAPI](https://img.shields.io/badge/FastAPI-0.104+-green.svg)](https://fastapi.tiangolo.com)
[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15+-blue.svg)](https://postgresql.org)
[![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](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