# MemoHanzi - Project Naming Conventions

## Application Name
**MemoHanzi** (记汉字)
- **Meaning:** "Remember Hanzi" or "Memorize Hanzi"
- **Chinese:** 记汉字
- **Pronunciation:** Jì Hànzì

## Usage Guidelines

### Display Names (User-Facing)
- **Full name:** MemoHanzi
- **Tagline:** "Remember Hanzi, effortlessly"
- **Description:** Spaced repetition for Chinese characters

### Technical Names (Code/Infrastructure)

**Project Directory:**
```
memohanzi/
```

**Database:**
- Database name: `memohanzi_db`
- Database user: `memohanzi_user`

**Connection String:**
```
postgresql://memohanzi_user:password@localhost:5432/memohanzi_db
```

**Docker Container Names:**
- nginx: `memohanzi-nginx`
- app: `memohanzi-app`
- postgres: `memohanzi-postgres`

**NPM Package Name (if publishing):**
```json
{
  "name": "memohanzi",
  "description": "Self-hosted spaced repetition app for learning Chinese characters"
}
```

**Domain Names:**
- Primary: memohanzi.com
- Alternative: memohanzi.io / memohanzi.app

**Email Domains (Development):**
- Admin: admin@memohanzi.local
- Test user: user@memohanzi.local

### Code/Variable Naming

**Constants:**
```typescript
const APP_NAME = "MemoHanzi"
const APP_NAME_CN = "记汉字"
const APP_TAGLINE = "Remember Hanzi, effortlessly"
```

**Environment Variables:**
```bash
NEXTAUTH_URL="https://memohanzi.com"
DATABASE_URL="postgresql://memohanzi_user:password@localhost:5432/memohanzi_db"
```

**File Names:**
- Use lowercase with hyphens: `memohanzi-config.ts`
- Or camelCase for TypeScript: `memohanziConfig.ts`

## Branding (Future Reference)

### Logo Concepts
- Focus on the concept of memory/remembering
- Incorporate Chinese character elements
- Clean, modern design

### Color Palette Suggestions
- **Primary:** Red (#E63946) - Traditional Chinese color, attention/memory
- **Secondary:** Blue (#457B9D) - Trust, learning, calmness
- **Accent:** Gold (#FFD60A) - Achievement, success
- **Background:** White/Light gray - Clarity, simplicity

### Typography
- **Hanzi Display:** Noto Sans CJK SC (Google Fonts)
- **English UI:** Inter or System fonts
- **Headings:** Bold, clean sans-serif

## Consistency Rules

1. **Always capitalize "MemoHanzi"** in user-facing content
2. **Always use lowercase "memohanzi"** in code/technical contexts
3. **Use "Hanzi" not "hanzi"** when referring to characters in documentation
4. **Include Chinese characters (记汉字)** in about/landing pages
5. **Never use "Hanzi Learning App"** as the name (old placeholder)

## Examples

### ✅ Correct Usage

**User-facing:**
- "Welcome to MemoHanzi!"
- "MemoHanzi helps you remember Hanzi effortlessly"
- "Start learning with MemoHanzi (记汉字)"

**Technical:**
```typescript
// File: src/lib/memohanziConfig.ts
export const config = {
  appName: "MemoHanzi",
  dbName: "memohanzi_db"
}
```

```yaml
# docker-compose.yml
services:
  app:
    container_name: memohanzi-app
```

### ❌ Incorrect Usage

**Don't:**
- "Welcome to memohanzi!" (lowercase in UI)
- "MemoHanzi_DB" (mixed case in technical)
- "Hanzi Learning App" (old name)
- "Memo-Hanzi" or "Memo Hanzi" (hyphenated or separated)

## README/Documentation Template

```markdown
# MemoHanzi (记汉字)

**Remember Hanzi, effortlessly**

MemoHanzi is a self-hosted web application for learning Chinese characters (Hanzi) 
using spaced repetition (SM-2 algorithm).

## Features
...
```

---

**This file should be referenced whenever naming anything in the project.**
