from flask import Flask, render_template_string, request, redirect, url_for, session import os import platform app = Flask(__name__) app.secret_key = "mini_os_secret_key" # ---------------- LOGIN PAGE ---------------- # login_page = """ Mini OS Login

Mini Python OS



Default Login: admin / 1234

{{error}}

""" # ---------------- DASHBOARD ---------------- # dashboard_page = """ Mini OS Desktop

Mini Python OS Desktop



""" # ---------------- FILE EXPLORER ---------------- # files_page = """

File Explorer


Back """ # ---------------- NOTEPAD ---------------- # notepad_page = """

Notepad



{{msg}}


Back """ # ---------------- CALCULATOR ---------------- # calculator_page = """

Calculator

Result: {{result}}


Back """ # ---------------- SYSTEM INFO ---------------- # system_page = """

System Info

System: {{system}}
Node: {{node}}
Release: {{release}}
Version: {{version}}
Machine: {{machine}}
Processor: {{processor}}

Back """ # ---------------- ROUTES ---------------- # @app.route("/", methods=["GET", "POST"]) def login(): error = "" if request.method == "POST": username = request.form.get("username") password = request.form.get("password") if username == "admin" and password == "1234": session["user"] = username return redirect(url_for("dashboard")) # FIXED REDIRECT else: error = "Invalid username or password" return render_template_string(login_page, error=error) @app.route("/dashboard") def dashboard(): if "user" not in session: return redirect(url_for("login")) return render_template_string(dashboard_page) @app.route("/files") def files(): if "user" not in session: return redirect(url_for("login")) file_list = os.listdir(".") return render_template_string(files_page, files=file_list) @app.route("/notepad", methods=["GET", "POST"]) def notepad(): if "user" not in session: return redirect(url_for("login")) msg = "" if request.method == "POST": text = request.form.get("text") with open("note.txt", "w", encoding="utf-8") as f: f.write(text) msg = "File saved as note.txt" return render_template_string(notepad_page, msg=msg) @app.route("/calculator", methods=["GET", "POST"]) def calculator(): if "user" not in session: return redirect(url_for("login")) result = "" if request.method == "POST": try: exp = request.form.get("exp") result = eval(exp) except: result = "Error" return render_template_string(calculator_page, result=result) @app.route("/system") def system(): if "user" not in session: return redirect(url_for("login")) return render_template_string(system_page, system=platform.system(), node=platform.node(), release=platform.release(), version=platform.version(), machine=platform.machine(), processor=platform.processor() ) @app.route("/logout") def logout(): session.clear() return redirect(url_for("login")) # ---------------- RUN APP ---------------- # if __name__ == "__main__": app.run(host="0.0.0.0", port=7860, debug=True)