162 lines
4.4 KiB
Markdown
162 lines
4.4 KiB
Markdown
# 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** |