2026-09-03 21:01:52 +03:30
|
|
|
# Novya PWA
|
2025-11-18 20:22:25 +03:30
|
|
|
|
2026-09-03 21:01:52 +03:30
|
|
|
Persian learning PWA (React + Vite) with a Node/Hono backend and MySQL.
|
2025-11-18 20:22:25 +03:30
|
|
|
|
2026-09-03 21:01:52 +03:30
|
|
|
## Quick start (local)
|
2025-11-18 20:22:25 +03:30
|
|
|
|
|
|
|
|
```bash
|
2026-09-03 21:01:52 +03:30
|
|
|
# MySQL (optional helper)
|
|
|
|
|
cd backend && docker compose -f docker-compose.dev.yml up -d && cd ..
|
|
|
|
|
|
|
|
|
|
# Install
|
2025-11-18 20:22:25 +03:30
|
|
|
npm install
|
2026-09-03 21:01:52 +03:30
|
|
|
cd backend && npm install && cd ..
|
2025-11-18 20:22:25 +03:30
|
|
|
|
2026-09-03 21:01:52 +03:30
|
|
|
# Env
|
|
|
|
|
cp .env.example .env
|
|
|
|
|
cp backend/.env.example backend/.env
|
|
|
|
|
# fill OPENAI_API_KEY in backend/.env
|
2025-11-18 20:22:25 +03:30
|
|
|
|
2026-09-03 21:01:52 +03:30
|
|
|
# Migrate + seed (once)
|
|
|
|
|
cd backend && npm run prisma:migrate:dev && npm run prisma:seed && cd ..
|
2025-11-18 20:22:25 +03:30
|
|
|
|
2026-09-03 21:01:52 +03:30
|
|
|
# Dev (API + frontend)
|
2025-11-18 20:22:25 +03:30
|
|
|
npm run dev
|
|
|
|
|
```
|
|
|
|
|
|
2026-09-03 21:01:52 +03:30
|
|
|
- Frontend: http://localhost:5173
|
|
|
|
|
- Backend: http://localhost:3001
|
2025-11-18 20:22:25 +03:30
|
|
|
|
2026-09-03 21:01:52 +03:30
|
|
|
## Production
|
2025-11-18 20:22:25 +03:30
|
|
|
|
2026-09-03 21:01:52 +03:30
|
|
|
See **[DEPLOY.md](./DEPLOY.md)** for env vars, build, and reverse-proxy notes.
|
2025-11-20 09:48:50 +03:30
|
|
|
|
2026-09-03 21:01:52 +03:30
|
|
|
Backend details: [backend/README.md](./backend/README.md)
|
2025-11-20 09:48:50 +03:30
|
|
|
|
2026-09-03 21:01:52 +03:30
|
|
|
## Stack
|
2025-11-20 09:48:50 +03:30
|
|
|
|
2026-09-03 21:01:52 +03:30
|
|
|
- Frontend: React 18, TypeScript, Tailwind, PWA
|
|
|
|
|
- Backend: Hono, Prisma, MySQL 8, Argon2 sessions
|
|
|
|
|
- AI coach: OpenAI-compatible API (default GapGPT) via backend
|