FutureX là nền tảng lập trình giáo dục dựa trên Scratch 3.0, được tùy chỉnh và phát triển để mang lại trải nghiệm học lập trình trực quan, sáng tạo cho học sinh.
- Giao diện lập trình kéo-thả trực quan dựa trên Scratch 3.0
- Hỗ trợ các dự án multimedia: hình ảnh, âm thanh, animation
- Tích hợp chatbot AI (futureX BOT) — hỏi đáp thông minh dựa trên tài liệu
- Hỗ trợ kết nối thiết bị vật lý (micro:bit)
- Đa ngôn ngữ (tiếng Việt và các ngôn ngữ khác)
- Deploy sẵn sàng lên Vercel
git clone https://github.com/do-hu-so/FutureX.git
cd FutureXnpm installTạo file .env từ template:
copy .env.example .envĐiền các giá trị vào .env:
GROQ_API_KEY=your_groq_api_key # lấy tại console.groq.com
PINECONE_API_KEY=your_pinecone_key # lấy tại app.pinecone.io
PINECONE_INDEX=scratch-academyLưu ý: File
.envđã được thêm vào.gitignore, không bao giờ commit file này lên GitHub.
# Chạy đồng thời webpack dev server + API server
npm run dev
# Hoặc chạy riêng từng phần:
npm run start # webpack dev server tại http://localhost:8601
npm run server # API server tại http://localhost:3000Bot sử dụng Pinecone vector database để lưu và tra cứu kiến thức. Để thêm tài liệu cho bot học:
FutureX/
└── data/
├── tai-lieu-khoa-hoc.docx
├── huong-dan-su-dung.pdf
└── faq.txt
Định dạng hỗ trợ: .docx, .pdf, .txt
npm run ingestScript sẽ tự động:
- Đọc tất cả file trong thư mục
/data - Chia nội dung thành các đoạn nhỏ (chunks)
- Tạo vector embedding cho từng đoạn
- Upload lên Pinecone index
scratch-academy
Sau khi ingest xong, bot sẽ có thể trả lời câu hỏi dựa trên nội dung các file đó.
npm run buildKết quả build sẽ nằm trong thư mục ./build/.
- Push code lên GitHub
- Import repository tại vercel.com
- Vào Settings → Environment Variables, thêm 3 biến:
| Tên biến | Giá trị |
|---|---|
GROQ_API_KEY |
API key từ console.groq.com |
PINECONE_API_KEY |
API key từ app.pinecone.io |
PINECONE_INDEX |
scratch-academy |
- Nhấn Redeploy — chatbot sẽ hoạt động ngay sau đó.
npm install -g vercel
vercelLưu ý: Build output được cấu hình tại thư mục
build/trong filevercel.json.
FutureX/
├── api/ # Vercel Serverless Functions (AI backend)
│ ├── chat.ts # POST /api/chat — hỏi đáp AI
│ └── lib/
│ ├── groq.ts # Groq LLM client
│ └── pinecone.ts # Pinecone vector DB client
├── data/ # Tài liệu để ingest vào Pinecone
├── scripts/
│ ├── server.ts # Local dev API server
│ └── ingest-data.ts # CLI ingest data vào Pinecone
├── src/ # Source code frontend (Scratch GUI)
│ ├── components/
│ │ └── chatbot/ # futureX BOT component
│ ├── containers/
│ ├── reducers/
│ └── lib/
├── static/ # Assets tĩnh
├── .env.example # Template API keys
├── vercel.json # Cấu hình deploy Vercel
├── webpack.config.js # Cấu hình Webpack
└── package.json # Dependencies & scripts
| Lệnh | Mô tả |
|---|---|
npm run dev |
Chạy webpack + API server cùng lúc |
npm run start |
Chỉ chạy webpack dev server (port 8601) |
npm run server |
Chỉ chạy API server (port 3000) |
npm run ingest |
Ingest dữ liệu từ /data vào Pinecone |
npm run build |
Build production vào thư mục build/ |
npm test |
Chạy toàn bộ test suite |
npm run test:unit |
Chạy unit tests |
npm run test:lint |
Kiểm tra code style |
npm run test:unit
npm run test:lintDự án này được phân phối dưới giấy phép AGPL-3.0.
FutureX được xây dựng dựa trên scratch-gui của Scratch Foundation.