Thanks to visit codestin.com
Credit goes to github.com

Skip to content

CulesBao/find-job-mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“± Find Job Mobile

A modern Flutter mobile application for job searching and career opportunities.

Flutter Version Dart Version License

✨ Features

  • πŸ” 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

πŸ—οΈ Architecture

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

πŸ› οΈ Tech Stack

Core

  • Flutter - UI framework
  • Dart - Programming language

State Management & Architecture

  • 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

Navigation

  • go_router (^16.2.5) - Declarative routing
  • auto_route (^10.2.0) - Advanced routing solution

UI & Design

  • 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

Networking & API

  • dio (^5.7.0) - HTTP client
  • retrofit (^4.4.1) - Type-safe REST client
  • pretty_dio_logger (^1.4.0) - Network logging

Data Management

  • shared_preferences (^2.3.3) - Local storage
  • json_annotation (^4.9.0) - JSON serialization
  • freezed_annotation (^2.4.4) - Code generation for data classes

Utilities

  • intl (^0.20.2) - Internationalization and localization
  • talker_flutter (^5.0.2) - Advanced logging

Development Tools

  • 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

πŸ“‹ Prerequisites

Before you begin, ensure you have the following installed:

πŸš€ Getting Started

Installation

  1. Clone the repository

    git clone https://github.com/CulesBao/find-job-mobile.git
    cd find-job-mobile
  2. Install dependencies

    flutter pub get
  3. Generate code (for Retrofit, Freezed, JsonSerializable)

    flutter pub run build_runner build --delete-conflicting-outputs
  4. 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

Development Mode

Watch for file changes and auto-generate code:

flutter pub run build_runner watch --delete-conflicting-outputs

πŸ“± Supported Platforms

  • βœ… Android
  • βœ… iOS
  • βœ… Web
  • βœ… Windows
  • βœ… macOS
  • βœ… Linux

🎨 Design System

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

πŸ“ Project Structure

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

πŸ§ͺ Testing

Run tests with:

# Run all tests
flutter test

# Run tests with coverage
flutter test --coverage

πŸ”§ Configuration

Environment Setup

The app uses service locator pattern for dependency injection. Configure your services in:

lib/app/config/service_locator.dart

API Configuration

Configure your API endpoints and networking in the appropriate data layer files.

πŸ“ Code Generation

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

🀝 Contributing

Contributions are welcome! Please follow these guidelines:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes following Conventional Commits
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

Commit Convention

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 steps

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘₯ Authors

πŸ™ Acknowledgments

  • Flutter team for the amazing framework
  • All open-source contributors whose packages are used in this project

πŸ“ž Support

If you have any questions or need help, please:

  • Open an issue on GitHub
  • Contact the maintainers

πŸ—ΊοΈ Roadmap

  • 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

About

Find job appplication. Available on Web and Mobile

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5