- ๆบ่ฝ้ข่ฏ็ปไน : ๅบไบGoogle Gemini AI็ๆบ่ฝ้ข่ฏๅฏน่ฏ
- ๅฎๆถ่ฏญ้ณไบคไบ: ๆฏๆ่ฏญ้ณ่พๅ ฅๅAI่ฏญ้ณๅๅค
- ๅค็ง้ข่ฏ็ฑปๅ: ๆๆฏ้ข่ฏใ่กไธบ้ข่ฏใๆกไพๅๆ็ญ
- ่ฟๅบฆ่ท่ธช: ่ฏฆ็ป็้ข่ฏ่ฎฐๅฝๅ่ฟๆญฅๅๆ
- ไธชๆงๅๅ้ฆ: AI็ๆ็ไธชๆงๅๆน่ฟๅปบ่ฎฎ
- ่ทจๅนณๅฐๆฏๆ: WindowsใmacOSใLinuxๅ จๅนณๅฐๆฏๆ
- Node.js 18.0+
- npm 8.0+
- Git 2.0+
-
ๅ ้้กน็ฎ
git clone https://github.com/your-org/bready.git cd bready -
ๅฎ่ฃ ไพ่ต
npm install
-
้ ็ฝฎ็ฏๅขๅ้
cp .env.example .env # ็ผ่พ .env ๆไปถ๏ผๅกซๅ ฅๅฟ ่ฆ็้ ็ฝฎ -
่ฎพ็ฝฎๆฐๆฎๅบ
# macOS ๅฎ่ฃ PostgreSQL brew install postgresql@15 brew services start postgresql@15 # ๅๅปบๆฐๆฎๅบ psql -U postgres -c "CREATE DATABASE bready;" # ๅบ็จไผ่ชๅจๅๅงๅ่กจ็ปๆ
-
้ ็ฝฎ็ฏๅขๅ้
# ็ผ่พ .env ๆไปถ DB_HOST=localhost DB_PORT=5432 DB_NAME=bready DB_USER=postgres DB_PASSWORD=your_password VITE_GEMINI_API_KEY=your_api_key
-
ๅฏๅจๅผๅๆๅกๅจ
npm run dev
้ป่ฎค็ฎก็ๅ่ดฆๆท: admin@bready.app / admin123 ๏ผ้ฆๆฌก็ปๅฝๅ่ฏทไฟฎๆนๅฏ็ ๏ผ
# ๆๅปบๅบ็จ
npm run build
# ๆๅ
ๆก้ขๅบ็จ
npm run dist
# ๆๅ
ๆๆๅนณๅฐ
npm run dist:all- ๅ็ซฏๆกๆถ: React 19 + TypeScript
- ๆก้ขๆกๆถ: Electron
- ๆๅปบๅทฅๅ ท: Vite
- ๆ ทๅผๆกๆถ: Tailwind CSS
- ๆฌๅฐๅ็ซฏ: ๆฌๅฐ PostgreSQL + ไธป่ฟ็จ IPC + ๅฏ้ๆฌๅฐ HTTP ๅผๅๆๅก๏ผ
src/api-server.ts๏ผ - AI ๆๅก: Google Gemini API
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Bready ๆก้ขๅบ็จๆถๆ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๆธฒๆ่ฟ็จ (React) โ
โ โโโ UI็ปไปถๅฑ โ
โ โโโ ็ถๆ็ฎก็ (React Context) โ
โ โโโ ไธๅก้ป่พๅฑ โ
โ โโโ ๆฐๆฎ่ฎฟ้ฎๅฑ (Supabase Client) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ้ขๅ ่ฝฝ่ๆฌ (Preload) โ
โ โโโ IPC ๅฎๅ
จๆกฅๆฅ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ไธป่ฟ็จ (Electron Main) โ
โ โโโ ็ชๅฃ็ฎก็ โ
โ โโโ IPC ๅค็ โ
โ โโโ Gemini API ้ๆ โ
โ โโโ ้ณ้ขๅค็ โ
โ โโโ ๆฐๆฎๅบๆไฝ โ
โ โโโ ็ณป็ปๆ้็ฎก็ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๅค้จๆๅก โ
โ โโโ Google Gemini API โ
โ โโโ Supabase (่ฎค่ฏ + ๆฐๆฎๅบ) โ
โ โโโ ็ณป็ป้ณ้ขๆๅก โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# ๅๅ
ๆต่ฏ๏ผVitest๏ผ
npm run test:unit
# Electron/Playwright E2E๏ผๅฏ้๏ผ่ๆฌไฟ็๏ผ
npm run test-
ๅฎ่ฃ ๅผๅไพ่ต
npm install
-
ๅฏๅจๅผๅๆจกๅผ
npm run dev
-
ไปฃ็ ๆฃๆฅ
npm run lint npm run type-check
src/
โโโ main/ # ไธป่ฟ็จไปฃ็ ๏ผๆฐๆฎๅบใIPCใAI ้ๆใ้ณ้ข๏ผ
โ โโโ security/ # ๅฎๅ
จๆจกๅ
โ โโโ performance/ # ๆง่ฝ
โ โโโ monitoring/ # ็ๆง
โ โโโ utils/ # ๅทฅๅ
ท๏ผๅซ SQL ๆ้ ๏ผ
โ โโโ ipc-handlers.ts # IPC ่ทฏ็ฑ
โโโ renderer/ # ๆธฒๆ่ฟ็จไปฃ็ ๏ผReact๏ผ
โ โโโ src/
โ โโโ components/
โ โโโ contexts/
โ โโโ lib/ # ๅ็ซฏๆๅกๅฐ่ฃ
๏ผ้่ฟ IPC/HTTP ่ฐ็จ๏ผ
โ โโโ main.tsx
โโโ preload/ # ้ขๅ ่ฝฝ่ๆฌ๏ผๅฎๅ
จๆกฅ๏ผ
โโโ api-server.ts # ๆฌๅฐ HTTP ๅผๅๆๅก๏ผๅฏ้๏ผ
ๆไปฌๆฌข่ฟๆๆๅฝขๅผ็่ดก็ฎ๏ผ่ฏท้ ่ฏป ่ดก็ฎๆๅ ไบ่งฃๅฆไฝๅไธ้กน็ฎๅผๅใ
- Fork ้กน็ฎ
- ๅๅปบๅ่ฝๅๆฏ (
git checkout -b feature/amazing-feature) - ๆไบคๆดๆน (
git commit -m 'feat: add some amazing feature') - ๆจ้ๅฐๅๆฏ (
git push origin feature/amazing-feature) - ๅๅปบ Pull Request
- ไฝฟ็จ TypeScript ่ฟ่ก็ฑปๅๅฎๅ จๅผๅ
- ้ตๅพช ESLint ๅ Prettier ้ ็ฝฎ
- ็ผๅๅๅ ๆต่ฏ่ฆ็ๆฐๅ่ฝ
- ้ตๅพช Git ๆไบคไฟกๆฏ่ง่
- ๆถๆ้ๆ: ๆจกๅๅไธป่ฟ็จ๏ผๆๅๅฏ็ปดๆคๆง60%
- ๆง่ฝ็ๆง: ๅ ๅญไฝฟ็จ้ไฝ20%๏ผCPUๅ ็จ้ไฝ15%
- ๅฎๅ จๅ ๅบ: APIๅฏ้ฅ100%ๅ ๅฏๅญๅจ๏ผIPC้ไฟกๅฎๅ จ้ช่ฏ
- ็จๆทไฝ้ช: ็ฐไปฃๅUI็ปไปถๅบ๏ผๅๅบๅผ่ฎพ่ฎก
- ๆๅปบไผๅ: ๆๅปบๆถ้ดๅๅฐ50%๏ผ่ชๅจๅCI/CDๆตๆฐด็บฟ
- ๅฏๅจๆถ้ด: < 3็ง
- ๅ ๅญๅ ็จ: < 200MB
- CPUไฝฟ็จ็: < 5% (็ฉบ้ฒๆถ)
- ๆต่ฏ่ฆ็็: > 85%
- ๆฌๅฐๆฐๆฎๅบ๏ผPostgreSQL ๆฌๅฐๆฐๆฎๅบ๏ผ่ชๅจๅๅงๅ่กจ็ปๆ
- IPC/HTTP๏ผ็ฑไธป่ฟ็จ็ปไธ้ดๆไธๆฐๆฎ่ฎฟ้ฎ๏ผๆธฒๆ็ซฏไธ็ดๆฅ่ฎฟ้ฎๆฐๆฎๅบ
- ๆฐๆฎๅ ๅฏ๏ผ
DataEncryptionManagerๆไพ AES-GCM ๅ ่งฃๅฏ่ฝๅ - ็ณป็ปๆ้๏ผๅฝๅฑ/้บฆๅ ้ฃ็ญๆ้ๆ้่ฏทๆฑ
- ๅฎๆๆดๆฐไพ่ตๅ
- ไปฃ็ ๅฎๅ จๅฎกๆฅ
- ๆธ้ๆต่ฏ
- ๅฎๅ จๆผๆดๆซๆ
ๆฌ้กน็ฎ้็จ MIT ่ฎธๅฏ่ฏ - ๆฅ็ LICENSE.md ๆไปถไบ่งฃ่ฏฆๆ ใ
- Electron - ่ทจๅนณๅฐๆก้ขๅบ็จๆกๆถ
- React - ็จๆท็้ขๅบ
- Google Gemini - AIๅฏน่ฏ่ฝๅ
- Supabase - ๅ็ซฏๅณๆๅกๅนณๅฐ
- Vite - ๅฟซ้ๆๅปบๅทฅๅ ท
- Tailwind CSS - ๅฎ็จไผๅ ็CSSๆกๆถ
- ้กน็ฎไธป้กต: https://github.com/your-org/bready
- ้ฎ้ขๅ้ฆ: https://github.com/your-org/bready/issues
- ้ฎ็ฎฑ: support@bready.com
- ๅฎ็ฝ: https://bready.com
- ๅค่ฏญ่จๆฏๆ
- ้ข่ฏ้ขๅบๆฉๅฑ
- ๅข้ๅไฝๅ่ฝ
- ็งปๅจ็ซฏๆฏๆ
- ่ง้ข้ข่ฏๆจกๆ
- AI้ข่ฏๅฎไธชๆงๅ
- ไผไธ็ๅ่ฝ
- ๆฐๆฎๅๆไปช่กจๆฟ
Made with โค๏ธ by Bready Team
