An open API service indexing awesome lists of open source software.

https://github.com/fitri-hy/web2apk-generator-api

Sebuah server sederhana berbasis Express.js yang dapat menghasilkan file APK Android dari sebuah URL website menggunakan Apache Cordova.
https://github.com/fitri-hy/web2apk-generator-api

apache-cordova cordova expressjs nodejs web2apk website

Last synced: about 1 year ago
JSON representation

Sebuah server sederhana berbasis Express.js yang dapat menghasilkan file APK Android dari sebuah URL website menggunakan Apache Cordova.

Awesome Lists containing this project

README

          

# Web2APK (Cordova Webview) Generator API Nodejs

Sebuah server sederhana berbasis Express.js yang dapat menghasilkan file APK Android dari sebuah URL website menggunakan Apache Cordova melalui API.

---

## ๐Ÿš€ Fitur

- Membuat APK Android dari URL website.
- Upload logo PNG (via form-data) atau dari URL (via body JSON).
- Link download APK langsung tersedia setelah build.
- Build otomatis dengan Cordova + SDK Android + Gradle.
- Bersih-bersih otomatis folder build sementara.

---

## ๐Ÿงฐ Kebutuhan

Sebelum menjalankan server ini, pastikan kamu sudah menginstal:

* **Node.js v23.8.0+**
* **NPM 11.3.0+**
* **Android SDK 34+**
* **Gradle 8.14+**
* **Cordova** (global)

```bash
npm install -g cordova
```

---

## ๐Ÿ› ๏ธ Instalasi

1. **Clone & masuk ke folder**
```bash
git clone https://github.com/fitri-hy/web2apk-generator-api.git
cd web2apk-generator-api
```

2. **Install dependensi**

```bash
npm install
```
> *Lakukan juga di dalam folder `app-template`*

3. **Atur path SDK Android dan Gradle**

Buka folder `config/paths.js` dan bagian berikut:

```js
ANDROID_SDK_PATH: 'C:\\Users\\Name-PC\\AppData\\Local\\Android\\Sdk',
GRADLE_PATH: path.join(__dirname, '../gradle-8.14/bin')
```

4. **Jalankan server**

```bash
node index.js
```

---

## ๐Ÿงช Pengujian API

### โœ… Metode 1: Form-Data (Upload File)

Gunakan jika ingin mengunggah logo secara langsung.

#### ๐Ÿ”ธ Header

```
Content-Type: multipart/form-data
```

#### ๐Ÿ”ธ Form Fields

| Field | Wajib | Keterangan |
| -------- | -------- | -------------------------- |
| appName | โœ… | Nama aplikasi Android |
| url | โœ… | URL yang dimuat di WebView |
| logoFile | opsional | File logo PNG (.png saja) |

#### ๐Ÿงช Contoh via Postman

* Method: `POST`
* URL: `http://localhost:8800/generate`
* Body > form-data:

* `appName`: `ContohApp`
* `url`: `https://example.com`
* `logoFile`: (Upload file PNG)

#### ๐Ÿ“ค Respons

```json
{
"message": "APK generated",
"downloadUrl": "http://localhost:8800/download/ContohApp-abc123.apk"
}
```

---

### โœ… Metode 2: Body JSON (Pakai logo dari URL)

Gunakan jika tidak ingin upload logo, cukup pakai URL PNG.

#### ๐Ÿ”ธ Header

```
Content-Type: application/json
```

#### ๐Ÿ”ธ Body (raw JSON)

```json
{
"appName": "MyWebApp",
"url": "https://your-site.com",
"logoUrl": "https://your-site.com/images/logo.png"
}
```

> Logo harus berformat PNG dan dapat diakses publik.

#### ๐Ÿงช Contoh via curl

```bash
curl -X POST http://localhost:8800/generate \
-H "Content-Type: application/json" \
-d '{
"appName": "MyWebApp",
"url": "https://your-site.com",
"logoUrl": "https://your-site.com/images/logo.png"
}'
```

---

## โš ๏ธ Validasi & Error

* โŒ `400` jika `appName`/`url` tidak dikirim.
* โŒ `400` jika file logo bukan PNG.
* โŒ `500` jika gagal build APK.
* โš ๏ธ Logo bisa di-skip, tapi hasil APK pakai ikon default.

---

## ๐Ÿ“ Output

APK hasil build disimpan di folder:

```
/output
```

Bisa diunduh dari:

```
http://localhost:8800/download/{nama-file.apk}
```

---

## ๐Ÿงน Otomatis Bersih-Bersih

Folder sementara otomatis dihapus setelah proses build selesai atau jika terjadi error.

---

## ๐Ÿ“ Struktur Folder

```
web2apk-generator-api/
โ”‚
โ”œโ”€โ”€ app-template/
โ”œโ”€โ”€ config/
โ”œโ”€โ”€ controllers/
โ”œโ”€โ”€ middlewares/
โ”œโ”€โ”€ node_modules/
โ”œโ”€โ”€ output/
โ”œโ”€โ”€ routes/
โ”œโ”€โ”€ utils/
โ”œโ”€โ”€ gradle-8.14
โ”œโ”€โ”€ index.js
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ README.md
```