ไธไธช่ฝป้็บงใๅฏ่ชๆ็ฎก็ๆ ่ก่ดน็จๅๆๅ็ ง็ๅไบซๅบ็จ๏ผไธไธบๅข้ๆ ่ก่ฎพ่ฎกใ
ๅ่ฝ็นๆง โข ๅฟซ้ๅผๅง โข ๆๆฏๆถๆ โข APIๆๆกฃ โข ๅผๅๆๅ
MemoTrip ๆฏไธไธช็ฐไปฃๅ็ๆ ่ก่ดน็จ็ฎก็ๅ็ ง็ๅไบซๅนณๅฐ๏ผๆจๅจ็ฎๅๅคไบบๆ ่กไธญ็่ดน็จๅๆๅๅๅฟๅไบซใ้่ฟๆบ่ฝ็ๆ้็ฎๆณๅ็ด่ง็็จๆท็้ข๏ผ่ฎฉๆ ่ก่ดน็จ็ป็ฎๅๅพ็ฎๅ้ๆใ
- ๐ ๅฎถๅบญๆ้็ณป็ป - ๆฏๆๆไบบ/ๅฟ็ซฅไธๅๆ้้ ็ฝฎ๏ผ1.0/0.5๏ผ
- ๐ฐ ๆบ่ฝ็ป็ฎ็ฎๆณ - ่ชๅจ่ฎก็ฎ่ดน็จๅๆๅนถ็ๆๆๅฐ่ฝฌ่ดฆๆนๆก
- ๐ธ ็ ง็็ปๅป - ้ไธญ็ฎก็ๅๅไบซๆ ่ก็ ง็
- ๐ ๅคๅธ็งๆฏๆ - USD, EUR, GBP, JPY, CNY
- ๐ ๆฐๆฎๅฎๅ จ - ๆฌๅฐ้จ็ฝฒ๏ผๅฎๅ จๆๆงๆจ็ๆฐๆฎ
- ๐ ๆทฑ่ฒๆจกๅผ - ๅฎๆด็ๆๆไธป้ขๆฏๆ
- ๐ฑ ๅๅบๅผ่ฎพ่ฎก - ๅฎ็พ้้ ๆๆบใๅนณๆฟใๆก้ข
- ๐ณ ไธ้ฎ้จ็ฝฒ - Docker Composeๅฟซ้ๅฏๅจ
- โ ้ฎ็ฎฑๅฏ็ ๆณจๅ/็ปๅฝ
- โ ่ชๅจๅๅปบ้ป่ฎคๅฎถๅบญ
- โ ็จๆทไธชไบบไฟกๆฏ็ฎก็
- โ ๅๅปบๆ ่ก๏ผๆฏๆๅคๅธ็ง๏ผ
- โ ๆ ่กๅ่กจๆฅ็
- โ ๆ ่ก่ฏฆๆ ๏ผๆถๆฎ/็ป็ฎ/็ ง็/ๅไธ่ ๏ผ
- โ ่ชๅจๆทปๅ ๅๅปบ่ ไธบ้ฆไฝๅไธ่
- โ ๅๅปบๅ็ฎก็ๅฎถๅบญ
- โ ๆทปๅ /็งป้คๆ ่กๅไธ่
- โ ้ ็ฝฎๆๅๆ้๏ผๆไบบ=1.0๏ผๅฟ็ซฅ=0.5๏ผ
- โ ๆฅ็ๅฎถๅบญๆๅ่ฏฆๆ
- โ ไธไผ ๆถๆฎๅพ็
- โ ๆถๆฎ็ถๆ่ท่ธช
- โ ๆถๆฎ้ข่งๅๅ จๅฑๆฅ็
- โ ๆถๆฎๅ่กจ็ฎก็
- โ ไธไผ ็ ง็
- โ ็ฝๆ ผๅฑ็คบ
- โ ็ ง็้ข่ง
- โ ๆพ็คบไธไผ ่ ๅๆฅๆ
- โ ๅบไบๆ้็ๆบ่ฝๅๆ็ฎๆณ
- โ ไธ้ฎ้ๆฐ่ฎก็ฎ็ป็ฎ
- โ ็ๆๆๅฐ่ฝฌ่ดฆๆนๆก
- โ ็ป็ฎๅๅฒ็ๆฌ็ฎก็
- โ HTMLๅฏผๅบๆจกๆฟ
- ๐ค OpenAI Vision API ๆถๆฎ่ชๅจ่งฃๆ
- ๐ค PNG/PDFๆ ผๅผๅฏผๅบ็ป็ฎ่กจ
- ๐ ้่ฏท็ ็ณป็ป
- ๐ผ๏ธ EXIFๅ ๆฐๆฎๆๅ
- ๐ฆ ็ ง็ๆน้ไธ่ฝฝZIP
- Docker 20.10+
- Docker Compose 2.0+
- 8GB+ ๅฏ็จ็ฃ็็ฉบ้ด
# 1. ๅ
้ไปๅบ
git clone https://github.com/yourusername/MemoTrip.git
cd MemoTrip
# 2. ้
็ฝฎ็ฏๅขๅ้๏ผๅฏ้๏ผ
cp .env.example .env
# ็ผ่พ .env ๆไปถ๏ผๆทปๅ OpenAI API Key๏ผๅฆ้AI่งฃๆๅ่ฝ๏ผ
# 3. ๅฏๅจๆๆๆๅก
docker compose up -d
# 4. ็ญๅพ
ๆๅกๅฐฑ็ปช๏ผ็บฆ30็ง๏ผ
docker compose logs -f web
# 5. ่ฎฟ้ฎๅบ็จ
# ๆๅผๆต่งๅจ่ฎฟ้ฎ: http://localhost:3001- ๆณจๅ่ดฆๆท - ่ฎฟ้ฎ http://localhost:3001/register
- ๅๅปบๆ ่ก - ็ปๅฝๅๅจไปช่กจๆฟ็นๅป "New Trip"
- ๆทปๅ ๅไธ่ - ๅจๆ ่ก่ฏฆๆ ้กตๆทปๅ ๅ ถไปๅฎถๅบญ
- ไธไผ ๆถๆฎ - ็นๅป "Upload Receipt" ไธไผ ่ดน็จๅญ่ฏ
- ่ฎก็ฎ็ป็ฎ - ็นๅป "Recalculate Settlement" ็ๆๅๆๆนๆก
- ๅๅ็ซฏ: Next.js 15 (App Router) + React 18 + TypeScript
- ๆฐๆฎๅบ: PostgreSQL 16 + Prisma ORM
- ็ผๅญ: Redis 7
- ๆ ทๅผ: Tailwind CSS 3
- ้จ็ฝฒ: Docker + Docker Compose
- ๆไปถๅญๅจ: ๆฌๅฐๆไปถ็ณป็ปๅท
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Browser/Client โ
โ (React + Tailwind CSS) โ
โโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTP/HTTPS
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Next.js Server โ
โ โโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโ
โ โ Pages โ โ API โ โ Files โโ
โ โ (SSR/CSR)โ โ Routes โ โ Server โโ
โ โโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโ
โโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โPostgreSQLโ โ Redis โ โFile Storage โ
โDatabase โ โ Cache โ โ Volumes โ
โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
ๆณจๅ็จๆท
POST /api/auth/register
Content-Type: application/json
{
"email": "user@example.com",
"password": "password123",
"name": "John Doe"
}็จๆท็ปๅฝ
POST /api/auth/login
Content-Type: application/json
{
"email": "user@example.com",
"password": "password123"
}ๅๅปบๆ ่ก
POST /api/trips
Content-Type: application/json
{
"name": "Japan 2024",
"currency": "JPY",
"userId": "cuid..."
}่ทๅๆ ่กๅ่กจ
GET /api/trips?userId=cuid...POST /api/trips/:tripId/participants- ๆทปๅ ๅไธ่POST /api/trips/:tripId/receipts- ไธไผ ๆถๆฎPOST /api/trips/:tripId/photos- ไธไผ ็ ง็POST /api/trips/:tripId/settlements/recompute- ้ๆฐ่ฎก็ฎ็ป็ฎGET /api/files/:...path- ่ทๅๆไปถ
่ฏฆ็ปAPIๆๆกฃ่ฏทๆฅ็้กน็ฎWikiใ
# ๅฎ่ฃ
ไพ่ต
cd app
npm install
# ้
็ฝฎๆฐๆฎๅบ
cp .env.example .env
# ่ฟ่กๆฐๆฎๅบ่ฟ็งป
npx prisma migrate dev
# ๅฏๅจๅผๅๆๅกๅจ
npm run dev# ๅๅปบๆฐ่ฟ็งป
npx prisma migrate dev --name add_new_feature
# ๆๅผ Prisma Studio
npx prisma studio
# ็ๆ Prisma Client
npx prisma generate# ๆๅปบๅนถๅฏๅจ
docker compose up -d --build
# ๆฅ็ๆฅๅฟ
docker compose logs -f web
# ๅๆญขๆๅก
docker compose downๅๅปบ .env ๆไปถ๏ผ
# ๆฐๆฎๅบ่ฟๆฅ
DATABASE_URL=postgresql://trip:trip@db:5432/trip
# OpenAI API๏ผๅฏ้๏ผ
OPENAI_API_KEY=sk-...
# ๅบ็จ้
็ฝฎ
PORT=3000
NODE_ENV=productionๅฎถๅบญๆ ่ก - ๅคไธชๅฎถๅบญไธ่ตทๅบๆธธ๏ผไฝฟ็จๆ้็ณป็ป๏ผๆไบบ=1.0๏ผๅฟ็ซฅ=0.5๏ผๅ ฌๅนณๅๆ่ดน็จใ
ๆๅ่ไผ - ๆๅAAๅถๆ ่ก๏ผๆฏไบบๅๅปบ่ชๅทฑ็ๅฎถๅบญ๏ผๅนณๅๅๆๆๆ่ดน็จใ
ๅ ฌๅธๅขๅปบ - ๅ ฌๅธ็ป็ปๅขๅปบๆดปๅจ๏ผ่ดขๅกไบบๅ็ฎก็ๆๆๆถๆฎ๏ผ่ชๅจ็ๆ่ดน็จๆฅ่กจใ
ๆฌข่ฟไปปไฝๅฝขๅผ็่ดก็ฎ๏ผ
- Fork ๆฌไปๅบ
- ๅๅปบๅ่ฝๅๆฏ (
git checkout -b feature/AmazingFeature) - ๆไบคๆดๆน (
git commit -m 'Add some AmazingFeature') - ๆจ้ๅฐๅๆฏ (
git push origin feature/AmazingFeature) - ๅผๅฏ Pull Request
ๆฌ้กน็ฎ้็จ MIT License ๅผๆบๅ่ฎฎใ
Made with โค๏ธ by MemoTrip Team