This commit is contained in:
Anthony Segura
2026-08-05 10:35:03 -05:00
parent 62e886240f
commit 4b2407b6ca
6 changed files with 203 additions and 0 deletions

105
app.py Normal file
View File

@@ -0,0 +1,105 @@
from flask import Flask, render_template, request, redirect, session, jsonify
import sqlite3
app = Flask(__name__)
app.secret_key = "supersecretkey"
DB = "database.db"
# ---------------- DATABASE ----------------
def get_db():
conn = sqlite3.connect(DB)
conn.row_factory = sqlite3.Row
return conn
def init_db():
conn = get_db()
conn.execute('''
CREATE TABLE IF NOT EXISTS toner (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
quantity INTEGER NOT NULL
)
''')
conn.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT,
password TEXT
)
''')
conn.commit()
# ---------------- ROUTES ----------------
@app.route("/")
def index():
return render_template("index.html")
@app.route("/api/toner")
def get_toner():
conn = get_db()
toner = conn.execute("SELECT * FROM toner").fetchall()
return jsonify([dict(row) for row in toner])
@app.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
user = request.form["username"]
pw = request.form["password"]
conn = get_db()
result = conn.execute(
"SELECT * FROM users WHERE username=? AND password=?",
(user, pw)
).fetchone()
if result:
session["user"] = user
return redirect("/admin")
return render_template("login.html")
@app.route("/admin")
def admin():
if "user" not in session:
return redirect("/login")
return render_template("admin.html")
@app.route("/api/add", methods=["POST"])
def add_item():
if "user" not in session:
return "Unauthorized", 401
data = request.json
conn = get_db()
conn.execute(
"INSERT INTO toner (name, quantity) VALUES (?, ?)",
(data["name"], data["quantity"])
)
conn.commit()
return "OK"
@app.route("/api/update", methods=["POST"])
def update_item():
if "user" not in session:
return "Unauthorized", 401
data = request.json
conn = get_db()
conn.execute(
"UPDATE toner SET quantity=? WHERE id=?",
(data["quantity"], data["id"])
)
conn.commit()
return "OK"
@app.route("/logout")
def logout():
session.clear()
return redirect("/")
# ---------------- RUN ----------------
if __name__ == "__main__":
init_db()
app.run(debug=True)