A modern PyQt5-based microservice management application featuring an animated splash screen and comprehensive control interface for managing distributed services.
- Custom animated logo (GIF support)
- Real-time loading status updates
- Frameless, transparent design
- Fixed size (prevents window resizing)
- Auto-transitions to main application
- Start/Stop Services: Individual or bulk operations
- Auto-Start Configuration: Automatically launch critical services
- Real-time Status Monitoring: Live service state tracking
- Process Management: Safe termination and cleanup
- Service Validation: Automatic file existence checking
- Settings Dialog: Easy configuration editing
- Database Integration: PostgreSQL support (optional)
- Mock Mode: Database-free operation for development
- Flexible Configuration: JSON-style config management
- Responsive Layout: Splitter-based interface
- Status Logging: Real-time activity monitoring
- Color-coded Indicators: Visual service status (π’/π΄)
- Professional Styling: Modern flat design with hover effects
- Python: 3.8 or higher
- Operating System: Windows 10/11, Linux, or macOS
- QGIS Version: 3.22.16 (if integrating with QGIS)
- PostgreSQL: Optional (for database mode)
git clone <repository-url>
cd SplashScreenDB-master# Windows
python -m venv .venv
.\.venv\Scripts\Activate.ps1
# Linux/macOS
python3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txtRequired packages:
PyQt5>=5.15.0
psycopg2-binary>=2.9.0 # Optional: for PostgreSQL support
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser# Standard mode (no database required)
python claude_v4.py
# Database mode (requires PostgreSQL setup)
python claude_v4_with_db.py- The animated splash screen appears
- Loading status updates in real-time
- Main control panel opens automatically
- Microservices are auto-created if missing
SplashScreenDB-master/
βββ claude_v4.py # Main application (database-free)
βββ claude_v4_with_db.py # Full version with PostgreSQL
βββ claude_v3.py # Previous version
βββ claude_splash.py # Minimal splash screen
βββ gemini_splash.py # Alternative implementation
βββ -logo.gif # Animated logo file
βββ logo.png # Fallback static logo
βββ .venv/ # Virtual environment
βββ requirements.txt # Python dependencies
βββ README.md # This file
| File | Description | Database | UI Features |
|---|---|---|---|
claude_v4.py |
Primary application | None (Mock data) | Full UI + Animated splash |
claude_v4_with_db.py |
Production version | PostgreSQL | Full UI + Database integration |
claude_v3.py |
Legacy version | PostgreSQL | Basic UI |
claude_splash.py |
Minimal demo | None | Splash screen only |
- View Services: Left panel shows all configured microservices
- Service Status:
- π’ Green dot: Service running
- π΄ Red dot: Service stopped
- Individual Control:
- Select service β Click "
βΆοΈ Start Selected" or "βΉοΈ Stop Selected"
- Select service β Click "
- Bulk Operations:
- "π Start All": Launch all services
- "βΉοΈ Stop All": Terminate all services
- Real-time Log: Bottom panel shows service activity
- Timestamps: Each action is timestamped
- Process IDs: Shows PID for running services
- Error Handling: Displays failure messages
Click the "βοΈ Settings" button to access:
| Setting | Description | Example |
|---|---|---|
| App Name | Application title | Control Panel |
| App Version | Version identifier | 2.0.0 |
| Microservices | Comma-separated service files | auth_service.py,data_service.py |
| Auto Start | Services to launch automatically | auth_service.py,data_service.py |
| Log Level | Logging verbosity | INFO, DEBUG, ERROR |
| Max Workers | Thread pool size | 8 |
-
Replace the logo file:
# Replace with your animated GIF cp your-logo.gif -logo.gif -
Update the code (if needed):
# In load_logo() method logo_path = "your-custom-logo.gif"
-
Supported formats:
- GIF: Animated or static
- PNG/JPG: Static images (fallback)
For the full database version (claude_v4_with_db.py):
-
Install PostgreSQL
-
Create Database:
CREATE DATABASE myapp_db; CREATE USER postgres WITH PASSWORD 'password'; GRANT ALL PRIVILEGES ON DATABASE myapp_db TO postgres;
-
Update Connection Settings:
# In ConfigLoader class self.default_connection = { 'host': 'localhost', 'port': 5432, 'database': 'myapp_db', 'user': 'postgres', 'password': 'your_password' }
The application automatically creates:
CREATE TABLE config (
id SERIAL PRIMARY KEY,
key VARCHAR(255) UNIQUE NOT NULL,
value TEXT NOT NULL,
description TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Found invalid metadata in lib ... Invalid metadata version
Solution: These are harmless Qt warnings and don't affect functionality.
PostgreSQL connection failed
Solutions:
- Use
claude_v4.pyfor database-free operation - Check PostgreSQL service is running
- Verify connection credentials
- Ensure database exists
Missing microservice files: ['auth_service.py', ...]
Solution: The application automatically creates dummy service files.
cannot be loaded because running scripts is disabled
Solution:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser# Recreate virtual environment
rm -rf .venv # or rmdir /s .venv on Windows
python -m venv .venv
# Reactivate and reinstall dependenciesEnable detailed logging:
# Add to main() function
import logging
logging.basicConfig(level=logging.DEBUG)# Minimal splash screen demo
python claude_splash.py
# Full application (no database)
python claude_v4.py
# Full application (with PostgreSQL)
python claude_v4_with_db.py
# Legacy version
python claude_v3.py
# Alternative implementation
python gemini_splash.pyTemplate for new services:
# my_service.py
import time
import sys
def main():
print("Starting my_service...")
while True:
print("my_service is running...")
time.sleep(10)
if __name__ == "__main__":
main()- Add new UI components in
MainWindowclass - Extend configuration in the settings dialog
- Add service types by modifying the microservices list
- Customize splash screen by editing
SplashScreenclass
Modify the stylesheet constants:
# Primary colors
PRIMARY_BLUE = "#3498db"
SUCCESS_GREEN = "#27ae60"
ERROR_RED = "#e74c3c"
DARK_GRAY = "#2c3e50"# Splash screen size
SPLASH_WIDTH = 250
SPLASH_HEIGHT = 280
# Main window size
MAIN_WIDTH = 800
MAIN_HEIGHT = 600- Requires PowerShell execution policy configuration
- Virtual environment activation uses
.ps1scripts - Process termination uses Windows APIs
- Uses Unix process groups for service management
- Virtual environment activation uses shell scripts
- Supports SIGTERM/SIGKILL for graceful shutdown
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Test thoroughly with both database and mock modes
- Submit a pull request
- Follow PEP 8 guidelines
- Use type hints where appropriate
- Document all public methods
- Add docstrings for classes
This project is licensed under the MIT License - see the LICENSE file for details.
- PyQt5 for the GUI framework
- PostgreSQL for database support
- ** ** for project requirements and logo
For issues and questions:
- Create an issue on the repository
- Check the troubleshooting section above
- Review the code comments for implementation details
Version: 2.0.0
Last Updated: 2024
Compatibility: Python 3.8+, PyQt5 5.15+, QGIS 3.22.16