Skip to content

GNATAS/MVCproject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crowdfunding MVC Project

ขั้นตอนรันโปรเจกต์

  1. สร้างฐานข้อมูล: รันสคริปต์เพื่อสร้างไฟล์ฐานข้อมูล crowdfunding.db และเพิ่มข้อมูลเริ่มต้น

    python init_db.py
  2. รันแอปพลิเคชัน:

    python app.py

Model

ส่วน Model อยู่ในไดเรกทอรี services/ ทำหน้าที่เชื่อมต่อและจัดการข้อมูลในฐานข้อมูล (crowdfunding.db) รวมถึงประมวลผลตรรกะทางธุรกิจ

  • services/database.py: คลาสพื้นฐานสำหรับจัดการการเชื่อมต่อฐานข้อมูล SQLite
  • services/user_service.py: จัดการข้อมูลผู้ใช้ เช่น การตรวจสอบการล็อกอิน
  • services/project_service.py: จัดการข้อมูลโปรเจกต์ เช่น การดึงรายการโปรเจกต์ทั้งหมด, การค้นหา, และการเรียงลำดับ
  • services/category_service.py: จัดการข้อมูลหมวดหมู่
  • services/reward_tier_service.py: จัดการข้อมูลระดับของรางวัล (Reward Tiers) ของแต่ละโปรเจกต์
  • services/pledge_service.py: จัดการตรรกะหลักของการสนับสนุนโปรเจกต์ (Pledge) เช่น การตรวจสอบเงื่อนไขและบันทึกข้อมูลการสนับสนุน
  • init_db.py: สคริปต์สำหรับสร้างฐานข้อมูลและเพิ่มข้อมูลเริ่มต้น (ไม่ใช่ส่วนหนึ่งของแอปพลิเคชันขณะทำงาน)

View: ส่วนแสดงผล

ส่วน View อยู่ในไดเรกทอรี templates/ เป็นไฟล์ HTML ที่ใช้แสดงผลข้อมูลให้ผู้ใช้เห็น

  • templates/base.html: เทมเพลตหลักที่เป็นโครงสร้างของทุกหน้า
  • templates/login.html: หน้าสำหรับเข้าสู่ระบบ
  • templates/index.html: หน้าหลักสำหรับแสดงรายการโปรเจกต์ทั้งหมด
  • templates/project_detail.html: หน้าแสดงรายละเอียดของโปรเจกต์และฟอร์มสำหรับสนับสนุน
  • templates/stats.html: หน้าแสดงสถิติการสนับสนุนของผู้ใช้

Controller: ตัวกลางประสานงาน

ส่วน Controller คือไฟล์ app.py ซึ่งทำหน้าที่เป็นศูนย์กลางของแอปพลิเคชัน

  • รับคำสั่ง (HTTP Request) จากผู้ใช้ผ่าน URL Routes
  • เรียกใช้ Service ต่างๆ (Model) เพื่อจัดการข้อมูล
  • ส่งข้อมูลที่ได้ไปแสดงผลที่หน้าเว็บ (View) ผ่านการ Render Template

การทำงานร่วมกัน

  1. ผู้ใช้ส่ง Request มายัง URL ที่กำหนดไว้
  2. Controller (app.py) รับ Request และเรียกใช้ Model (คลาสใน services/) ที่เกี่ยวข้อง
  3. Model ดึงหรือบันทึกข้อมูลลงในฐานข้อมูล แล้วส่งผลลัพธ์กลับไปให้ Controller
  4. Controller ส่งต่อข้อมูลที่ได้รับไปยัง View (ไฟล์ใน templates/)
  5. View นำข้อมูลมาสร้างเป็นหน้าเว็บ HTML แล้วส่งกลับไปแสดงผลที่เบราว์เซอร์ของผู้ใช้

Routes/Actions และหน้าจอ View สำคัญ

Routes/Actions หลัก (ใน app.py)

  • GET, POST /login:
    • Action: จัดการการเข้าสู่ระบบของผู้ใช้
    • View: login.html
  • GET /:
    • Action: แสดงรายการโปรเจกต์ทั้งหมด พร้อมฟังก์ชันค้นหาและจัดเรียง
    • View: index.html
  • GET, POST /project/<id>:
    • Action: แสดงรายละเอียดโปรเจกต์ และรับข้อมูลการสนับสนุน (Pledge) จากผู้ใช้ผ่านฟอร์ม
    • View: project_detail.html
  • GET /stats:
    • Action: แสดงสถิติการสนับสนุนโปรเจกต์ของผู้ใช้ที่ล็อกอินอยู่
    • View: stats.html
  • GET /logout:
    • Action: จัดการการออกจากระบบ

หน้าจอ View สำคัญ

  • index.html: หน้าแรกที่ผู้ใช้เห็นหลังจากล็อกอิน แสดงโปรเจกต์ทั้งหมดให้เลือกดู
  • project_detail.html: หน้าที่สำคัญที่สุดสำหรับการมีปฏิสัมพันธ์กับผู้ใช้ ผู้ใช้สามารถดูรายละเอียดและตัดสินใจสนับสนุนโปรเจกต์ได้จากหน้านี้
  • stats.html: หน้าสำหรับให้ผู้ใช้ดูสถิติการสนับสนุนของตนเอง โดยจะแสดงรายการว่าการสนับสนุนใดสำเร็จหรือถูกปฏิเสธ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published