itamarlifshitz commited on
Commit
7fa209a
·
verified ·
1 Parent(s): 0b926ea

Your app is a smart study assistant for schools.

Browse files

It helps students and teachers organize study materials, send school announcements, and chat with an AI bot that understands the school’s content — all in one simple Hebrew-friendly website.

🧑‍🎓 Who It’s For

Students – upload their class files (like PDFs, notes, or Google Docs), ask the AI study questions, and see approved announcements.

Teachers – approve or post announcements, share class materials, and help students with reliable content.

Admins – manage the whole site (logo, roles, permissions).

💡 What It Does (Core MVP Features)

Login & Roles

Students and teachers can sign up with email and password.

Teachers must confirm they are adults (18+).

Each user can choose a bot name (like “My Study Buddy”).

Upload or Import Study Materials

Students upload PDFs, images, Excel files, or paste Google Docs links.

The app extracts readable text from these files and stores it locally (or in a database later).

Chatbot (The Smart Assistant)

The AI bot reads your uploaded files and answers your questions based on that content.

It speaks Hebrew clearly and briefly.

It “remembers” details about your grade, class, and subjects.

Announcements

Any user can draft an announcement.

Teachers or admins must approve it before it becomes visible.

Announcements can be for the whole school, a specific grade, or a single class.

Design & Simplicity

Clean, modern look with right-to-left (RTL) Hebrew support.

Easy to use on computers or phones.

Shows school logo, e.g., “Yitzhak Shamir Six-Year School – Petah Tikva”.

⚙️ How It Works (MVP Logic)

Everything is stored in the browser (localStorage) — no server required at first.

The AI chat uses a small backend endpoint that talks to a model (like Gemini or GPT-4).

Later, you can connect it to a real database (like Supabase) to make accounts persistent.

🚀 Example Flow

A student signs up and uploads a PDF of “Math – Unit 2 Notes.”

They go to the chat page and ask: “How do I solve quadratic equations?”

The AI bot reads their uploaded material and answers based on it (in Hebrew).

The teacher posts an announcement: “Exam next Tuesday – Grade 10.”

The student sees that announcement instantly in their feed.

🧱 What Makes It Special

Grounded AI: answers only from real school materials, not random internet data.

Simple & Safe: no distractions, just study help and verified messages.

Designed for schools: every part (roles, grades, classes) fits real classrooms.

🗺️ After MVP (Future Versions)

AI searches multiple files and gives cited answers.

Shared class Spaces for group learning.

Analytics dashboard for teachers.

Real database, user accounts, and file storage.

In short, your idea is “ChatGPT + Google Drive + School Portal” — all in one, simple, Hebrew-friendly website where the AI learns from the school’s materials and helps students study smarter.

Files changed (5) hide show
  1. README.md +8 -5
  2. components/footer.js +56 -0
  3. components/navbar.js +78 -0
  4. index.html +49 -19
  5. style.css +93 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Smartstudy Buddyhub
3
- emoji: 🚀
4
- colorFrom: blue
5
- colorTo: red
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: SmartStudy BuddyHub 📚✨
3
+ colorFrom: pink
4
+ colorTo: purple
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
components/footer.js ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ footer {
7
+ background-color: var(--secondary-color);
8
+ color: white;
9
+ text-align: center;
10
+ padding: 2rem;
11
+ margin-top: 40px;
12
+ }
13
+
14
+ .footer-content {
15
+ max-width: 1200px;
16
+ margin: 0 auto;
17
+ }
18
+
19
+ .footer-links {
20
+ display: flex;
21
+ justify-content: center;
22
+ gap: 20px;
23
+ margin-bottom: 20px;
24
+ }
25
+
26
+ .footer-links a {
27
+ color: white;
28
+ text-decoration: none;
29
+ }
30
+
31
+ .footer-links a:hover {
32
+ text-decoration: underline;
33
+ }
34
+
35
+ .copyright {
36
+ margin-top: 20px;
37
+ font-size: 0.9rem;
38
+ opacity: 0.8;
39
+ }
40
+ </style>
41
+ <footer>
42
+ <div class="footer-content">
43
+ <div class="footer-links">
44
+ <a href="/about.html">אודות</a>
45
+ <a href="/privacy.html">פרטיות</a>
46
+ <a href="/contact.html">צור קשר</a>
47
+ </div>
48
+ <div class="copyright">
49
+ © 2023 SmartStudy BuddyHub - כל הזכויות שמורות
50
+ </div>
51
+ </div>
52
+ </footer>
53
+ `;
54
+ }
55
+ }
56
+ customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ nav {
7
+ background-color: var(--primary-color);
8
+ color: white;
9
+ padding: 1rem 2rem;
10
+ display: flex;
11
+ justify-content: space-between;
12
+ align-items: center;
13
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
14
+ }
15
+
16
+ .logo {
17
+ display: flex;
18
+ align-items: center;
19
+ font-weight: bold;
20
+ font-size: 1.2rem;
21
+ }
22
+
23
+ .logo img {
24
+ height: 40px;
25
+ margin-left: 10px;
26
+ }
27
+
28
+ .nav-links {
29
+ display: flex;
30
+ gap: 20px;
31
+ }
32
+
33
+ .nav-links a {
34
+ color: white;
35
+ text-decoration: none;
36
+ padding: 0.5rem 1rem;
37
+ border-radius: 5px;
38
+ transition: background-color 0.3s;
39
+ }
40
+
41
+ .nav-links a:hover {
42
+ background-color: rgba(255, 255, 255, 0.2);
43
+ }
44
+
45
+ @media (max-width: 768px) {
46
+ nav {
47
+ flex-direction: column;
48
+ padding: 1rem;
49
+ }
50
+
51
+ .nav-links {
52
+ margin-top: 1rem;
53
+ width: 100%;
54
+ justify-content: space-around;
55
+ }
56
+
57
+ .nav-links a {
58
+ padding: 0.5rem;
59
+ }
60
+ }
61
+ </style>
62
+ <nav>
63
+ <div class="logo">
64
+ <img src="http://static.photos/education/200x200/1" alt="School Logo">
65
+ <span>בית ספר יצחק שמיר</span>
66
+ </div>
67
+ <div class="nav-links">
68
+ <a href="/">בית</a>
69
+ <a href="/chat.html">צ'אט AI</a>
70
+ <a href="/materials.html">חומרי לימוד</a>
71
+ <a href="/announcements.html">הכרזות</a>
72
+ <a href="/login.html">התחברות</a>
73
+ </div>
74
+ </nav>
75
+ `;
76
+ }
77
+ }
78
+ customElements.define('custom-navbar', CustomNavbar);
index.html CHANGED
@@ -1,19 +1,49 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="he" dir="rtl">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>SmartStudy BuddyHub - בית הספר יצחק שמיר</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ </head>
10
+ <body>
11
+ <custom-navbar></custom-navbar>
12
+
13
+ <main class="container">
14
+ <section class="hero">
15
+ <h1>ברוכים הבאים ל-SmartStudy BuddyHub</h1>
16
+ <p>העוזר הלימודי החכם שלך! שאל שאלות, קבל תשובות והשאר מעודכן בהכרזות בית הספר.</p>
17
+ <div class="cta-buttons">
18
+ <a href="/login.html" class="btn primary">התחברות</a>
19
+ <a href="/register.html" class="btn secondary">הרשמה</a>
20
+ </div>
21
+ </section>
22
+
23
+ <section class="features">
24
+ <div class="feature-card">
25
+ <i class="fas fa-robot"></i>
26
+ <h3>עוזר לימודי AI</h3>
27
+ <p>קבל תשובות חכמות המבוססות על חומרי הלימוד שלך</p>
28
+ </div>
29
+ <div class="feature-card">
30
+ <i class="fas fa-bullhorn"></i>
31
+ <h3>הכרזות בית ספר</h3>
32
+ <p>הישאר מעודכן בכל ההכרזות החשובות</p>
33
+ </div>
34
+ <div class="feature-card">
35
+ <i class="fas fa-book"></i>
36
+ <h3>ניהול חומרים</h3>
37
+ <p>אחסן וסדר את כל חומרי הלימוד במקום אחד</p>
38
+ </div>
39
+ </section>
40
+ </main>
41
+
42
+ <custom-footer></custom-footer>
43
+
44
+ <script src="components/navbar.js"></script>
45
+ <script src="components/footer.js"></script>
46
+ <script src="script.js"></script>
47
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
48
+ </body>
49
+ </html>
style.css CHANGED
@@ -1,28 +1,103 @@
 
 
 
 
 
 
 
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
 
 
 
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :root {
2
+ --primary-color: #4a6fa5;
3
+ --secondary-color: #166088;
4
+ --accent-color: #4fc3f7;
5
+ --text-color: #333;
6
+ --light-bg: #f5f9fc;
7
+ --rtl: rtl;
8
+ }
9
+
10
  body {
11
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
12
+ margin: 0;
13
+ padding: 0;
14
+ color: var(--text-color);
15
+ direction: var(--rtl);
16
+ background-color: var(--light-bg);
17
+ }
18
+
19
+ .container {
20
+ max-width: 1200px;
21
+ margin: 0 auto;
22
+ padding: 20px;
23
+ }
24
+
25
+ .hero {
26
+ text-align: center;
27
+ padding: 60px 20px;
28
+ background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
29
+ color: white;
30
+ border-radius: 10px;
31
+ margin-bottom: 40px;
32
  }
33
 
34
+ .hero h1 {
35
+ font-size: 2.5rem;
36
+ margin-bottom: 20px;
37
  }
38
 
39
+ .hero p {
40
+ font-size: 1.2rem;
41
+ margin-bottom: 30px;
 
 
42
  }
43
 
44
+ .cta-buttons {
45
+ display: flex;
46
+ justify-content: center;
47
+ gap: 20px;
 
 
48
  }
49
 
50
+ .btn {
51
+ padding: 12px 24px;
52
+ border-radius: 5px;
53
+ text-decoration: none;
54
+ font-weight: bold;
55
+ transition: all 0.3s ease;
56
  }
57
+
58
+ .btn.primary {
59
+ background-color: white;
60
+ color: var(--primary-color);
61
+ }
62
+
63
+ .btn.secondary {
64
+ background-color: transparent;
65
+ color: white;
66
+ border: 2px solid white;
67
+ }
68
+
69
+ .btn:hover {
70
+ transform: translateY(-3px);
71
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
72
+ }
73
+
74
+ .features {
75
+ display: grid;
76
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
77
+ gap: 30px;
78
+ margin-bottom: 40px;
79
+ }
80
+
81
+ .feature-card {
82
+ background: white;
83
+ padding: 30px;
84
+ border-radius: 10px;
85
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
86
+ text-align: center;
87
+ transition: transform 0.3s ease;
88
+ }
89
+
90
+ .feature-card:hover {
91
+ transform: translateY(-10px);
92
+ }
93
+
94
+ .feature-card i {
95
+ font-size: 3rem;
96
+ color: var(--accent-color);
97
+ margin-bottom: 20px;
98
+ }
99
+
100
+ .feature-card h3 {
101
+ font-size: 1.5rem;
102
+ margin-bottom: 15px;
103
+ }