import streamlit as st import os import glob import sys import numpy as np import plotly.graph_objects as go from sklearn.linear_model import LinearRegression # Add the parent directory to the Python path sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) # Import the login component from app.components.login import login # Import week pages from app.pages import week_1 from app.pages import week_2 from app.pages import week_3 from app.pages import week_4 # Page configuration st.set_page_config( page_title="Data Science Course App", page_icon="📚", layout="wide", initial_sidebar_state="expanded" ) # Custom CSS def load_css(): try: with open('assets/style.css') as f: st.markdown(f'', unsafe_allow_html=True) except FileNotFoundError: # Fallback for Streamlit Cloud deployment st.markdown(""" """, unsafe_allow_html=True) # Initialize session state if 'current_week' not in st.session_state: st.session_state.current_week = 1 if 'logged_in' not in st.session_state: st.session_state.logged_in = False # Sidebar navigation def sidebar_navigation(): with st.sidebar: st.title("Course Navigation") # Show username if logged in if st.session_state.logged_in: st.write(f"Welcome, {st.session_state.username}!") # Debug button to show current week if st.session_state.username == "admin": if st.button("Debug: Show Current Week"): st.write(f"Current week: {st.session_state.current_week}") # Logout button if st.button("Logout"): st.session_state.logged_in = False st.session_state.username = None st.rerun() st.markdown("---") st.subheader("Course Progress") progress = st.progress(st.session_state.current_week / 10) st.write(f"Week {st.session_state.current_week} of 10") st.markdown("---") st.subheader("Quick Links") for week in range(1, 11): if st.button(f"Week {week}", key=f"week_{week}"): st.session_state.current_week = week st.rerun() def show_week_content(): # Debug print to show current week st.write(f"Debug: Current week is {st.session_state.current_week}") if st.session_state.current_week == 1: week_1.show() elif st.session_state.current_week == 2: week_2.show() elif st.session_state.current_week == 3: week_3.show() elif st.session_state.current_week == 4: week_4.show() else: st.warning("Content for this week is not yet available.") # Main content def main(): # Check if user is logged in if not st.session_state.logged_in: # Show login page login() return # User is logged in, show course content if st.session_state.current_week in [1, 2, 3, 4]: show_week_content() else: st.title("Data Science Research Paper Course") st.markdown(""" ## Welcome to the Data Science Research Paper Course! 📚 This section has not bee released yet. """) if __name__ == "__main__": load_css() sidebar_navigation() main()