GA Meta là hệ thống quản lý giveaway tự động cho các hoạt động trao thưởng trên Facebook. Hệ thống giúp đơn giản hóa quy trình từ thu thập dữ liệu bình luận, quản lý thông tin người tham gia, đến quay thưởng và thông báo kết quả.
Hệ thống được xây dựng theo mô hình Clean Architecture với Layered Pattern:
GAMeta/
├── src/
│ ├── GAMeta.API/ # ASP.NET Core Web API
│ ├── GAMeta.Domain/ # Domain Models & Entities
│ ├── GAMeta.Data/ # Data Access Layer (EF Core)
│ ├── GAMeta.Services.Facebook/ # Facebook Graph API Integration
│ ├── GAMeta.Services.Google/ # Google Sheets/Forms Integration
│ └── GAMeta.Web/ # React Frontend (TypeScript)
├── proposal.md # Detailed Solution Proposal
├── Dockerfile # Docker configuration
├── docker-compose.yml # Multi-container setup
└── README.md # This file
- Kết nối với Facebook Graph API
- Lọc bình luận theo tiêu chí (từ khóa, hashtag, emoji)
- Loại trừ duplicate và admin
- Đồng bộ với Google Sheets
- Tạo/sửa/xóa chiến dịch
- Cấu hình tiêu chí lọc
- Liên kết với Facebook post và Google Form
- Quản lý thời gian và sponsor
- Import từ Google Forms
- Đối chiếu với bình luận Facebook
- Xác thực thông tin
- Export danh sách
- Thuật toán ngẫu nhiên công bằng (Cryptographic RNG)
- Hỗ trợ nhiều vòng quay
- Verification hash
- Animation và visual effects
- Tạo/quản lý prizes
- Tracking số lượng và trạng thái
- Upload hình ảnh
- Phân loại giải thưởng
- Danh sách winners
- Tracking giao hàng
- Export cho sponsor
- Notification system
- Template engine
- Auto-fill thông tin
- Preview và publish
- Post lên Facebook tự động
- Framework: ASP.NET Core 8.0
- Language: C# 12
- ORM: Entity Framework Core 8
- Database: SQL Server / PostgreSQL
- Cache: Redis
- Background Jobs: Hangfire
- Framework: React 18 + TypeScript
- UI: Material-UI / Ant Design
- State: Redux Toolkit
- HTTP: Axios
- Facebook Graph API v18.0
- Google Sheets API v4
- Google Forms API
- .NET 8.0 SDK
- Node.js 18+
- SQL Server / PostgreSQL
- Redis (optional)
- Docker & Docker Compose (optional)
- Clone repository
git clone <repository-url>
cd GAMeta- Backend Setup
cd src/GAMeta.API
dotnet restore
dotnet build- Database Setup
dotnet ef database update- Frontend Setup
cd src/GAMeta.Web
npm install
npm run dev- Run Application
# Terminal 1: Backend
cd src/GAMeta.API
dotnet run
# Terminal 2: Frontend
cd src/GAMeta.Web
npm run devdocker-compose up -d{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=GAMeta;..."
},
"Facebook": {
"AppId": "your-app-id",
"AppSecret": "your-app-secret",
"AccessToken": "your-access-token"
},
"Google": {
"CredentialsPath": "path-to-service-account.json"
}
}Sau khi chạy API, truy cập Swagger UI tại:
https://localhost:5001/swagger
# Run all tests
dotnet test
# Run with coverage
dotnet test /p:CollectCoverage=trueaz webapp up --name gameta-api --resource-group gameta-rgdocker build -t gameta-api .
docker run -p 5000:5000 gameta-api- JWT Authentication
- Role-based Access Control (RBAC)
- Data encryption (at rest & in transit)
- Rate limiting
- CORS configuration
- Application Insights
- Serilog structured logging
- Health checks endpoint:
/health
For support and detailed proposal, see proposal.md
Version: 1.0.0
Last Updated: 2024
Status: In Development