diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-11-30 05:46:10 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-11-30 05:46:10 +0900 |
| commit | 785a98ebb0c65cc400d35897fab1460ad3f6959c (patch) | |
| tree | bc62bc65b155157d96412f0b2d34b1f0b53ccbd4 /README.md | |
| parent | e753941a8918929e05077e88cd47b1a34bb15ca3 (diff) | |
| download | kioku-785a98ebb0c65cc400d35897fab1460ad3f6959c.tar.gz kioku-785a98ebb0c65cc400d35897fab1460ad3f6959c.tar.zst kioku-785a98ebb0c65cc400d35897fab1460ad3f6959c.zip | |
prepare docs
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..6c7ad13 --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +# Kioku + +A spaced repetition learning application (Anki clone) with PWA offline support and cloud sync. + +## Features + +- Spaced Repetition: FSRS algorithm for optimal learning scheduling +- Offline Support: Full PWA with IndexedDB local storage +- Cloud Sync: Automatic sync when online with conflict resolution +- Anki Import: Import existing .apkg decks from Anki + +## Tech Stack + +| Layer | Technology | +|-------|------------| +| Frontend | SvelteKit | +| Backend | Hono + TypeScript | +| Database | PostgreSQL | +| ORM | Drizzle | +| Client DB | Dexie.js (IndexedDB) | +| PWA | @vite-pwa/sveltekit | +| Algorithm | FSRS (ts-fsrs) | +| Auth | Username/password + JWT | +| Test | Vitest | +| Monorepo | pnpm workspace | + +## Project Structure + +``` +kioku/ +├── apps/ +│ ├── web/ # SvelteKit frontend (PWA) +│ └── server/ # Hono backend API +└── packages/ + └── shared/ # Shared types and schemas +``` + +## Getting Started + +### Prerequisites + +- Node.js 22+ +- pnpm 9+ +- PostgreSQL 15+ +- Docker (optional) + +### Development + +```bash +# Install dependencies +pnpm install + +# Start PostgreSQL (with Docker) +docker compose up -d postgres + +# Run database migrations +pnpm --filter server db:migrate + +# Start development servers +pnpm dev +``` + +### Environment Variables + +Create `.env` files in each app directory: + +```apps/server/.env +DATABASE_URL=postgresql://user:password@localhost:5432/kioku +JWT_SECRET=your-secret-key +``` + +```apps/web/.env +PUBLIC_API_URL=http://localhost:3000 +``` + +## Scripts + +```bash +pnpm dev # Start all apps in development +pnpm build # Build all apps +pnpm test # Run tests +pnpm lint # Lint code +``` + +## Documentation + +See [docs/dev/architecture.md](docs/dev/architecture.md) for detailed architecture documentation. + +## License + +MIT |
