A complete real-time notification system using PostgreSQL LISTEN/NOTIFY with a modern service-oriented architecture, multi-tenant support, and enhanced data generation.
notify_postgres/
βββ π services/ # Service-oriented architecture
β βββ π backend/ # Multi-tenant Flask API Service
β β βββ unified_app.py # Unified multi-tenant backend
β β βββ multi_tenant_app.py # Multi-tenant backend
β β βββ app.py # Legacy single-tenant backend
β β βββ start_comp_*.sh # Company-specific startup scripts
β β βββ requirements.txt # Backend dependencies
β β βββ config.ini # Service configuration
β β βββ Dockerfile # Container configuration
β βββ π frontend/ # React Frontend Service
β β βββ src/ # React source code
β β β βββ App.tsx # Main multi-tenant app
β β β βββ App.css # Modern glass-morphism styling
β β β βββ App_Company*.tsx # Company-specific components
β β βββ public/ # Static files
β β βββ package.json # Frontend dependencies
β β βββ config.ini # Service configuration
β β βββ Dockerfile # Container configuration
β βββ π notification-engine/ # Notification Engine Service
β β βββ unified_system.py # Unified multi-tenant system
β β βββ multi_tenant_system.py # Multi-tenant notification system
β β βββ notification_system.py # Core notification system
β β βββ config.ini # Service configuration
β β βββ Dockerfile # Container configuration
β βββ π database/ # Database Service
β β βββ multi_tenant_schema.sql # Multi-tenant database schema
β β βββ multi_tenant_generator.py # Enhanced Faker-based data generator
β β βββ schema.sql # Single-tenant database schema
β β βββ config.ini # Service configuration
β βββ multi_tenant_manager.sh # Multi-tenant service management
β βββ service-manager.sh # Service management script
βββ π scripts/ # Utility Scripts
βββ π tests/ # Test Files
βββ π docs/ # Documentation
βββ π docker-compose.yml # Docker orchestration
βββ π Makefile # Easy command shortcuts
βββ π MULTI_TENANT_README.md # Multi-tenant documentation
βββ π README.md # This file
# Start multi-tenant services
make start-multi
# Generate realistic test data
make generate
# Access the unified frontend
open http://localhost:3000# Start all services with Docker
docker-compose up -d
# View logs
docker-compose logs -f
# Stop all services
docker-compose down# Start all services
./services/service-manager.sh start all
# Start specific service
./services/service-manager.sh start backend
# Check status
./services/service-manager.sh status
# Stop all services
./services/service-manager.sh stop all# Setup database
make setup
# Start services individually
make backend
make frontend- TechFlow Solutions: Port 5001 (Technology industry)
- SocialMedia Pro: Port 5002 (Social Media Marketing)
- OmniChannel Corp: Port 5003 (E-commerce)
- Type: Flask API + WebSocket
- Features: Multi-tenant REST API, real-time notifications, company-specific routing
- Start:
make start-multior./services/multi_tenant_manager.sh start
- Port: 3000
- Type: React Web App with Multi-Tenant Support
- Features:
- Modern glass-morphism UI design
- Company switching with dynamic themes
- Real-time notifications with beautiful animations
- Analytics dashboard with comprehensive metrics
- WhatsApp-like interface for engagements
- Start:
./services/service-manager.sh start frontend
- Type: Background Service
- Features:
- Multi-tenant PostgreSQL LISTEN/NOTIFY processing
- Company-specific notification routing
- Real-time WebSocket event distribution
- Enhanced notification payloads
- Start:
./services/service-manager.sh start engine
- Port: 5432
- Type: PostgreSQL Database with Multi-Tenant Schemas
- Features:
- Separate schemas for each company
- Enhanced triggers and notification functions
- Realistic test data generation with Faker
- Comprehensive analytics tables
- Start:
./services/service-manager.sh start database
# Start services
./services/service-manager.sh start [service]
./services/service-manager.sh start all
./services/service-manager.sh start backend
./services/service-manager.sh start frontend
# Stop services
./services/service-manager.sh stop [service]
./services/service-manager.sh stop all
# Restart services
./services/service-manager.sh restart [service]
./services/service-manager.sh restart all
# Check status
./services/service-manager.sh status# Start all services
docker-compose up -d
# Start specific service
docker-compose up -d backend
# View logs
docker-compose logs -f backend
# Stop all services
docker-compose down
# Rebuild services
docker-compose build --no-cacheEach service has its own configuration file:
services/backend/config.ini- Backend service configservices/frontend/config.ini- Frontend service configservices/notification-engine/config.ini- Engine configservices/database/config.ini- Database config
- Unified Frontend: http://localhost:3000 (Company switching interface)
- TechFlow Solutions API: http://localhost:5001
- SocialMedia Pro API: http://localhost:5002
- OmniChannel Corp API: http://localhost:5003
- Database: localhost:5432
- β Service-oriented architecture
- β Multi-tenant support with separate schemas
- β Docker containerization
- β Unified notification system
- β Service management tools
- β Health checks and monitoring
- β Scalable and maintainable
- β Modern glass-morphism UI design
- β WhatsApp-like React interface
- β Company switching with dynamic themes
- β Real-time notifications with beautiful animations
- β Analytics dashboard with comprehensive metrics
- β Responsive design for all devices
- β Real-time PostgreSQL notifications
- β WebSocket connections with robust error handling
- β Multi-tenant notification routing
- β Enhanced notification payloads
- β No artificial API limits (shows ALL data)
- β Optimized database queries
- β Enhanced data generation with Faker
- β Realistic test data across multiple industries
- β Comprehensive analytics metrics
- β Multi-locale support (US, GB, CA, AU)
- β Rich metadata with location, device, browser info
- β Intelligent data distribution patterns
# Generate realistic test data for all companies
make generate
# Generate data for specific companies
make generate-alpha # TechFlow Solutions
make generate-beta # SocialMedia Pro
make generate-gamma # OmniChannel Corp
# Generate large datasets
make generate-large- Realistic User Data: International phone numbers, emails, social media handles
- Industry-Specific Content: Technology, Social Media Marketing, E-commerce
- Intelligent Distribution: Recent bias, weekday patterns, status distribution
- Rich Metadata: Location, device, browser, customer tier information
- Multi-Locale Support: US, GB, CA, AU locales for diverse data
# Test the system
make test
# Check service status
make status
# View logs
make logs# Start multi-tenant services
make start-multi
# Generate test data
make generate
# Access unified frontend
open http://localhost:3000# Use Docker Compose
docker-compose up -d# Check service status
./services/service-manager.sh status
# View service logs
docker-compose logs -f [service]- Multi-Tenant Setup - Detailed multi-tenant configuration
- Service Architecture - Comprehensive system documentation
- API Documentation - REST API endpoints and WebSocket events
Your PostgreSQL notification system now features a modern multi-tenant architecture with enhanced data generation and beautiful UI! π