Taf2023 commited on
Commit
6ca588d
·
verified ·
1 Parent(s): f156231

Upload 3 files

Browse files
Files changed (3) hide show
  1. README.md +96 -6
  2. app.py +49 -0
  3. requirements.txt +12 -0
README.md CHANGED
@@ -1,12 +1,102 @@
1
  ---
2
- title: Testsp
3
- emoji: 💻
4
- colorFrom: pink
5
- colorTo: indigo
6
  sdk: gradio
7
- sdk_version: 5.42.0
8
  app_file: app.py
9
  pinned: false
 
10
  ---
11
 
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: Share YouTube App
3
+ emoji: 📺
4
+ colorFrom: red
5
+ colorTo: blue
6
  sdk: gradio
7
+ sdk_version: 4.44.0
8
  app_file: app.py
9
  pinned: false
10
+ license: mit
11
  ---
12
 
13
+ # Share YouTube App 📺
14
+
15
+ แอปพลิเคชันง่ายๆ สำหรับแชร์ลิงก์ YouTube พร้อมโน๊ตสั้นๆ ที่ผู้ใช้สามารถถูกใจและคอมเมนต์ได้
16
+
17
+ ## ฟีเจอร์
18
+
19
+ - ✅ แชร์ลิงก์ YouTube พร้อมโน๊ตสั้นๆ
20
+ - ✅ แสดงผลวิดีโอ YouTube แบบ embed
21
+ - ✅ ระบบถูกใจ (Like)
22
+ - ✅ ระบบคอมเมนต์
23
+ - ✅ UI ที่สวยงามและใช้งานง่าย
24
+ - ✅ รองรับการใช้งานบนมือถือ
25
+
26
+ ## การใช้งาน
27
+
28
+ 1. กรอกชื่อของคุณ
29
+ 2. ใส่ลิงก์ YouTube ที่ต้องการแชร์
30
+ 3. เขียนโน๊ตสั้นๆ เกี่ยวกับวิดีโอ
31
+ 4. กดปุ่ม "แชร์"
32
+ 5. ดูลิงก์ที่แชร์ในฟีดด้านล่าง
33
+ 6. สามารถถูกใจและคอมเมนต์ได้
34
+
35
+ ## เทคโนโลยีที่ใช้
36
+
37
+ - **Backend**: Flask (Python)
38
+ - **Database**: SQLite
39
+ - **Frontend**: HTML, CSS, JavaScript
40
+ - **UI Framework**: Font Awesome Icons
41
+ - **Styling**: Custom CSS with Gradient Background
42
+
43
+ ## การติดตั้งและรันในเครื่อง
44
+
45
+ ```bash
46
+ # Clone repository
47
+ git clone <repository-url>
48
+ cd facebook-clone
49
+
50
+ # สร้าง virtual environment
51
+ python -m venv venv
52
+ source venv/bin/activate # Linux/Mac
53
+ # หรือ venv\Scripts\activate # Windows
54
+
55
+ # ติดตั้ง dependencies
56
+ pip install -r requirements.txt
57
+
58
+ # รันแอป
59
+ python app.py
60
+ ```
61
+
62
+ แอปจะรันที่ `http://localhost:7860`
63
+
64
+ ## โครงสร้างโปรเจกต์
65
+
66
+ ```
67
+ facebook-clone/
68
+ ├── app.py # Main application file for Hugging Face Spaces
69
+ ├── requirements.txt # Python dependencies
70
+ ├── README.md # This file
71
+ ├── src/
72
+ │ ├── main.py # Original Flask app
73
+ │ ├── models/ # Database models
74
+ │ │ ├── user.py # User model
75
+ │ │ └── post.py # Post and Comment models
76
+ │ ├── routes/ # API routes
77
+ │ │ ├── user.py # User routes
78
+ │ │ └── post.py # Post routes
79
+ │ ├── static/ # Frontend files
80
+ │ │ ├── index.html # Main HTML file
81
+ │ │ ├── style.css # CSS styles
82
+ │ │ └── script.js # JavaScript functionality
83
+ │ └── database/ # SQLite database
84
+ │ └── app.db # Database file
85
+ └── venv/ # Virtual environment
86
+ ```
87
+
88
+ ## API Endpoints
89
+
90
+ ### Posts
91
+ - `GET /api/posts` - ดึงโพสต์ทั้งหมด
92
+ - `POST /api/posts` - สร้างโพสต์ใหม่
93
+ - `POST /api/posts/{id}/like` - ถูกใจโพสต์
94
+
95
+ ### Comments
96
+ - `GET /api/posts/{id}/comments` - ดึงคอมเมนต์ของโพสต์
97
+ - `POST /api/posts/{id}/comments` - เพิ่มคอมเมนต์
98
+
99
+ ## License
100
+
101
+ MIT License - ดูรายละเอียดในไฟล์ LICENSE
102
+
app.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+ # DON'T CHANGE THIS !!!
4
+ sys.path.insert(0, os.path.dirname(__file__))
5
+
6
+ from flask import Flask, send_from_directory
7
+ from flask_cors import CORS
8
+ from src.models.user import db
9
+ from src.routes.user import user_bp
10
+ from src.routes.post import post_bp
11
+
12
+ app = Flask(__name__, static_folder=os.path.join(os.path.dirname(__file__), 'src', 'static'))
13
+ app.config['SECRET_KEY'] = 'asdf#FGSgvasgf$5$WGT'
14
+
15
+ # Enable CORS for all routes
16
+ CORS(app)
17
+
18
+ app.register_blueprint(user_bp, url_prefix='/api')
19
+ app.register_blueprint(post_bp, url_prefix='/api')
20
+
21
+ # Database configuration
22
+ app.config['SQLALCHEMY_DATABASE_URI'] = f"sqlite:///{os.path.join(os.path.dirname(__file__), 'src', 'database', 'app.db')}"
23
+ app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
24
+ db.init_app(app)
25
+
26
+ # Create database tables
27
+ with app.app_context():
28
+ db.create_all()
29
+
30
+ @app.route('/', defaults={'path': ''})
31
+ @app.route('/<path:path>')
32
+ def serve(path):
33
+ static_folder_path = app.static_folder
34
+ if static_folder_path is None:
35
+ return "Static folder not configured", 404
36
+
37
+ if path != "" and os.path.exists(os.path.join(static_folder_path, path)):
38
+ return send_from_directory(static_folder_path, path)
39
+ else:
40
+ index_path = os.path.join(static_folder_path, 'index.html')
41
+ if os.path.exists(index_path):
42
+ return send_from_directory(static_folder_path, 'index.html')
43
+ else:
44
+ return "index.html not found", 404
45
+
46
+ if __name__ == '__main__':
47
+ port = int(os.environ.get('PORT', 7860))
48
+ app.run(host='0.0.0.0', port=port, debug=False)
49
+
requirements.txt ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ blinker==1.9.0
2
+ click==8.2.1
3
+ Flask==3.1.1
4
+ flask-cors==6.0.0
5
+ Flask-SQLAlchemy==3.1.1
6
+ greenlet==3.2.4
7
+ itsdangerous==2.2.0
8
+ Jinja2==3.1.6
9
+ MarkupSafe==3.0.2
10
+ SQLAlchemy==2.0.41
11
+ typing_extensions==4.14.0
12
+ Werkzeug==3.1.3