# Drama Ling

AI-powered language learning dialogue practice application with immersive scenario-based conversations.

## 📱 Project Overview

Drama Ling combines AI analysis with gamified learning mechanics to help users improve their language communication skills through realistic dialogue scenarios.

### Key Features
- 🎭 **Scenario-based Dialogues**: Practice real-life conversations in various contexts
- 🤖 **AI Analysis**: Get instant feedback on grammar, semantics, and fluency  
- 🎮 **Gamification**: Rankings, achievements, and progress tracking
- 📚 **Smart Vocabulary Review**: Spaced repetition algorithm for optimal learning
- 💬 **Interactive Practice**: Voice and text input with real-time responses

## 🛠 Tech Stack

### Frontend (Mobile)
- **Framework**: Flutter 3.16+
- **Language**: Dart 3.0+
- **State Management**: Riverpod
- **Navigation**: Go Router
- **Local Storage**: Hive / Isar
- **Networking**: Dio + Retrofit

### Backend (API)
- **Framework**: .NET 8 Web API
- **Language**: C# 12
- **ORM**: Entity Framework Core
- **Database**: PostgreSQL 15+
- **Cache**: Redis 7+
- **Authentication**: JWT + ASP.NET Core Identity

### Infrastructure
- **Cloud**: AWS (ECS, RDS, S3, CloudFront)
- **CI/CD**: GitHub Actions
- **Monitoring**: Sentry, DataDog
- **Analytics**: Custom analytics pipeline

## 🏗 Project Structure

```
dramaling-app/
├── docs/                    # Project documentation
│   ├── design/             # Design specifications
│   ├── technical/          # Technical documentation  
│   └── development/        # Development guides
├── mobile/                 # Flutter mobile app
│   ├── lib/
│   │   ├── features/       # Feature modules
│   │   ├── shared/         # Shared components
│   │   └── core/           # Core utilities
├── backend/                # .NET Core API
│   ├── DramaLing.Api/      # Web API project
│   ├── DramaLing.Core/     # Business logic
│   └── DramaLing.Infrastructure/ # Data access
├── infrastructure/         # Infrastructure as Code
└── scripts/               # Development scripts
```

## 🚀 Quick Start

### Prerequisites
- Flutter 3.16+ 
- Dart 3.0+
- .NET 8 SDK
- PostgreSQL 15+
- Redis 7+

### Development Setup

1. **Clone the repository**
   ```bash
   git clone https://github.com/your-username/dramaling-app.git
   cd dramaling-app
   ```

2. **Backend Setup**
   ```bash
   cd backend
   dotnet restore
   dotnet ef database update
   dotnet run --project DramaLing.Api
   ```

3. **Mobile Setup**
   ```bash
   cd mobile
   flutter pub get
   flutter pub run build_runner build
   flutter run
   ```

4. **Environment Configuration**
   ```bash
   cp .env.example .env
   # Edit .env with your configuration
   ```

## 📚 Documentation

- [📋 Project Roadmap](docs/development/project-roadmap.md)
- [🔧 Technical Architecture](docs/technical/)
- [🎨 Design Guidelines](docs/design/)
- [👨‍💻 Development Workflow](docs/development/development-workflow.md)
- [📖 API Documentation](docs/technical/api-specifications.md)

## 🔄 Development Workflow

1. Create feature branch from `develop`
2. Make changes following coding standards
3. Write tests for new functionality
4. Create Pull Request with description
5. Code review and approval
6. Merge to `develop` branch

## 🧪 Testing

```bash
# Backend tests
cd backend
dotnet test

# Mobile tests  
cd mobile
flutter test
flutter integration_test
```

## 📦 Deployment

### Staging
- Automatically deployed when `develop` branch is updated
- Environment: https://staging-api.dramaling.com

### Production  
- Manually deployed from `main` branch
- Environment: https://api.dramaling.com

## 🤝 Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'feat: add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and development process.

## 📄 License

This project is proprietary software. All rights reserved.

## 🙋‍♂️ Support

- 📧 Email: dev@dramaling.com
- 💬 Slack: #dev-support
- 📱 Issues: [GitHub Issues](https://github.com/your-username/dramaling-app/issues)

---

**Built with ❤️ by the Drama Ling Team**