# 🚀 Getting Started dengan Bahasa Indonesia Auto Formalizer

Selamat datang! Panduan ini akan membantu Anda memulai dengan cepat.

## 📋 Prerequisites

- Node.js >= 14.0.0
- npm >= 6.0.0
- Git (opsional, untuk version control)

## 🛠️ Instalasi

### 1. Clone Repository
```bash
git clone https://github.com/codenamekii/id-auto-formalizer.git
cd id-auto-formalizer
```

### 2. Run Setup Script
```bash
chmod +x setup.sh
./setup.sh
```

Atau manual:
```bash
npm install
```

### 3. Verifikasi Instalasi
```bash
npm test
node src/cli.js --help
```

## 🎯 Quick Start

### CLI Mode

```bash
node src/cli.js text "gue mau nanya dong"
node src/cli.js interactive
node src/cli.js file input.txt -o output.txt
node src/cli.js batch -d ./documents
```

### Programmatic Usage

```javascript
const { formalize } = require('./src/index');
console.log(formalize("thanks ya udh bantuin"));

const IndonesianFormalizer = require('./src/index');
const formalizer = new IndonesianFormalizer();

const result = formalizer.formalize("gue capek", {
  autoCapitalize: true,
  autoPunctuation: true
});

const analysis = formalizer.analyzeFormalityLevel("lo tau gak?");

const texts = ["gue mau", "thanks bgt", "sorry ya"];
const results = formalizer.formalizeBatch(texts);
```

## 🌐 Web Demo

```bash
python -m http.server 8000 --directory demo
# http://localhost:8000
docker-compose up formalizer-demo
# http://localhost:8080
```

## 🐳 Docker Usage

```bash
docker build -t id-auto-formalizer .
docker run -it id-auto-formalizer interactive
docker run id-auto-formalizer text "gue mau nanya"
docker run -v $(pwd)/data:/app/data id-auto-formalizer file /app/data/input.txt
docker-compose up
docker-compose run formalizer-cli interactive
```

## 🔧 Development

### Struktur Project
```
id-auto-formalizer/
├── src/
├── test/
├── demo/
├── api/
├── examples/
├── data/
├── package.json
└── README.md
```

### Tes & Lint
```bash
npm test
npm test -- --watch
npm test -- --coverage
npm run lint
npm run lint -- --fix
npm run format
```

## 📝 Contoh Penggunaan

### Email Formalization
```javascript
const emailDraft = `
hai pak,
sorry gue telat kirim laporannya.
file nya udh gue attach di email ini.
thanks ya.
`;
const formalEmail = formalize(emailDraft);
```

### Chat Bot Integration
```javascript
client.on('message', message => {
  if (message.channel.name === 'formal-only') {
    const analysis = formalizer.analyzeFormalityLevel(message.content);
    if (analysis.score < 70) {
      const formal = formalizer.formalize(message.content);
      message.reply(\`Gunakan bahasa formal: "\${formal}"\`);
    }
  }
});
```

### Custom Mappings
```javascript
formalizer.addMappings({
  'ngoding': 'memprogram',
  'deploy': 'meluncurkan aplikasi',
  'bug': 'kesalahan program',
  'commit': 'menyimpan perubahan'
});
```

## 🆘 Troubleshooting

```bash
# Module not found
rm -rf node_modules package-lock.json
npm install

# CLI permission
chmod +x src/cli.js

# Test gagal
npm test -- -u
```

## 🤝 Kontribusi

Lihat [CONTRIBUTING.md](CONTRIBUTING.md) untuk panduan kontribusi.

```bash
git checkout -b feature/add-new-mapping
# edit src/formalizer.js dan test
git commit -m "feat: add mapping for technical terms"
```

## 📚 Resources

- [API Documentation](docs/API.md)
- [Examples](examples/)
- [Contributing Guide](CONTRIBUTING.md)
- [License](LICENSE)

## 🔗 Links

- NPM: https://www.npmjs.com/package/id-auto-formalizer
- GitHub: https://github.com/codenamekii/id-auto-formalizer
- Issues: https://github.com/codenamekii/id-auto-formalizer/issues

## ❓ FAQ

**Q: Bagaimana cara menambah kata baru?**  
A: Edit `src/formalizer.js` dan tambahkan di `informalToFormal`.

**Q: Bisa untuk bahasa daerah?**  
A: Saat ini fokus Bahasa Indonesia. Dialek disambut.

**Q: Ada API?**  
A: Belum ada publik. Bisa host `api/server.js`.

**Q: Integrasi VS Code?**  
A: Dalam pengembangan. Gunakan CLI dulu.

---

Happy formalizing! 🇮🇩✨