thinh-vu commited on
Commit
08db0a5
1 Parent(s): 11b41a6

Upload 9 files

Browse files
LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2024 mrthinh
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
README.md CHANGED
@@ -1,13 +1,10 @@
1
- ---
2
- title: Streamlit Template
3
- emoji: 📈
4
- colorFrom: red
5
- colorTo: blue
6
  sdk: streamlit
7
  sdk_version: 1.32.2
8
- app_file: app.py
9
  pinned: false
10
  license: mit
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
+ title: Vnstock Streamlit App Template
2
+ emoji:
3
+ colorFrom: green
4
+ colorTo: purple
 
5
  sdk: streamlit
6
  sdk_version: 1.32.2
 
7
  pinned: false
8
  license: mit
9
+ short_description: Template Streamlit App for beginners
10
+ app_file: main.py
 
assets/images/huggingface_streamlit_space_creation_vnstock_learn-anything-thinhvu.png ADDED
assets/images/streamlit_cloud_deploy_from_github_repo.png ADDED
assets/images/streamlit_cloud_setup_new_repo_thinhvu_vnstock_learn-anything.png ADDED
assets/images/thinhvu_momo_qr.png ADDED
gw_config.json ADDED
File without changes
main.py ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import json
3
+ from pygwalker.api.streamlit import StreamlitRenderer, init_streamlit_comm
4
+ from vnstock import *
5
+
6
+ # start with wide mode
7
+ st.set_page_config(layout="wide")
8
+
9
+ st.image('https://vnstock.site/wp-content/uploads/2023/07/vnstock-logo-120x60.jpg', width=120)
10
+ st.header("Thư viện mẫu Streamlit Web App cho người mới bắt đầu")
11
+
12
+ # Create 3 tabs
13
+ screener, help, credit = st.tabs(["Bộ lọc cổ phiếu", "Hướng dẫn", "Giới thiệu"])
14
+
15
+
16
+ default_query = {"exchangeName": "HOSE,HNX,UPCOM",
17
+ "marketCap": (100, 1000)}
18
+
19
+ @st.cache_data
20
+ def tcbs_screener(query, limit=1700):
21
+ screener_df = stock_screening_insights (query, size=limit, drop_lang='en')
22
+ return screener_df
23
+
24
+ def pygwalker_part (df):
25
+ # Initialize pygwalker communication
26
+ init_streamlit_comm()
27
+ renderer = StreamlitRenderer(df, spec="./gw_config.json", debug=False)
28
+ renderer.render_explore()
29
+
30
+ # Define the content of each tab
31
+ with screener:
32
+ st.markdown("## Bộ lọc cổ phiếu")
33
+
34
+ # define 3 columns with equally width
35
+ col1, col2, col3 = st.columns([1.5, 1, 1])
36
+ with col1:
37
+ # allow user to select exchange from HOSE, HNX, UPCOM
38
+ exchange = st.multiselect("Sàn giao dịch", ["HOSE", "HNX", "UPCOM"], default=["HOSE", "HNX", "UPCOM"])
39
+ with col2:
40
+ # allow user to input market cap range
41
+ market_cap = st.slider("Vốn hóa thị trường", 0, 10000, (100, 1000))
42
+ with col3:
43
+ # show a number input to define the limit of the result
44
+ limit = st.number_input("Số lượng cổ phiếu tối đa", min_value=10, max_value=2000, value=1700)
45
+
46
+ # update the query with the user input
47
+ query = {"exchangeName": ",".join(exchange),
48
+ "marketCap": market_cap}
49
+ # call the function to get the result
50
+ screener_df = tcbs_screener(query, limit)
51
+ # show the result in a table
52
+ st.write(screener_df)
53
+
54
+ st.markdown('## Khám phá')
55
+ pygwalker_part (screener_df)
56
+
57
+
58
+
59
+
60
+ with help:
61
+ st.markdown("## Hướng dẫn")
62
+ help_details = """
63
+ ## Sử dụng Streamlit Cloud
64
+ 1. Tạo Github repository bằng cách folk repo này trên Github hoặc tạo mới một repo và copy toàn bộ nội dung trong thư mục repo này vào.
65
+ 2. Truy cập Streamlit Cloud (cần đăng ký mới nếu chưa có tài khoản tại: https://share.streamlit.io). Bạn có thể đăng nhập bằng tài khoản Github hiện có.
66
+ 3. Tạo ứng dụng mới trên Streamlit Share bằng cách chọn New app > Use existing repo và chọn repo bạn chuẩn bị sẵn trên Github
67
+ ![](./assets/images/streamlit_cloud_setup_new_repo_thinhvu_vnstock_learn-anything.png)
68
+ ## Sử dụng Hugging Face Spaces
69
+ 1. Tạo tài khoản Hugging Face tại: https://huggingface.co
70
+ 2. Truy cập Hugging Face Spaces tại: https://huggingface.co/new-space để tạo một không gian mới
71
+ 3. Đặt tên url cho không gian của bạn, ví dụ `vnstock-app`
72
+ 4. Chọn Space SDK là Streamlit
73
+ 5. Chọn chế độ chia sẻ công khai (Public) hay riêng tư (Private)
74
+ 6. Chọn Create Space để hoàn tất.
75
+ 7. Truy cập tab `Files` và chọn nút (button) `Upload files` để tải lên toàn bộ nội dung trong thư mục repo này.
76
+ """
77
+ st.markdown(help_details)
78
+
79
+ with credit:
80
+ credit_details = """
81
+ ## Giới thiệu
82
+
83
+ Đây là mẫu Web App đơn giản minh họa cho người mới làm quen với việc xây dựng Data app trên nền tảng Web bằng streamlit trong Python.
84
+
85
+ ## Tác giả
86
+ * Tác giả: [Thinh Vu](https://thinhvu.com) @ vnstock.site
87
+ * Email: support@vnstock.site
88
+ * Website: [vnstock.site](https://vnstock.site)
89
+ * Bạn có thể gửi tặng tác giả Cafe qua QR thay lời cảm ơn. Chi tiết [tại đây](https://docs.vnstock.site/community/tai-tro-du-an-vnstock/)
90
+ """
91
+ st.markdown(credit_details)
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ vnstock
2
+ streamlit
3
+ pygwalker