chandralegend commited on
Commit
5c03cbf
·
1 Parent(s): 3b82899

added persistant level and logo

Browse files
.sessions/johndoe/level.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ 3
0_Introduction.py CHANGED
@@ -1,5 +1,4 @@
1
  import streamlit as st
2
- import os
3
  from utils.levels import complete_level, initialize_level, render_page, get_level
4
  from utils.login import initialize_login
5
 
 
1
  import streamlit as st
 
2
  from utils.levels import complete_level, initialize_level, render_page, get_level
3
  from utils.login import initialize_login
4
 
assets/logo.png ADDED
utils/__pycache__/levels.cpython-310.pyc CHANGED
Binary files a/utils/__pycache__/levels.cpython-310.pyc and b/utils/__pycache__/levels.cpython-310.pyc differ
 
utils/__pycache__/login.cpython-310.pyc CHANGED
Binary files a/utils/__pycache__/login.cpython-310.pyc and b/utils/__pycache__/login.cpython-310.pyc differ
 
utils/levels.py CHANGED
@@ -1,9 +1,17 @@
1
  import streamlit as st
2
  from utils.login import get_login
 
3
 
4
  def initialize_level():
5
  if 'level' not in st.session_state:
6
- st.session_state['level'] = 0
 
 
 
 
 
 
 
7
 
8
  def get_level():
9
  return st.session_state['level']
@@ -22,5 +30,7 @@ def complete_level(level):
22
  st.info(f'You have Already completed Level {level}!')
23
  else:
24
  st.session_state['level'] = level + 1
 
 
25
  st.balloons()
26
  st.success(f'You have completed Level {level}! You can now move on to the next level.')
 
1
  import streamlit as st
2
  from utils.login import get_login
3
+ import os
4
 
5
  def initialize_level():
6
  if 'level' not in st.session_state:
7
+ if get_login()["status"]:
8
+ if not os.path.exists(f".sessions/{get_login()['username']}/level.txt"):
9
+ with open(f".sessions/{get_login()['username']}/level.txt", "w") as f:
10
+ f.write("0")
11
+ st.session_state['level'] = 0
12
+ else:
13
+ with open(f".sessions/{get_login()['username']}/level.txt", "r") as f:
14
+ st.session_state['level'] = int(f.read())
15
 
16
  def get_level():
17
  return st.session_state['level']
 
30
  st.info(f'You have Already completed Level {level}!')
31
  else:
32
  st.session_state['level'] = level + 1
33
+ with open(f".sessions/{get_login()['username']}/level.txt", "w") as f:
34
+ f.write(str(st.session_state['level']))
35
  st.balloons()
36
  st.success(f'You have completed Level {level}! You can now move on to the next level.')
utils/login.py CHANGED
@@ -1,26 +1,28 @@
1
  import streamlit as st
2
  import os
3
 
 
4
  def initialize_login():
5
- if 'login' not in st.session_state:
6
- username = st.text_input('Username')
7
- password = st.text_input('Password', type='password')
8
- if st.button('Login'):
 
9
  # TODO: replace with actual authorization check
10
- authorized = {
11
- "status": True,
12
- "Name": "John Doe",
13
- "username": "johndoe"
14
- }
15
  if authorized["status"]:
16
- st.session_state['login'] = authorized
17
- os.makedirs(os.path.join('.sessions', st.session_state["login"]["username"]), exist_ok=True)
18
- st.success('Login Successful!')
 
 
 
19
  st.experimental_rerun()
20
  else:
21
- st.error('Invalid username or password')
22
  else:
23
  st.sidebar.success(f'Hello, {st.session_state["login"]["Name"]}!')
24
 
 
25
  def get_login():
26
- return st.session_state.get('login', {"status": False})
 
1
  import streamlit as st
2
  import os
3
 
4
+
5
  def initialize_login():
6
+ if "login" not in st.session_state:
7
+ st.columns(3)[1].image("assets/logo.png")
8
+ username = st.text_input("Username")
9
+ password = st.text_input("Password", type="password")
10
+ if st.button("Login"):
11
  # TODO: replace with actual authorization check
12
+ authorized = {"status": True, "Name": "John Doe", "username": "johndoe"}
 
 
 
 
13
  if authorized["status"]:
14
+ st.session_state["login"] = authorized
15
+ os.makedirs(
16
+ os.path.join(".sessions", st.session_state["login"]["username"]),
17
+ exist_ok=True,
18
+ )
19
+ st.success("Login Successful!")
20
  st.experimental_rerun()
21
  else:
22
+ st.error("Invalid username or password")
23
  else:
24
  st.sidebar.success(f'Hello, {st.session_state["login"]["Name"]}!')
25
 
26
+
27
  def get_login():
28
+ return st.session_state.get("login", {"status": False})