Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
ดูดวง AI ออนไลน์ — สนทนาและทำนายตามดวงชะตา
Translation pending
LifestyleTypeScript · JavaScriptGitHub @Markrock342OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
แอปเว็บตัวเดียว: สมัคร → กรอกวันเกิด → เลือกหมวด → แชทถาม AI (Gemini) มีแพ็กเกจ Free/Pro, cost-weighted usage (%), top-up และ Admin CMS คนละเว็บ: hora-ai.vercel.app คือ NewHora (โปรโตไทป์ผูกดวง) จาก repo อีกอัน github.com/Markrock342/hora_ai — หน้า splash เขียว / โลโก้ดอก ไม่ใช่แอปนี้ โปรเจกต์นี้ยืม สูตรคำนวณ จาก NewHora ไว้ใน src/server/horoscope/engine/newhora/ แต่ UI และผลิตภัณฑ์คนละตัว: HORASARD = แชทดูดวงด้วย AIRead the full README ↗
แอปเว็บตัวเดียว: สมัคร → กรอกวันเกิด → เลือกหมวด → แชทถาม AI (Gemini) มีแพ็กเกจ Free/Pro, cost-weighted usage (%), top-up และ Admin CMS
เว็บที่ลูกค้าใช้: horasard.com
ขึ้น horasard.com = repo astrology_ai
| ชื่อ | คืออะไร |
|---|---|
horasard.com | โดเมนจริง / production ของ โปรเจกต์นี้ |
โฟลเดอร์ hora_ai บนเครื่อง | โค้ด HORASARD (ชื่อโฟลเดอร์เก่า — อย่าสับสน) |
| github.com/Markrock342/astrology_ai | GitHub ของ โปรเจกต์นี้ |
horaai.vercel.app / astrology-ai-three.vercel.app | URL Vercel เก่าของ HORASARD |
คนละเว็บ: hora-ai.vercel.app คือ NewHora (โปรโตไทป์ผูกดวง) จาก repo อีกอัน github.com/Markrock342/hora_ai — หน้า splash เขียว / โลโก้ดอก ไม่ใช่แอปนี้
โปรเจกต์นี้ยืม สูตรคำนวณ จาก NewHora ไว้ใน src/server/horoscope/engine/newhora/ แต่ UI และผลิตภัณฑ์คนละตัว: HORASARD = แชทดูดวงด้วย AI
อย่าสับสนกับ horasad.com (สะกดขาดตัว r) — โปรแกรมโหราศาสตร์คนละเจ้า
เครื่อง: /…/hora_ai ← HORASARD
GitHub: Markrock342/astrology_ai
เว็บจริง: horasard.com
คนละ repo: Markrock342/hora_ai → hora-ai.vercel.app (NewHora)
รายละเอียดสถานะ/โมดูล: docs/index.md · โครงสร้างโฟลเดอร์: PROJECT_STRUCTURE.md
| Area | Choice |
|---|---|
| Framework | Next.js 16 (App Router) + React 19 + TypeScript |
| Styling | Tailwind CSS v4 |
| DB / ORM | PostgreSQL + Prisma 6 |
| Auth | Auth.js (NextAuth v5) — อีเมล + Google |
| AI | Gemini ผ่าน adapter/router ฝั่ง server เท่านั้น |
| Validation | Zod |
npm install
cp .env.example .env
# ตั้ง DATABASE_URL, AUTH_SECRET (`npx auth secret`), SEED_ADMIN_PASSWORD
npm run db:migrate
npm run db:seed
npm run dev # http://localhost:3000
แอดมินเริ่มต้น: SEED_ADMIN_EMAIL (ดีฟอลต์ [email protected]) — ตั้งรหัสใน .env ห้าม commit ค่ารหัสจริง
| Script | ทำอะไร |
|---|---|
npm run dev | Dev server |
npm run build | Production build |
npm run ci | typecheck + lint + unit (เกตเดียวกับ Vercel) |
npm run typecheck / lint / test | แยกทีละอย่าง |
npm run db:migrate / db:seed / db:studio | Prisma |
npm run hooks:install | pre-push รัน npm run ci |
Vercel รัน vercel-build (npm run ci แล้วค่อย next build) ทุกครั้งที่ push — typecheck/lint/unit พังแล้วจะไม่ขึ้น production
src/server/* ผ่าน API เท่านั้นencryptedApiKey) ดู docs/backend_ai_admin.mdIdempotency-Keysrc/app/ หน้าเว็บ + API routes (บาง — เรียก service)
src/server/ business logic (ห้ามมี React)
src/components/ UI
prisma/ schema + migrations + seed
งาน FE: FRONTEND_TASKS.md · งาน BE: BACKEND_TASKS.md
(app) / (admin) กันที่ layout — API แอดมินต้องเรียก requireAdmin() อีกชั้น._* จาก macOS — git-ignore ไว้แล้ว ข้ามได้