create project and create model and dashboard

This commit is contained in:
2025-12-11 10:16:43 +05:30
parent 2371202ac3
commit 2e62320167
55 changed files with 1072 additions and 0 deletions

0
app/routes/__init__.py Normal file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

31
app/routes/auth.py Normal file
View File

@@ -0,0 +1,31 @@
from flask import Blueprint, request, render_template, redirect, flash, session
from app.services.user_service import UserService
auth_bp = Blueprint("auth", __name__, url_prefix="/auth")
# LOGIN PAGE
@auth_bp.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
user = UserService.validate_login(
request.form["email"],
request.form["password"]
)
if user:
session["user_id"] = user.id
return redirect("/dashboard")
flash("Invalid credentials", "danger")
return render_template("login.html")
# REGISTER API ONLY
@auth_bp.route("/register", methods=["POST"])
def register():
data = request.json
UserService.register_user(data["name"], data["email"], data["password"])
return {"message": "User registered successfully"}, 201
# LOGOUT
@auth_bp.route("/logout")
def logout():
session.clear()
return redirect("/auth/login")

8
app/routes/dashboard.py Normal file
View File

@@ -0,0 +1,8 @@
from flask import Blueprint, render_template
dashboard_bp = Blueprint("dashboard", __name__)
@dashboard_bp.route("/")
@dashboard_bp.route("/dashboard")
def dashboard():
return render_template("dashboard.html", title="Dashboard")

21
app/routes/file_import.py Normal file
View File

@@ -0,0 +1,21 @@
from flask import Blueprint, render_template, request, flash
from app.services.file_service import FileService
from app.models.subcontractor_model import Subcontractor
file_import_bp = Blueprint("file_import", __name__, url_prefix="/file")
@file_import_bp.route("/import", methods=["GET", "POST"])
def import_file():
subcontractors = Subcontractor.query.all()
if request.method == "POST":
file = request.files.get("file")
subcontractor_id = request.form.get("subcontractor_id")
file_type = request.form.get("file_type")
service = FileService()
success, msg = service.handle_file_upload(file, subcontractor_id, file_type)
flash(msg, "success" if success else "danger")
return render_template("file_import.html", title="File Import", subcontractors=subcontractors)

View File

@@ -0,0 +1,64 @@
from flask import Blueprint, render_template, request, redirect, flash
from app import db
from app.models.subcontractor_model import Subcontractor
subcontractor_bp = Blueprint("subcontractor", __name__, url_prefix="/subcontractor")
# ---------------- ADD -----------------
@subcontractor_bp.route("/add")
def add_subcontractor():
return render_template("subcontractor/add.html")
@subcontractor_bp.route("/save", methods=["POST"])
def save_subcontractor():
subcontractor = Subcontractor(
subcontractor_name=request.form.get("subcontractor_name"),
contact_person=request.form.get("contact_person"),
mobile_no=request.form.get("mobile_no"),
email_id=request.form.get("email_id"),
gst_no=request.form.get("gst_no")
)
db.session.add(subcontractor)
db.session.commit()
flash("Subcontractor added successfully!", "success")
return redirect("/subcontractor/list")
# ---------------- LIST -----------------
@subcontractor_bp.route("/list")
def subcontractor_list():
subcontractors = Subcontractor.query.all()
return render_template("subcontractor/list.html", subcontractors=subcontractors)
# ---------------- EDIT -----------------
@subcontractor_bp.route("/edit/<int:id>")
def edit_subcontractor(id):
subcontractor = Subcontractor.query.get_or_404(id)
return render_template("subcontractor/edit.html", subcontractor=subcontractor)
# ---------------- UPDATE -----------------
@subcontractor_bp.route("/update/<int:id>", methods=["POST"])
def update_subcontractor(id):
subcontractor = Subcontractor.query.get_or_404(id)
subcontractor.subcontractor_name = request.form.get("subcontractor_name")
subcontractor.contact_person = request.form.get("contact_person")
subcontractor.mobile_no = request.form.get("mobile_no")
subcontractor.email_id = request.form.get("email_id")
subcontractor.gst_no = request.form.get("gst_no")
db.session.commit()
flash("Subcontractor updated successfully!", "success")
return redirect("/subcontractor/list")
# ---------------- DELETE -----------------
@subcontractor_bp.route("/delete/<int:id>")
def delete_subcontractor(id):
subcontractor = Subcontractor.query.get_or_404(id)
db.session.delete(subcontractor)
db.session.commit()
flash("Subcontractor deleted successfully!", "success")
return redirect("/subcontractor/list")

9
app/routes/user.py Normal file
View File

@@ -0,0 +1,9 @@
from flask import Blueprint, render_template
from app.services.user_service import UserService
user_bp = Blueprint("user", __name__, url_prefix="/user")
@user_bp.route("/list")
def list_users():
users = UserService().get_all_users()
return render_template("users.html", users=users, title="Users")