from flask import Flask, render_template, request, redirect, url_for, session app = Flask(__name__) app.secret_key = "supersecretkey" # replace with env var in production # Simple in-memory user store (replace with DB in production) users = {"admin": "password123"} @app.route("/", methods=["GET", "POST"]) def login(): if request.method == "POST": username = request.form["username"] password = request.form["password"] if username in users and users[username] == password: session["user"] = username return redirect(url_for("dashboard")) else: return render_template("login.html", error="Invalid credentials") return render_template("login.html") @app.route("/signup", methods=["GET", "POST"]) def signup(): if request.method == "POST": username = request.form["username"] password = request.form["password"] if username in users: return render_template("signup.html", error="User already exists") else: users[username] = password session["user"] = username return redirect(url_for("dashboard")) return render_template("signup.html") @app.route("/dashboard") def dashboard(): if "user" not in session: return redirect(url_for("login")) return render_template("dashboard.html", user=session["user"]) @app.route("/logout") def logout(): session.pop("user", None) return redirect(url_for("login")) if __name__ == "__main__": app.run(host="0.0.0.0", port=7860)