Cảm ơn bạn đã quan tâm đóng góp cho Open-Applist (Snowboard). Dưới đây là hướng dẫn nhanh để bạn có thể đóng góp an toàn và nhất quán.
- Thêm mục Webclip / Shortcut mới vào
db.json(ứng dụng bên thứ ba). - Thêm app hệ thống (icon cục bộ) vào
system-app.jsoncùng file ảnh trong thư mụcsystemapp/. - Cập nhật hoặc bổ sung tệp ngôn ngữ trong
Language/(ví dụvi.json,en_US.json). - Sửa lỗi giao diện/logic trong
index.html, CSS trongcss/, hoặc scripts liên quan. - Tài liệu: README, CONTRIBUTING, hoặc tạo hướng dẫn cài đặt/FAQ.
- Fork repo này vào tài khoản của bạn.
- Tạo nhánh mới cho thay đổi:
git checkout -b feat/add-my-webclip - Thực hiện thay đổi, commit với thông điệp rõ ràng (ví dụ:
Add: webclip for example.com). - Push nhánh lên fork và mở Pull Request (PR) về branch mặc định (master) của repo này.
- Trong PR, mô tả rõ: mục đích thay đổi, cách kiểm thử, và file nào bị ảnh hưởng.
- Mở
db.jsonvà thêm một key mới có dạng unique bundle id (ví dụcom.example.myapp). - Giá trị là object chứa ít nhất:
Name: Tên hiển thị (string)icon: url ảnh (http/https) hoặc đường dẫn nội bộ (ví dụicons/myicon.png)
Ví dụ: { "com.example.myapp": { "Name": "My App", "icon": "https://example.com/myicon.png" } }
Lưu ý:
- Nếu icon là URL bên ngoài, kiểm tra rằng URL cho phép truy cập công khai (no auth).
- Không đưa khóa bí mật, API key, hoặc dữ liệu nhạy cảm vào repo.
- Nếu muốn thêm nhiều icons cục bộ, thêm file ảnh vào thư mục
icons/hoặcsystemapp/và tham chiếu đường dẫn tương ứng.
- Thêm entry mới vào
system-app.jsonvới bundle id làm key và object cóNamevàicon(điểm tới file trongsystemapp/). - Đặt file icon trong thư mục
systemapp/với tên phù hợp.
Ví dụ: "com.apple.example": { "Name": "Example", "icon": "systemapp/Example.png" }
- Các file ngôn ngữ đặt trong thư mục
Language/theo tên:en_US.json,vi.json,en.json,... - Các tệp là JSON chứa object phân cấp theo key (ví dụ
effects.title,button.close). - Khi thêm key mới, cập nhật cả file tiếng Anh (
en_US.json) và, nếu có, tiếng Việt (vi.json).
- Giữ HTML/JS/CSS rõ ràng, indent 2 spaces.
- Đối với thay đổi JS lớn, tách ra branch riêng và mô tả rõ trong PR.
- Không commit file nhị phân lớn không cần thiết.
- Đây là repo static; bạn có thể chạy bằng một static server để test:
- Python 3:
python -m http.server 8000(chạy trong thư mục repo) -> mởhttp://localhost:8000 - hoặc dùng
npx http-servernếu có Node.js
- Python 3:
- Mở trang bằng Safari (trên iPhone hoặc iPad) để kiểm tra tính năng "Add to Home Screen" và tích hợp Shortcuts.
- Kiểm tra behavior offline: đăng ký Service Worker (sw.js) và thử load khi offline.
- Chắc chắn không để credential, API keys, hay dữ liệu cá nhân trong commit.
- Kiểm tra JSON hợp lệ (
jq . db.jsonhoặcpython -m json.tool db.json). - Kiểm tra ảnh/icon tồn tại và kích thước hiển thị ổn (thường vuông, 100x100 hoặc tương đương).
- Chạy qua UI để đảm bảo không có lỗi console rõ ràng.
- Mã nguồn trong repo được phát hành theo MIT License (xem file
LICENSE). - Khi đóng góp, bạn đồng ý rằng đóng góp của bạn có thể được phát hành lại theo MIT License.
- Nếu bạn muốn thêm header bản quyền vào file nguồn, dùng SPFDX tag ngắn:
SPDX-License-Identifier: MITcùng dòng Copyright. - Ví dụ (JavaScript): /*
- Copyright (c) 2026 Ngocsen
- SPDX-License-Identifier: MIT */
- Nếu bạn không chắc chắn nên làm gì, mở một Issue trước để thảo luận.
- Mọi PR có thể được yêu cầu chỉnh sửa — vui lòng theo dõi phản hồi và cập nhật PR.
Cảm ơn bạn — mọi đóng góp đều được hoan nghênh!