Files
pokemon-stock-checker/dashboard/app.py
T

83 lines
1.9 KiB
Python

"""
Flask dashboard for Pokemon Stock Monitor.
Provides web UI for stats visualization and favorites management.
"""
import os
import sys
from pathlib import Path
# Add parent directory to path for imports
sys.path.insert(0, str(Path(__file__).parent.parent))
from flask import Flask, render_template, jsonify, request
from flask_cors import CORS
from src.database import get_database
from src.favorites import get_favorites_manager
# Handle both direct execution and package import
try:
from .api import api_bp
except ImportError:
from api import api_bp
# Create Flask app
app = Flask(__name__)
CORS(app)
# Register API blueprint
app.register_blueprint(api_bp, url_prefix='/api')
@app.route('/')
def dashboard():
"""Main dashboard page"""
return render_template('index.html')
@app.route('/products')
def products_page():
"""Products listing page"""
return render_template('index.html', page='products')
@app.route('/news')
def news_page():
"""News aggregation page"""
return render_template('index.html', page='news')
@app.route('/analytics')
def analytics_page():
"""Analytics page"""
return render_template('index.html', page='analytics')
@app.route('/favorites')
def favorites_page():
"""Favorites management page"""
return render_template('index.html', page='favorites')
@app.route('/settings')
def settings_page():
"""Settings page"""
return render_template('index.html', page='settings')
@app.route('/users')
def users_page():
"""Users management page"""
return render_template('index.html', page='users')
def run_dashboard(host: str = '0.0.0.0', port: int = 5000, debug: bool = False):
"""Run the dashboard server"""
print(f"Starting Pokemon Stock Monitor Dashboard on http://{host}:{port}")
app.run(host=host, port=port, debug=debug, threaded=True)
if __name__ == '__main__':
run_dashboard(debug=True)