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.
- 📚 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
The app is automatically deployed to GitHub Pages via CI/CD: https://yourusername.github.io/exammarketing/
(Replace yourusername
with your actual GitHub username)
- Flutter Web - Cross-platform UI framework
- Dart - Programming language
- GitHub Actions - CI/CD pipeline
- GitHub Pages - Web hosting
- Flutter SDK (3.16.x or higher)
- Dart SDK
- Web browser for testing
-
Clone the repository:
git clone https://github.com/yourusername/exammarketing.git cd exammarketing
-
Install dependencies:
flutter pub get
-
Run the app:
flutter run -d chrome
-
Run tests:
flutter test
-
Build for web:
flutter build web
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
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
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.
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
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
- Primary Language: Persian (Farsi)
- Text Direction: Right-to-Left (RTL)
- Fallback: English support included
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
exammarketing/
├── lib/
│ ├── main.dart
│ ├── models/
│ ├── screens/
│ ├── utils/
│ └── widgets/
├── web/
│ ├── index.html
│ └── manifest.json
├── test/
├── .github/workflows/
│ └── deploy.yml
└── README.md
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests
- Submit a pull request
This project is open source and available under the MIT License.
If you have any questions or issues, please open an issue on GitHub.
Made with ❤️ using Flutter | Deployed with �� GitHub Actions