Spaces:
Sleeping
Sleeping
| """Main Flask application for Analytics Module""" | |
| from flask import Flask | |
| from flask_cors import CORS | |
| from config import Config | |
| # Initialize Flask app | |
| app = Flask(__name__) | |
| app.config.from_object(Config) | |
| CORS(app) | |
| # Register blueprints | |
| from routes.students import students_bp | |
| from routes.scoring import scoring_bp | |
| from routes.domain import domain_bp | |
| app.register_blueprint(students_bp, url_prefix='/api/analytics') | |
| app.register_blueprint(scoring_bp, url_prefix='/api/analytics') | |
| app.register_blueprint(domain_bp, url_prefix='/api/analytics') | |
| # Health check with database status | |
| def health_check(): | |
| from database.db import get_db_or_none, get_db_error, get_storage_mode | |
| db = get_db_or_none() | |
| db_status = 'connected' if db is not None else 'disconnected' | |
| db_error = get_db_error() | |
| storage_mode = get_storage_mode() | |
| return { | |
| 'status': 'healthy' if db else 'degraded', | |
| 'service': 'analytics-api', | |
| 'storage_mode': storage_mode, # 'supabase' or 'local' | |
| 'database': db_status, | |
| 'db_error': db_error if db_error else None | |
| }, 200 if db else 503 | |
| def home(): | |
| return { | |
| 'service': 'Student Profiling & Employability Scoring API', | |
| 'version': '1.0.0', | |
| 'endpoints': { | |
| 'students': '/api/analytics/students', | |
| 'personality': '/api/analytics/personality/<student_id>', | |
| 'text': '/api/analytics/text/<student_id>', | |
| 'score': '/api/analytics/score/<student_id>', | |
| 'leaderboard': '/api/analytics/leaderboard', | |
| 'domain': { | |
| 'available': '/api/analytics/domain/available', | |
| 'submit': '/api/analytics/students/<student_id>/domain-evidence', | |
| 'get': '/api/analytics/students/<student_id>/domain-evidence', | |
| 'delete': '/api/analytics/students/<student_id>/domain-evidence/<domain_type>' | |
| } | |
| } | |
| } | |
| if __name__ == '__main__': | |
| import os | |
| port = int(os.getenv('PORT', 7860)) # HuggingFace uses 7860 | |
| debug = os.getenv('DEBUG', 'False').lower() == 'true' | |
| print(f"π Analytics API starting on port {port}") | |
| print(f"π Scoring modules: Universal, Personality, Text, Domain (Tech/Business/Creative/Research)") | |
| print(f"π Base URL: http://0.0.0.0:{port}") | |
| app.run(host='0.0.0.0', port=port, debug=debug) |