diff --git a/docs/wiki/Development-ms.md b/docs/wiki/Development-ms.md new file mode 100644 index 0000000..4eeeed2 --- /dev/null +++ b/docs/wiki/Development-ms.md @@ -0,0 +1,47 @@ +[English](Development) · [Dansk](Development-da) · **Bahasa Malaysia** + +# Pembangunan + +## Susun atur + +| Folder | Kandungan | +| --- | --- | +| `src/password_manager/domain` | Rekod, penjana kata laluan dan ralat; tiada input atau output | +| `src/password_manager/application` | Kes guna dan port repositori | +| `src/password_manager/infrastructure` | Repositori JSON | +| `src/password_manager/presentation` | Paparan MVVM dan model paparan | +| `src/password_manager/constants.py` | Semua pemalar dan mesej | +| `tests/` | Ujian `unit`, `integration` dan `e2e` | +| `tools/` | `capture_screenshots.py` | + +Import menuju ke dalam; hanya `main.py` menghubungkan lapisan. + +## Ujian dan lint + +```bash +python -m pytest +python -m ruff format src tests tools +python -m ruff check src tests tools +``` + +## Dokumentasi kod sumber + +Komen ditulis dalam gaya Doxygen. Bina HTML dengan `doxygen Doxyfile`; ia dibuka +di `docs/doxygen/html/index.html`. + +## Tangkapan skrin + +Pada Windows dengan persekitaran maya aktif: + +```bash +python tools/capture_screenshots.py +``` + +Imej ditulis ke `docs/images/` daripada tetingkap sebenar dan fail data +sementara. + +## Dokumen projek + +Projek mengikut aliran kerja perancangan dahulu: Business Case, analisis +pemegang taruh, pelan projek dan pencapaian berada dalam `docs/`. Kerja +dilakukan pada satu cabang dan satu pull request bagi setiap pencapaian. diff --git a/docs/wiki/Home-ms.md b/docs/wiki/Home-ms.md new file mode 100644 index 0000000..6be0bb4 --- /dev/null +++ b/docs/wiki/Home-ms.md @@ -0,0 +1,29 @@ +[English](Home) · [Dansk](Home-da) · **Bahasa Malaysia** + +# Password Manager + +Pengurus kata laluan Tkinter yang kecil daripada hari ke-30 kursus Udemy "100 +Days of Code: The Complete Python Pro Bootcamp". Ia menjana kata laluan, +menyimpannya dalam fail JSON dan mencarinya mengikut laman web. + +![Tetingkap utama](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/030-password-manager/raw/branch/main/docs/images/main-window.png) + +## Fungsinya + +- **Menjana** kata laluan rawak dan menyalinnya ke papan keratan. +- **Menambah** laman web, alamat e-mel dan kata laluan ke dalam `data.json`. +- **Mencari** laman web dan memaparkan alamat e-mel dan kata laluan yang + disimpan. +- Terus berjalan apabila `data.json` tiada, kosong atau rosak. + +> **Nota keselamatan.** Kata laluan disimpan sebagai JSON biasa dan tidak +> disulitkan. Ini projek pembelajaran; jangan gunakannya untuk kata laluan +> sebenar. + +## Halaman + +- [Pemasangan](Installation-ms) +- [Penggunaan](Usage-ms) +- [Pembangunan](Development-ms) + +Kod sumber dan isu: [repositori](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/030-password-manager). diff --git a/docs/wiki/Installation-ms.md b/docs/wiki/Installation-ms.md new file mode 100644 index 0000000..5d925a0 --- /dev/null +++ b/docs/wiki/Installation-ms.md @@ -0,0 +1,39 @@ +[English](Installation) · [Dansk](Installation-da) · **Bahasa Malaysia** + +# Pemasangan + +## Keperluan + +- Python 3.13 atau lebih baharu dengan Tkinter. Pada Debian atau Ubuntu pasang + `python3-tk`. +- `venv` dan `pip`, kedua-duanya sebahagian daripada Python. +- Tiada kebergantungan semasa dijalankan. + +## Cipta persekitaran maya tempatan + +Windows (PowerShell): + +```powershell +python -m venv .venv +.venv/Scripts/Activate.ps1 +python -m pip install --upgrade pip +python -m pip install -e ".[dev]" +``` + +Linux dan macOS: + +```bash +python3 -m venv .venv +source .venv/bin/activate +python -m pip install --upgrade pip +python -m pip install -e ".[dev]" +``` + +Tambahan `[dev]` memasang pytest dan ruff. Tinggalkannya +(`python -m pip install -e .`) jika anda hanya mahu menjalankan program. + +## Semak pemasangan + +```bash +python -m pytest +``` diff --git a/docs/wiki/Usage-ms.md b/docs/wiki/Usage-ms.md new file mode 100644 index 0000000..9428d04 --- /dev/null +++ b/docs/wiki/Usage-ms.md @@ -0,0 +1,49 @@ +[English](Usage) · [Dansk](Usage-da) · **Bahasa Malaysia** + +# Penggunaan + +Mulakan program dengan persekitaran maya aktif: + +```bash +python -m password_manager +``` + +Program menyimpan datanya dalam `data.json` di folder tempat anda memulakannya. + +## Jana dan tambah kata laluan + +1. Taip laman web. +2. Tekan **Generate Password**. Kata laluan diisi dan disalin ke papan + keratan. +3. Semak alamat e-mel dan tekan **Add**. Sahkan dialog dan rekod disimpan. + +![Tetingkap utama selepas Generate Password](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/030-password-manager/raw/branch/main/docs/images/main-window.png) + +![Pengesahan sebelum rekod disimpan](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/030-password-manager/raw/branch/main/docs/images/add-confirmation.png) + +Jika medan dibiarkan kosong, amaran dipaparkan dan tiada apa yang disimpan. + +## Carian + +Taip laman web dan tekan **Search**. Alamat e-mel dan kata laluan yang disimpan +dipaparkan. + +![Carian menemui laman web yang disimpan](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/030-password-manager/raw/branch/main/docs/images/search-found.png) + +Jika tiada apa yang disimpan untuk laman web itu, atau fail data belum wujud, +satu mesej memberitahunya. + +![Carian untuk laman web yang tidak dikenali](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/030-password-manager/raw/branch/main/docs/images/search-not-found.png) + +## Fail data + +`data.json` mengandungi satu rekod bagi setiap laman web: + +```json +{ + "example.com": { + "email": "jens@example.com", + "password": "Sample#Pass123" + } +} +```