File size: 3,980 Bytes
8cef7ca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import streamlit as st
from transformers import pipeline
from backend import db_connection # Import db_connection

# -----------------------------
# Summarizer model
# -----------------------------
@st.cache_resource
def load_summarizer():
    return pipeline("summarization", model="sshleifer/distilbart-cnn-12-6")

summarizer = load_summarizer()

# -----------------------------
# Functions
# -----------------------------
def signup():
    st.title("πŸ“ Signup Page")
    # name = st.text_input("Enter your Name") # Removed name input
    email = st.text_input("Enter your Email")
    username = st.text_input("Choose a Username")
    password = st.text_input("Choose a Password", type="password")

    if st.button("Signup"):
        if email and username and password: # Removed 'name'
            # Use db_connection to create user
            if db_connection.create_user(email, username, password): # Removed 'name' argument
                st.success("βœ… Account created! Please log in now.")
                st.session_state.page = "login"
                st.rerun()
            else:
                st.error("⚠️ An account with this username or email already exists. Please choose another.")
        else:
            st.error("⚠️ Please fill in all fields.")

def login():
    st.title("πŸ”’ Login Page")
    username = st.text_input("Username")
    password = st.text_input("Password", type="password")

    if st.button("Login"):
        # Use db_connection to validate user
        user = db_connection.validate_user(username, password)
        if user:
            st.session_state.logged_in = True
            st.session_state.username = user['username'] # Store username in session
            st.session_state.user_role = user['role'] # Store user role in session
            st.success("βœ… Login successful! Redirecting...")
            st.session_state.page = "dashboard"
            st.rerun()
        else:
            st.error("❌ Invalid username or password")

    if st.button("Go to Signup"):
        st.session_state.page = "signup"
        st.rerun()

def summarizer_page():
    st.title("πŸ“„ Text Summarizer")

    text = st.text_area("Enter the text you want to summarize:", height=200)

    if st.button("Summarize"):
        if text.strip():
            summary = summarizer(text, max_length=130, min_length=30, do_sample=False)
            st.subheader("✨ Summary:")
            st.write(summary[0]['summary_text'])
        else:
            st.error("⚠️ Please enter some text to summarize.")

    if st.button("Logout"):
        st.session_state.logged_in = False
        st.session_state.page = "login" # Ensure it redirects to login after logout
        st.rerun()

# -----------------------------
# Main App
# -----------------------------
def main():
    if "logged_in" not in st.session_state:
        st.session_state.logged_in = False
    if "page" not in st.session_state:
        st.session_state.page = "login"

    if st.session_state.page == "signup":
        signup()
    elif st.session_state.page == "login":
        login()
    elif st.session_state.page == "dashboard" and st.session_state.logged_in: # New dashboard page
        st.title("Welcome to Dashboard!") # Placeholder for dashboard content
        # In a real app, you'd import and call a dashboard function here
        if st.button("Go to Summarizer"): # Example navigation to summarizer
            st.session_state.page = "summarizer"
            st.rerun()
        if st.button("Logout"): # Logout from dashboard
            st.session_state.logged_in = False
            st.session_state.page = "login"
            st.rerun()
    elif st.session_state.page == "summarizer" and st.session_state.logged_in:
        summarizer_page()
    else:
        st.session_state.page = "login"
        login()

if __name__ == "__main__":
    main()