from flask import Flask, request, jsonify, send_from_directory from flask_cors import CORS import os import psycopg2 app = Flask(__name__) CORS(app) UPLOAD_FOLDER = "uploads" os.makedirs(UPLOAD_FOLDER, exist_ok=True) shared_notes = [] # PostgreSQL connection conn = psycopg2.connect( host="postgres", database="smartshare", user="postgres", password=os.getenv("DB_PASSWORD") ) @app.route('/') def home(): return jsonify({ "message": "Backend is running" }) @app.route('/upload', methods=['POST']) def upload_file(): if 'file' not in request.files: return jsonify({ "error": "No file uploaded" }), 400 file = request.files['file'] if file.filename == '': return jsonify({ "error": "Empty filename" }), 400 filepath = os.path.join( UPLOAD_FOLDER, file.filename ) file.save(filepath) return jsonify({ "message": "File uploaded successfully" }) @app.route('/files', methods=['GET']) def list_files(): files = os.listdir(UPLOAD_FOLDER) return jsonify(files) @app.route('/download/', methods=['GET']) def download_file(filename): return send_from_directory( UPLOAD_FOLDER, filename, as_attachment=True ) @app.route('/db-test', methods=['GET']) def db_test(): cur = conn.cursor() cur.execute("SELECT version();") version = cur.fetchone() cur.close() return jsonify({ "database": "connected", "postgres_version": version[0] }) @app.route('/notes', methods=['GET']) def get_notes(): return jsonify(shared_notes) @app.route('/notes', methods=['POST']) def add_note(): data = request.json note = { "text": data.get("text") } shared_notes.append(note) return jsonify({ "message": "Note added" }) if __name__ == "__main__": app.run( host="0.0.0.0", port=5000 )