Bygga
Type the product name from the box. Bygga shows every assembly step in 3D, with the parts, screws and tools for each one, and reads it out loud.
Lập lịch trình du lịch và khám phá những chia sẻ, gợi ý theo mùa từ cộng đồng VTripPlanner.
Translation pending
LifestyleTypeScript · JavaScriptGitHub @QuocBao2406OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Đồ án / Dự án: Nền tảng Web lập lịch trình du lịch thông minh (Smart Trip Planner), gợi ý địa điểm cá nhân hóa theo thời gian thực (ETA), ngân sách, mùa du lịch và mạng xã hội chia sẻ trải nghiệm du lịch tại Việt Nam.
Trước khi chạy dự án, máy tính cần được cài đặt sẵn:
>= 18.18.0 hoặc >= 20.x (Khuyến nghị Node.js 20 LTS).npm (đi kèm Node.js) hoặc pnpm / yarn.Mở terminal tại thư mục gốc của dự án và chạy:
npm install
Tạo tệp .env.local ở thư mục gốc (dựa trên tệp mẫu .env.example):
cp .env.example .env.local
Điền các thông tin kết nối Supabase và PostgreSQL của bạn vào .env.local:
# Cấu hình Supabase (Auth & Storage)
NEXT_PUBLIC_SUPABASE_URL="https://your-project.supabase.co"
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY="your-supabase-anon-key"
SUPABASE_SECRET_KEY="your-supabase-service-role-secret-key"
# Cấu hình Database (PostgreSQL / Supabase Transaction & Session Pooler)
DATABASE_URL="postgresql://postgres:password@host:6543/postgres?pgbouncer=true"
DIRECT_URL="postgresql://postgres:password@host:5432/postgres"
# (Tùy chọn) Google Routes API Key để đo khoảng cách và ETA thời gian thực
# Nếu không cấu hình, hệ thống sẽ tự động dùng thuật toán nội bộ Haversine Fallback
# GOOGLE_MAPS_API_KEY=""
Sinh client tương thích cho Prisma:
npm run prisma:generate
(Tùy chọn nếu khởi tạo DB mới) Áp dụng migration và nạp dữ liệu mẫu:
# Đẩy migration vào database:
npx prisma migrate deploy
# Nạp dữ liệu mẫu các địa điểm du lịch tại Việt Nam:
npm run seed:places
npm run dev
Truy cập trình duyệt tại địa chỉ: http://localhost:3000
| Đường dẫn | Tên phân hệ / Chức năng | Mô tả |
|---|---|---|
/ | Trang chủ & Bảng tin | Giới thiệu hệ thống, bảng tin cộng đồng (Infinite Feed), tương tác bài viết. |
/lap-lich-trinh | Lập lịch trình thông minh | Nhập điểm đi/đến, ngày giờ, số người, ngân sách; tính ETA và gợi ý lịch trình. |
/lap-lich-trinh/tuy-chinh | Biên tập Draft Lịch trình | Thay đổi giờ, hoán đổi thứ tự (↑/↓), thêm/xóa địa điểm trước khi lưu. |
/chuyen-di-cua-toi | Chuyến đi của tôi | Quản lý danh sách chuyến đi đã lưu, checklist hành trang và theo dõi chi tiêu. |
/uu-dai | Săn ưu đãi du lịch | Danh sách voucher/khuyến mãi từ đối tác đã được kiểm duyệt. |
/voucher-cua-toi | Kho voucher của tôi | Xem danh sách voucher đã nhận kèm mã QR sử dụng tại điểm dịch vụ. |
/bai-viet-cua-toi | Bài viết của tôi | Quản lý các bài viết chia sẻ kinh nghiệm du lịch của người dùng. |
/bai-viet-da-luu | Bài viết đã lưu | Bộ sưu tập bài viết đã bookmark. |
/dang-ky-doi-tac | Đăng ký Đối tác | Form nộp hồ sơ doanh nghiệp (khách sạn, nhà hàng, điểm tham quan,...). |
/doi-tac | Trung tâm Đối tác (Partner) | Quản lý chi nhánh, địa điểm và các chương trình ưu đãi giảm giá. |
/quan-tri | Trung tâm Quản trị (Admin) |
Hệ thống hỗ trợ 3 nhóm vai trò:
USER):
PARTNER):
/doi-tac sau khi hồ sơ đăng ký được Admin phê duyệt.ADMIN):
/quan-tri.vtripplanner/
├── prisma/ # Định nghĩa Database Schema & Script Seeds
│ ├── schema.prisma # Prisma Schema 20+ bảng dữ liệu
│ ├── migrations/ # Lịch sử các bản migration SQL
│ └── seed/ # Script seed địa điểm mẫu & hình ảnh
├── public/ # Static Assets (Hình ảnh, logo thương hiệu, icons)
├── src/
│ ├── app/ # Next.js App Router (Giao diện & API Endpoints)
│ ├── components/ # React Components theo từng phân hệ
│ ├── generated/prisma/ # Prisma Generated Client
│ ├── lib/ # Logic thuật toán & Thư viện dùng chung
│ │ ├── auth/ # RBAC, phân quyền và xác thực
│ │ ├── prisma.ts # Kết nối Database qua Postgres Adapter
│ │ ├── social-feed/ # Logic truy vấn và tương tác bài viết
│ │ ├── supabase/ # Supabase Auth & Storage Clients
│ │ └── trip-planner/ # Thuật toán cốt lõi: ETA, Budget, Slot Scoring
│ └── proxy.ts # Middleware proxy xử lý session Supabase SSR
├── PROJECT_SPEC_FOR_REPORT.md # Tài liệu đặc tả kiến trúc & giải thuật phục vụ viết báo cáo
├── .env.example # Tệp mẫu hướng dẫn cấu hình biến môi trường
├── package.json # Khai báo các gói thư viện
└── tsconfig.json # Cấu hình TypeScript
npm run dev: Chạy server phát triển (Development mode).npm run build: Build dự án thành bản sản phẩm (Production build).npm run start: Chạy bản build sản phẩm.npm run lint: Kiểm tra chất lượng mã nguồn bằng ESLint.npm run prisma:generate: Tạo mã Prisma Client tương thích.npm run seed:places: Chạy script nạp dữ liệu địa điểm du lịch mẫu.| Phê duyệt đối tác, duyệt địa điểm, duyệt ưu đãi, kiểm duyệt bài viết và người dùng. |