Spaces:
Sleeping
Sleeping
File size: 2,432 Bytes
3d015cd c1adf10 3d015cd 2a317a3 c1adf10 2a317a3 c1adf10 2a317a3 c1adf10 3d015cd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | """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
@app.route('/health', methods=['GET'])
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
@app.route('/', methods=['GET'])
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) |