Complete v2.0 transformation: Production-ready Flask application

Major Changes:
- Migrated from prototype to production architecture
- Implemented modular Flask app with models/services/web layers
- Added Docker containerization with docker-compose
- Switched to Pipenv for dependency management
- Built advanced parser extracting 63 real activities from INDEX_MASTER
- Implemented SQLite FTS5 full-text search
- Created minimalist, responsive web interface
- Added comprehensive documentation and deployment guides

Technical Improvements:
- Clean separation of concerns (models, services, web)
- Enhanced database schema with FTS5 indexing
- Dynamic filters populated from real data
- Production-ready configuration management
- Security best practices implementation
- Health monitoring and API endpoints

Removed Legacy Files:
- Old src/ directory structure
- Static requirements.txt (replaced by Pipfile)
- Test and debug files
- Temporary cache files

Current Status:
- 63 activities indexed across 8 categories
- Full-text search operational
- Docker deployment ready
- Production documentation complete

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-11 00:23:47 +03:00
parent ed0fc0d010
commit 4f83b8e73c
44 changed files with 6600 additions and 3620 deletions

52
app/main.py Normal file
View File

@@ -0,0 +1,52 @@
#!/usr/bin/env python3
"""
Main application entry point for INDEX-SISTEM-JOCURI v2.0
"""
import os
import sys
from pathlib import Path
# Add parent directory to Python path
sys.path.insert(0, str(Path(__file__).parent.parent))
from app import create_app
from app.config import Config, ProductionConfig, DevelopmentConfig
def main():
"""Main application entry point"""
# Ensure directories exist
Config.ensure_directories()
# Determine configuration
flask_env = os.environ.get('FLASK_ENV', 'development')
if flask_env == 'production':
config_class = ProductionConfig
else:
config_class = DevelopmentConfig
# Create application
app = create_app(config_class)
# Print startup information
print("🚀 Starting INDEX-SISTEM-JOCURI v2.0")
print("=" * 50)
print(f"Environment: {flask_env}")
print(f"Debug mode: {app.config['DEBUG']}")
print(f"Database: {app.config['DATABASE_URL']}")
print("=" * 50)
# Run application
host = os.environ.get('FLASK_HOST', '0.0.0.0')
port = int(os.environ.get('FLASK_PORT', '5000'))
app.run(
host=host,
port=port,
debug=app.config['DEBUG'],
threaded=True
)
if __name__ == '__main__':
main()