A modern Flutter mobile application for job searching and career opportunities.
- π User Authentication - Secure login and registration system
- π Job Search - Find job opportunities with advanced filters
- π Calendar Integration - Track interviews and important dates with table_calendar
- πΌ Job Management - Save and manage your job applications
- π¨ Modern UI - Beautiful and responsive design with custom fonts (DM Sans)
- π Multi-platform - Support for Android, iOS, Web, Windows, macOS, and Linux
This project follows a modular architecture with clean code principles:
lib/
βββ app/
β βββ main.dart # Application entry point
β βββ config/
β βββ app_router.dart # Navigation configuration
β βββ app_widget.dart # Root widget
β βββ route_path.dart # Route definitions
β βββ service_locator.dart # Dependency injection
βββ modules/
β βββ auth/ # Authentication module
β βββ setup/ # Setup module
βββ shared/
βββ components/ # Reusable UI components
βββ constants/ # App constants
βββ data/ # Data models and repositories
βββ styles/ # Theme and styling
βββ utils/ # Utility functions
- Flutter - UI framework
- Dart - Programming language
- flutter_bloc (^9.1.1) - State management using BLoC pattern
- bloc (^9.1.0) - Business logic component
- get_it (^8.2.0) - Service locator for dependency injection
- go_router (^16.2.5) - Declarative routing
- auto_route (^10.2.0) - Advanced routing solution
- flutter_screenutil (^5.9.3) - Responsive UI adaptation
- font_awesome_flutter (^10.11.0) - Font Awesome icons
- icons_plus (^5.0.0) - Additional icon packs
- asuka (^2.2.1) - Elegant overlay/toast notifications
- table_calendar (^3.2.0) - Calendar widget
- dio (^5.7.0) - HTTP client
- retrofit (^4.4.1) - Type-safe REST client
- pretty_dio_logger (^1.4.0) - Network logging
- shared_preferences (^2.3.3) - Local storage
- json_annotation (^4.9.0) - JSON serialization
- freezed_annotation (^2.4.4) - Code generation for data classes
- intl (^0.20.2) - Internationalization and localization
- talker_flutter (^5.0.2) - Advanced logging
- build_runner (^2.4.13) - Code generation
- retrofit_generator (^9.1.4) - Retrofit code generation
- json_serializable (^6.8.0) - JSON serialization code generation
- freezed (^2.5.7) - Data class code generation
- flutter_lints (^5.0.0) - Linting rules
Before you begin, ensure you have the following installed:
- Flutter SDK (>= 3.9.2)
- Dart SDK (>= 3.9.2)
- Android Studio or Xcode (for mobile development)
- A code editor (VS Code recommended)
-
Clone the repository
git clone https://github.com/CulesBao/find-job-mobile.git cd find-job-mobile -
Install dependencies
flutter pub get
-
Generate code (for Retrofit, Freezed, JsonSerializable)
flutter pub run build_runner build --delete-conflicting-outputs
-
Run the app
# For development flutter run # For specific platform flutter run -d chrome # Web flutter run -d windows # Windows flutter run -d macos # macOS flutter run -d linux # Linux
Watch for file changes and auto-generate code:
flutter pub run build_runner watch --delete-conflicting-outputs- β Android
- β iOS
- β Web
- β Windows
- β macOS
- β Linux
The app uses a custom design system with:
- Font Family: DM Sans (Regular, Medium, Bold)
- Responsive Design: flutter_screenutil for adaptive layouts
- Icons: Font Awesome and custom icon sets
find-job-mobile/
βββ android/ # Android platform code
βββ ios/ # iOS platform code
βββ web/ # Web platform code
βββ windows/ # Windows platform code
βββ macos/ # macOS platform code
βββ linux/ # Linux platform code
βββ lib/ # Main application code
βββ assets/ # Images, fonts, and other assets
β βββ fonts/
β βββ images/
βββ test/ # Unit and widget tests
βββ pubspec.yaml # Project dependencies
βββ README.md # This file
Run tests with:
# Run all tests
flutter test
# Run tests with coverage
flutter test --coverageThe app uses service locator pattern for dependency injection. Configure your services in:
lib/app/config/service_locator.dart
Configure your API endpoints and networking in the appropriate data layer files.
This project uses code generation for:
- Retrofit: REST API client generation
- Freezed: Immutable data classes
- JsonSerializable: JSON serialization/deserialization
After making changes to annotated classes, run:
flutter pub run build_runner build --delete-conflicting-outputsContributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feat/amazing-feature) - Commit your changes following Conventional Commits
- Push to the branch (
git push origin feat/amazing-feature) - Open a Pull Request
This project follows the Conventional Commits specification. See commit guidelines for details.
Example commit messages:
feat(auth): add login functionality
fix(ui): correct job card layout on mobile
docs: update README installation stepsThis project is licensed under the MIT License - see the LICENSE file for details.
- CulesBao - GitHub Profile
- Flutter team for the amazing framework
- All open-source contributors whose packages are used in this project
If you have any questions or need help, please:
- Open an issue on GitHub
- Contact the maintainers
- Implement job search filters
- Add user profile management
- Integrate real-time notifications
- Add dark mode support
- Implement offline mode
- Add unit and integration tests
- Multi-language support
Made with β€οΈ using Flutter