EnglishPlan

EnglishPlan: mở và chạy

  1. Giải nén vào thư mục EnglishPlan của bạn. Bên trong sẽ có EnglishPlan.xcodeproj và thư mục EnglishPlan.
  2. Nhấp đúp EnglishPlan.xcodeproj để mở bằng Xcode.
  3. Chỉ lần đầu tiên: bấm vào project EnglishPlan ở thanh bên trái, chọn tab Signing & Capabilities, ở mục Team chọn Apple ID của bạn (Personal Team). Nếu chưa có, bấm Add Account để đăng nhập. Nếu Xcode báo Bundle Identifier đã có người dùng, đổi đuôi study2027 thành một chữ bất kỳ.
  4. Trên iPhone: bật Cài đặt > Quyền riêng tư & Bảo mật > Chế độ nhà phát triển, rồi khởi động lại máy.
  5. Cắm iPhone vào Mac, chọn iPhone ở thanh trên cùng của Xcode, bấm Run (⌘R).
  6. Lần đầu mở app: vào Cài đặt > Cài đặt chung > Quản lý VPN & thiết bị, chọn Apple ID của bạn và bấm Tin cậy.

Apple ID miễn phí: app hết hạn sau 7 ngày. Khi đó cắm máy và bấm Run lại, dữ liệu vẫn giữ nguyên nếu bạn không xóa app.

Nếu Xcode báo lỗi khi build, copy nội dung lỗi gửi lại để sửa.


Bản web: english.vnpt.app

Thư mục web/ là bản web của app, có đủ 5 tab: Hôm nay, Lộ trình, Từ vựng, Luyện tập, Tiến độ. Bản web là trang tĩnh, không cần build. Mỗi lần push lên main, GitHub Actions (.github/workflows/deploy-web.yml) tự deploy lên GitHub Pages.

Tính năng Bản web
Lộ trình, bài học, tự đánh giá
600 từ vựng, phát âm, ôn thẻ lặp lại ngắt quãng Có (giọng đọc của trình duyệt, ưu tiên Anh-Anh)
Ghi âm Speaking Có. Bản ghi chỉ lưu trên trình duyệt đó
Trang viết, bấm giờ 40 phút, sao chép cho AI chấm
Đồng bộ tiến độ qua tài khoản Google Có (Firebase). Chưa cấu hình thì lưu trên trình duyệt
Cài lên màn hình chính, mở khi mất mạng Có (PWA)
Thông báo từ vựng 15 phút Chưa (chỉ có trên app iOS)

1. Bật GitHub Pages

  1. Push code lên GitHub.
  2. Trên repo doanhnn/EnglishPlan, vào Settings > Pages:
    • Source: chọn GitHub Actions.
    • Custom domain: nhập english.vnpt.app rồi bấm Save.
  3. Vào tab Actions, kiểm tra workflow Deploy web chạy xong (dấu tích xanh). Nếu workflow chưa chạy, bấm Run workflow.

2. Trỏ tên miền trên Google Cloud DNS

Vào Google Cloud Console > Network services > Cloud DNS, chọn zone của vnpt.app, bấm Add standard:

Hoặc dùng lệnh (thay ZONE_NAME bằng tên zone):

gcloud dns record-sets create english.vnpt.app. --zone=ZONE_NAME --type=CNAME --ttl=300 --rrdatas=doanhnn.github.io.

Sau vài phút đến khoảng 1 giờ, quay lại Settings > Pages:

Khuyến nghị: xác minh domain để người khác không chiếm được subdomain. Vào GitHub > Settings (tài khoản) > Pages > Add a domain, nhập vnpt.app, rồi thêm bản ghi TXT mà GitHub đưa cho bạn vào Cloud DNS.

3. Bật đồng bộ qua tài khoản (Firebase, miễn phí)

  1. Vào https://console.firebase.google.com, bấm Create a project. Bạn có thể chọn luôn project Google Cloud đang chứa DNS.
  2. Build > Authentication > Get started. Tab Sign-in method: bật Google.
  3. Authentication > Settings > Authorized domains: thêm english.vnpt.app.
  4. Build > Firestore Database > Create database:
    • Chọn location asia-southeast1 (Singapore), chế độ production.
    • Vào tab Rules, dán nội dung file firestore.rules rồi bấm Publish.
  5. Project settings > General > Your apps, bấm biểu tượng Web (</>) để đăng ký app. Copy đoạn firebaseConfig vào web/js/firebase-config.js:
export const FIREBASE_CONFIG = {
  apiKey: "",
  authDomain: "….firebaseapp.com",
  projectId: "",
  appId: "",
};
  1. Commit và push. Vào tab Tiến độ > Tài khoản và đồng bộ, bấm Đăng nhập bằng Google.

Các giá trị trong firebaseConfig được phép công khai. Dữ liệu vẫn an toàn nhờ firestore.rules: mỗi tài khoản chỉ đọc và ghi được dữ liệu của chính mình.

Lần đầu đăng nhập trên một trình duyệt, tiến độ đang có ở trình duyệt đó được gộp với dữ liệu trên tài khoản, nên không mất gì. Sau đó các thay đổi đồng bộ gần như tức thì giữa các máy.

Cập nhật nội dung