Spaces:
Sleeping
Sleeping
Update src/about.py (#38)
Browse files- Update src/about.py (e735eed0798d9d7d344f58e42cd049ffc226abbe)
Co-authored-by: Muhammad Khaqan Nasir <[email protected]>
- src/about.py +237 -57
src/about.py
CHANGED
@@ -1,116 +1,296 @@
|
|
1 |
import streamlit as st
|
2 |
|
3 |
def main():
|
4 |
-
#
|
5 |
st.markdown("""
|
6 |
<style>
|
7 |
-
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@
|
|
|
|
|
|
|
|
|
|
|
8 |
|
9 |
.stApp {
|
10 |
-
|
11 |
-
background: #f8fafc;
|
12 |
min-height: 100vh;
|
13 |
-
color: #
|
|
|
|
|
14 |
}
|
15 |
|
16 |
-
#MainMenu {visibility:
|
17 |
footer {visibility: hidden;}
|
18 |
.stDeployButton {display: none;}
|
19 |
header {visibility: hidden;}
|
20 |
.stApp > header {visibility: hidden;}
|
21 |
|
22 |
-
|
23 |
-
|
|
|
|
|
24 |
margin: 0 auto;
|
25 |
-
padding:
|
26 |
}
|
27 |
|
28 |
-
|
29 |
-
|
30 |
text-align: center;
|
|
|
|
|
31 |
}
|
32 |
|
33 |
.header-title {
|
34 |
-
font-size: 2.
|
35 |
font-weight: 700;
|
36 |
-
color: #
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
|
|
|
42 |
.section {
|
43 |
-
margin-bottom:
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
|
46 |
.section-title {
|
47 |
-
font-size:
|
48 |
font-weight: 600;
|
49 |
-
color: #
|
50 |
-
margin-bottom:
|
51 |
display: flex;
|
52 |
align-items: center;
|
53 |
gap: 0.5rem;
|
54 |
}
|
55 |
|
56 |
.section-text {
|
57 |
-
font-size:
|
58 |
-
color: #
|
59 |
-
line-height: 1.
|
60 |
max-width: 800px;
|
61 |
margin: 0 auto;
|
62 |
}
|
63 |
|
64 |
-
|
65 |
-
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
67 |
}
|
68 |
|
69 |
-
.
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
}
|
72 |
</style>
|
73 |
""", unsafe_allow_html=True)
|
74 |
|
|
|
|
|
75 |
|
76 |
-
# Header
|
77 |
st.markdown("""
|
78 |
-
<div class="header">
|
79 |
-
<
|
80 |
-
|
81 |
-
</div>
|
82 |
</div>
|
83 |
""", unsafe_allow_html=True)
|
84 |
|
85 |
# About Content
|
86 |
st.markdown("""
|
87 |
-
<div class="
|
88 |
-
<
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
<
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
<
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
<
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
</div>
|
112 |
</div>
|
113 |
""", unsafe_allow_html=True)
|
114 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
if __name__ == "__main__":
|
116 |
main()
|
|
|
1 |
import streamlit as st
|
2 |
|
3 |
def main():
|
4 |
+
# Updated CSS for About page
|
5 |
st.markdown("""
|
6 |
<style>
|
7 |
+
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
|
8 |
+
|
9 |
+
* {
|
10 |
+
font-family: 'Poppins', sans-serif !important;
|
11 |
+
box-sizing: border-box;
|
12 |
+
}
|
13 |
|
14 |
.stApp {
|
15 |
+
background: #ffffff;
|
|
|
16 |
min-height: 100vh;
|
17 |
+
color: #1f2a44;
|
18 |
+
margin: 0 !important;
|
19 |
+
padding: 0 !important;
|
20 |
}
|
21 |
|
22 |
+
#MainMenu {visibility: hidden;}
|
23 |
footer {visibility: hidden;}
|
24 |
.stDeployButton {display: none;}
|
25 |
header {visibility: hidden;}
|
26 |
.stApp > header {visibility: hidden;}
|
27 |
|
28 |
+
/* Main Container */
|
29 |
+
.main-container {
|
30 |
+
max-width: 100%;
|
31 |
+
width: 100%;
|
32 |
margin: 0 auto;
|
33 |
+
padding: 1rem 2rem;
|
34 |
}
|
35 |
|
36 |
+
/* Header Section */
|
37 |
+
.header-section {
|
38 |
text-align: center;
|
39 |
+
margin-bottom: 2.5rem;
|
40 |
+
padding: 1.5rem 0;
|
41 |
}
|
42 |
|
43 |
.header-title {
|
44 |
+
font-size: 2.25rem;
|
45 |
font-weight: 700;
|
46 |
+
color: #1f2a44;
|
47 |
+
margin: 0;
|
48 |
+
}
|
49 |
+
|
50 |
+
.header-subtitle {
|
51 |
+
font-size: 1rem;
|
52 |
+
color: #6b7280;
|
53 |
+
font-weight: 400;
|
54 |
+
max-width: 600px;
|
55 |
+
margin: 0.5rem auto 0;
|
56 |
}
|
57 |
|
58 |
+
/* Section Styling */
|
59 |
.section {
|
60 |
+
margin-bottom: 2.5rem;
|
61 |
+
max-width: 1200px;
|
62 |
+
margin-left: auto;
|
63 |
+
margin-right: auto;
|
64 |
+
padding: 0 1rem;
|
65 |
}
|
66 |
|
67 |
.section-title {
|
68 |
+
font-size: 1.5rem;
|
69 |
font-weight: 600;
|
70 |
+
color: #1f2a44;
|
71 |
+
margin-bottom: 1rem;
|
72 |
display: flex;
|
73 |
align-items: center;
|
74 |
gap: 0.5rem;
|
75 |
}
|
76 |
|
77 |
.section-text {
|
78 |
+
font-size: 0.95rem;
|
79 |
+
color: #6b7280;
|
80 |
+
line-height: 1.6;
|
81 |
max-width: 800px;
|
82 |
margin: 0 auto;
|
83 |
}
|
84 |
|
85 |
+
/* Team Section */
|
86 |
+
.team-container {
|
87 |
+
display: grid;
|
88 |
+
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
|
89 |
+
gap: 1.5rem;
|
90 |
+
max-width: 1200px;
|
91 |
+
margin: 0 auto;
|
92 |
+
padding: 0 1rem;
|
93 |
}
|
94 |
|
95 |
+
.team-card {
|
96 |
+
background: #f9fafb;
|
97 |
+
padding: 1.5rem;
|
98 |
+
border-radius: 8px;
|
99 |
+
border: 1px solid #e5e7eb;
|
100 |
+
text-align: center;
|
101 |
+
transition: transform 0.2s ease;
|
102 |
+
}
|
103 |
+
|
104 |
+
.team-card:hover {
|
105 |
+
transform: translateY(-3px);
|
106 |
+
}
|
107 |
+
|
108 |
+
.team-card-title {
|
109 |
+
font-size: 1.25rem;
|
110 |
+
font-weight: 600;
|
111 |
+
color: #1f2a44;
|
112 |
+
margin-bottom: 0.5rem;
|
113 |
+
}
|
114 |
+
|
115 |
+
.team-card-role {
|
116 |
+
font-size: 1rem;
|
117 |
+
color: #3b82f6;
|
118 |
+
margin-bottom: 1rem;
|
119 |
+
}
|
120 |
+
|
121 |
+
.team-card-text {
|
122 |
+
font-size: 0.9rem;
|
123 |
+
color: #6b7280;
|
124 |
+
line-height: 1.4;
|
125 |
+
margin-bottom: 0.5rem;
|
126 |
+
display: flex;
|
127 |
+
align-items: center;
|
128 |
+
justify-content: center;
|
129 |
+
gap: 0.5rem;
|
130 |
+
}
|
131 |
+
|
132 |
+
.team-card-text a {
|
133 |
+
color: #3b82f6;
|
134 |
+
text-decoration: none;
|
135 |
+
}
|
136 |
+
|
137 |
+
.team-card-text a:hover {
|
138 |
+
text-decoration: underline;
|
139 |
+
}
|
140 |
+
|
141 |
+
/* Footer */
|
142 |
+
.footer {
|
143 |
+
border-top: 1px solid #e5e7eb;
|
144 |
+
padding: 1.5rem 0;
|
145 |
+
text-align: center;
|
146 |
+
max-width: 1200px;
|
147 |
+
margin: 2rem auto 0;
|
148 |
+
}
|
149 |
+
|
150 |
+
/* Responsive Design */
|
151 |
+
@media (max-width: 1024px) {
|
152 |
+
.main-container {
|
153 |
+
padding: 1rem;
|
154 |
+
}
|
155 |
+
.section {
|
156 |
+
padding: 0 0.5rem;
|
157 |
+
}
|
158 |
+
.team-container {
|
159 |
+
padding: 0 0.5rem;
|
160 |
+
}
|
161 |
+
}
|
162 |
+
|
163 |
+
@media (max-width: 768px) {
|
164 |
+
.header-title {
|
165 |
+
font-size: 1.75rem;
|
166 |
+
}
|
167 |
+
.header-subtitle {
|
168 |
+
font-size: 0.9rem;
|
169 |
+
}
|
170 |
+
.section-title {
|
171 |
+
font-size: 1.25rem;
|
172 |
+
}
|
173 |
+
.section-text {
|
174 |
+
font-size: 0.9rem;
|
175 |
+
}
|
176 |
+
.team-card-title {
|
177 |
+
font-size: 1.1rem;
|
178 |
+
}
|
179 |
+
.team-card-role {
|
180 |
+
font-size: 0.9rem;
|
181 |
+
}
|
182 |
+
}
|
183 |
+
|
184 |
+
@media (max-width: 480px) {
|
185 |
+
.header-title {
|
186 |
+
font-size: 1.5rem;
|
187 |
+
}
|
188 |
+
.header-subtitle {
|
189 |
+
font-size: 0.85rem;
|
190 |
+
}
|
191 |
+
.section-title {
|
192 |
+
font-size: 1.1rem;
|
193 |
+
}
|
194 |
+
.section-text {
|
195 |
+
font-size: 0.85rem;
|
196 |
+
}
|
197 |
+
.team-card-title {
|
198 |
+
font-size: 1rem;
|
199 |
+
}
|
200 |
+
.team-card-role {
|
201 |
+
font-size: 0.85rem;
|
202 |
+
}
|
203 |
+
.team-card-text {
|
204 |
+
font-size: 0.8rem;
|
205 |
+
}
|
206 |
}
|
207 |
</style>
|
208 |
""", unsafe_allow_html=True)
|
209 |
|
210 |
+
# Main Container
|
211 |
+
st.markdown('<div class="main-container">', unsafe_allow_html=True)
|
212 |
|
213 |
+
# Header Section
|
214 |
st.markdown("""
|
215 |
+
<div class="header-section">
|
216 |
+
<h1 class="header-title">📋 TruthCheck - Advanced Fake News Detector</h1>
|
217 |
+
<p class="header-subtitle">Empowering you to uncover the truth</p>
|
|
|
218 |
</div>
|
219 |
""", unsafe_allow_html=True)
|
220 |
|
221 |
# About Content
|
222 |
st.markdown("""
|
223 |
+
<div class="section">
|
224 |
+
<h2 class="section-title">ℹ️ About TruthCheck</h2>
|
225 |
+
<p class="section-text">
|
226 |
+
TruthCheck is a cutting-edge platform designed to combat misinformation by analyzing news articles for authenticity. Powered by advanced AI, our mission is to empower users—journalists, researchers, and everyday citizens—to make informed decisions in an era of digital information overload.
|
227 |
+
</p>
|
228 |
+
</div>
|
229 |
+
<div class="section">
|
230 |
+
<h3 class="section-title">🚀 Our Mission</h3>
|
231 |
+
<p class="section-text">
|
232 |
+
We strive to promote transparency and trust in information by providing a reliable, user-friendly tool for fake news detection. TruthCheck leverages state-of-the-art AI models to deliver accurate, transparent results, helping users distinguish credible news from misinformation.
|
233 |
+
</p>
|
234 |
+
</div>
|
235 |
+
<div class="section">
|
236 |
+
<h3 class="section-title">🧠 Our Technology</h3>
|
237 |
+
<p class="section-text">
|
238 |
+
TruthCheck combines BERT's natural language understanding with BiLSTM's sequential processing to deliver robust fake news detection. Our hybrid model analyzes text for linguistic patterns, sentiment, and context, providing results with confidence scores and attention visualizations for deeper insights.
|
239 |
+
</p>
|
240 |
+
</div>
|
241 |
+
<div class="section">
|
242 |
+
<h3 class="section-title">📋 How to Use TruthCheck</h3>
|
243 |
+
<p class="section-text">
|
244 |
+
Using TruthCheck is simple and intuitive:
|
245 |
+
<ul>
|
246 |
+
<li><strong>Submit an Article</strong>: Paste the text of a news article or a URL into our analysis tool.</li>
|
247 |
+
<li><strong>Get Results</strong>: Our AI processes the content and provides a credibility score with detailed insights.</li>
|
248 |
+
<li><strong>Explore Insights</strong>: Review attention visualizations and contextual analysis to understand the results.</li>
|
249 |
+
<li><strong>Contact Us</strong>: Reach out via our contact form for support or feedback.</li>
|
250 |
+
</ul>
|
251 |
+
</p>
|
252 |
+
</div>
|
253 |
+
<div class="section">
|
254 |
+
<h3 class="section-title">🌍 Why TruthCheck Matters</h3>
|
255 |
+
<p class="section-text">
|
256 |
+
In a world where misinformation can spread rapidly, TruthCheck serves as a vital tool for verifying information. Whether you're validating news for research, journalism, or personal knowledge, our platform ensures you can trust the content you consume.
|
257 |
+
</p>
|
258 |
+
</div>
|
259 |
+
""", unsafe_allow_html=True)
|
260 |
+
|
261 |
+
# Team Section
|
262 |
+
st.markdown("""
|
263 |
+
<div class="section">
|
264 |
+
<h2 class="section-title">👥 Our Team</h2>
|
265 |
+
<div class="team-container">
|
266 |
+
<div class="team-card">
|
267 |
+
<h3 class="team-card-title">Muhammad Adnan Tariq</h3>
|
268 |
+
<p class="team-card-role">AI Specialist</p>
|
269 |
+
<p class="team-card-text"><span>📧</span> <strong>Email</strong>: <a href="mailto:[email protected]">[email protected]</a></p>
|
270 |
+
<p class="team-card-text"><span>📞</span> <strong>Phone</strong>: +92336-6569117</p>
|
271 |
+
<p class="team-card-text"><span>🔗</span> <strong>LinkedIn</strong>: <a href="https://www.linkedin.com/in/adnaantariq/">Linkedin</a></p>
|
272 |
+
<p class="team-card-text"><span>🔗</span> <strong>GitHub</strong>: <a href="https://github.com/adnaan-tariq">GitHub</a></p>
|
273 |
+
</div>
|
274 |
+
<div class="team-card">
|
275 |
+
<h3 class="team-card-title">Muhammad Khaqan Nasir</h3>
|
276 |
+
<p class="team-card-role">Lead Developer</p>
|
277 |
+
<p class="team-card-text"><span>📧</span> <strong>Email</strong>: <a href="mailto:[email protected]">[email protected]</a></p>
|
278 |
+
<p class="team-card-text"><span>📞</span> <strong>Phone</strong>: +92309-1111977</p>
|
279 |
+
<p class="team-card-text"><span>🔗</span> <strong>LinkedIn</strong>: <a href="https://www.linkedin.com/in/khaqan-nasir/">Linkedin</a></p>
|
280 |
+
<p class="team-card-text"><span>🔗</span> <strong>GitHub</strong>: <a href="https://github.com/KhaqanNasir">GitHub</a></p>
|
281 |
+
</div>
|
282 |
</div>
|
283 |
</div>
|
284 |
""", unsafe_allow_html=True)
|
285 |
|
286 |
+
# Footer
|
287 |
+
st.markdown("---")
|
288 |
+
st.markdown(
|
289 |
+
'<p style="text-align: center; font-weight: 600; font-size: 16px;">💻 Developed with ❤️ using Streamlit | © 2025</p>',
|
290 |
+
unsafe_allow_html=True
|
291 |
+
)
|
292 |
+
|
293 |
+
st.markdown('</div>', unsafe_allow_html=True) # Close main-container
|
294 |
+
|
295 |
if __name__ == "__main__":
|
296 |
main()
|