dramaling-app/README.md

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**