# 🚀 Hướng dẫn Cấu hình Môi trường (Environment Setup Guide)
Dành cho Người mua: Mọi thông tin nhạy cảm đã được loại bỏ khỏi mã nguồn để đảm bảo tính bảo mật. Bạn cần làm theo các bước dưới đây để tự tạo lại các cấu hình cần thiết nhằm chạy ứng dụng trên môi trường của riêng bạn.
---
## 🛠 1. Cấu hình Backend (Postly Server - NestJS)
### Bước 1: Tạo file .env
Vào thư mục `postly-server/`, tạo tệp `.env` dựa trên tệp [.env.example](file:///Users/thien/Documents/postly-projets/postly-server/.env.example) và điền các thông tin:
* **MONGODB_URI**: Chuỗi kết nối tới MongoDB Atlas (Lưu ý: Bạn phải tạo Cluster, Database và User trên [MongoDB Atlas](https://www.mongodb.com/cloud/atlas)).
* **JWT_SECRET**: Chuỗi ký tự bất kỳ (càng dài càng tốt) để mã hóa dữ liệu xác thực.
* **MAIL_PASS**: Mật khẩu ứng dụng của Gmail (Cách lấy: Google Account -> Security -> 2-Step Verification -> App Passwords).
* **RESEND_API_KEY**: Lấy từ [resend.com](https://resend.com) (nếu muốn dùng dịch vụ này để gửi email thương mại).
### Bước 2: Cấu hình Firebase Admin SDK (Đối với server)
1. Truy cập [Firebase Console](https://console.firebase.google.com/).
2. Mở dự án của bạn (nếu chưa có, hãy tạo mới).
3. Vào **Project Settings** -> **Service Accounts**.
4. Nhấp vào **Generate New Private Key**. Tải xuống tệp `.json`.
5. Đổi tên tệp này thành `firebase-adminsdk.json` và lưu vào thư mục `postly-server/`.
6. *Lưu ý: Kiểm tra file `src/app.module.ts` hoặc nơi khởi tạo Firebase để đảm bảo tên file trùng khớp.*
---
## 📱 2. Cấu hình Frontend (Postly Mobile - Flutter)
### Bước 1: Tạo file .env
Vào thư mục `postly/`, tạo tệp `.env` dựa trên [.env.example]
* **PROD_BASE_URL**: URL mà server NestJS đang chạy (ví dụ: `https://api.my-app.com`).
* **GOOGLE_WEB_CLIENT_ID**: Lấy mã này bằng cách vào Firebase Console -> **Authentication** -> **Sign-in method** -> **Google** -> mục **Web SDK configuration**.
### Bước 2: Thêm tệp cấu hình Firebase cho di động
Để các tính năng thông báo (FCM) và đăng nhập hoạt động, bạn cần tải cấu hình cho app:
1. Vào Firebase Console -> **Project Settings**.
2. **App Android:** Tải tệp `google-services.json` và dán vào `postly/android/app/`.
3. **App iOS:** Tải tệp `GoogleService-Info.plist` và dán vào `postly/ios/Runner/`.
4. Cập nhật cấu hình Firebase trong Flutter: Cài đặt [FlutterFire CLI](https://firebase.flutter.dev/docs/cli/) và chạy lệnh sau trong thư mục `postly/`:
```bash
flutterfire configure
```
---
## ✅ Kiểm tra hoàn tất
Sau khi thực hiện các bước trên, hãy khởi động server và ứng dụng để trải nghiệm:
**Sử dụng Server:**
```bash
cd postly-server
npm install
npm run start:dev
```
**Chạy App:**
```bash
cd postly
flutter pub get
flutter run
```
Chúc bạn phát triển ứng dụng thành công! 🚀