مطالعه امتحان جامع - موتورهای جستجو و بازاریابی الکترونیک
A comprehensive Flutter web application for studying and taking quizzes on search engines and digital marketing topics, designed with Persian RTL support and responsive design.
🌟 Features
- 📚 Study Topics: Interactive study materials organized by categories
- 🧪 Comprehensive Quiz: Test your knowledge with randomized questions
- 📱 Responsive Design: Works perfectly on mobile, tablet, and desktop
- 🌐 RTL Support: Fully supports Persian right-to-left text direction
- 🎨 Modern UI: Beautiful and intuitive user interface
- ⚡ Progressive Web App: Can be installed on devices like a native app
🚀 Live Demo
The app is automatically deployed to GitHub Pages via CI/CD:
https://yourusername.github.io/exammarketing/
(Replace yourusername
with your actual GitHub username)
🛠️ Technologies Used
- Flutter Web - Cross-platform UI framework
- Dart - Programming language
- GitHub Actions - CI/CD pipeline
- GitHub Pages - Web hosting
📋 Prerequisites
- Flutter SDK (3.16.x or higher)
- Dart SDK
- Web browser for testing
🔧 Local Development
- Clone the repository:
git clone https://github.com/yourusername/exammarketing.git
cd exammarketing
- Install dependencies:
- Run the app:
- Run tests:
- Build for web:
🚀 Deployment
Automatic Deployment (CI/CD)
This project uses GitHub Actions for automatic deployment to GitHub Pages:
- Push to main/master branch - Triggers the deployment pipeline
- Tests run automatically - Ensures code quality
- Build process - Creates optimized web build
- Deploy to GitHub Pages - Makes the app live
Manual Deployment
If you prefer manual deployment:
- Build the web app:
flutter build web --release --base-href "/exammarketing/"
-
The built files will be in build/web/
directory
- Deploy these files to your preferred hosting service
⚙️ GitHub Pages Setup
To enable GitHub Pages for your repository:
- Go to your repository settings
- Navigate to “Pages” section
- Select “Deploy from a branch”
- Choose “gh-pages” branch
- Click “Save”
The GitHub Actions workflow will automatically create and manage the gh-pages
branch.
🧪 Testing
The project includes automated tests that run in the CI/CD pipeline:
- Widget Tests: Verify UI components work correctly
- Unit Tests: Test business logic and utilities
- Integration Tests: Ensure proper app flow
Run tests locally:
flutter test
flutter analyze
📱 PWA Features
The app is configured as a Progressive Web App (PWA):
- Installable: Can be installed on devices
- Offline Ready: Basic offline functionality
- Responsive: Works on all screen sizes
- Fast Loading: Optimized for performance
🌍 Internationalization
- Primary Language: Persian (Farsi)
- Text Direction: Right-to-Left (RTL)
- Fallback: English support included
🔄 CI/CD Pipeline
The GitHub Actions workflow (.github/workflows/deploy.yml
) automatically:
- ✅ Checks out the code
- ⚙️ Sets up Flutter environment
- 📦 Installs dependencies
- 🔍 Runs code analysis
- 🧪 Executes tests
- 🏗️ Builds web application
- 🚀 Deploys to GitHub Pages
📂 Project Structure
exammarketing/
├── lib/
│ ├── main.dart
│ ├── models/
│ ├── screens/
│ ├── utils/
│ └── widgets/
├── web/
│ ├── index.html
│ └── manifest.json
├── test/
├── .github/workflows/
│ └── deploy.yml
└── README.md
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests
- Submit a pull request
📄 License
This project is open source and available under the MIT License.
📞 Support
If you have any questions or issues, please open an issue on GitHub.
Made with ❤️ using Flutter |
Deployed with �� GitHub Actions |