diff --git a/README.md b/README.md index f5ce8ad..2abae1c 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,132 @@ -# tm_app +# Tender Management App -A new Flutter project. +A Flutter-based mobile application for managing and tracking tenders, providing users with an intuitive interface to browse, track, and manage tender opportunities. + +## Features + +- **User Authentication**: Secure login system with user authentication +- **Home Dashboard**: Overview of tender statistics and quick access to recent tenders +- **Tender Management**: Browse and manage tenders with filtering and sorting capabilities +- **User Profile**: Personalized user profile management +- **Bottom Navigation**: Easy navigation between main sections of the app ## Getting Started -This project is a starting point for a Flutter application. +### Prerequisites -A few resources to get you started if this is your first Flutter project: +- Flutter SDK (3.0.0 or higher) +- Dart SDK (3.0.0 or higher) +- Android Studio / VS Code with Flutter plugins +- An Android or iOS device/emulator for testing -- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) -- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) +### Installation -For help getting started with Flutter development, view the -[online documentation](https://docs.flutter.dev/), which offers tutorials, -samples, guidance on mobile development, and a full API reference. +1. Clone the repository: + ```bash + git clone [repository-url] + cd tm_app + ``` + +2. Install dependencies: + ```bash + flutter pub get + ``` + +3. Run the app: + ```bash + flutter run + ``` + +## Project Structure + +``` +tm_app/ +├── lib/ +│ ├── common/ # Shared components and widgets +│ │ └── widgets/ # Common UI components +│ ├── core/ # Core functionality +│ │ ├── config/ # App configuration +│ │ ├── constants/ # App constants (colors, strings, assets) +│ │ ├── routes/ # Navigation and routing +│ │ └── utils/ # Utility functions and helpers +│ ├── data/ # Data layer +│ │ ├── models/ # Data models +│ │ ├── repositories/ # Data repositories +│ │ └── services/ # API services +│ ├── view_models/ # Business logic and state management +│ ├── views/ # UI screens and pages +│ │ ├── home/ # Home screen components +│ │ ├── login/ # Login screen and widgets +│ │ ├── profile/ # User profile screen +│ │ └── tenders/ # Tender management screens +│ └── main.dart # App entry point +├── assets/ # Images, icons, and other assets +├── android/ # Android-specific configuration +├── ios/ # iOS-specific configuration +└── test/ # Unit and widget tests +``` + +## Key Components + +### Authentication +- Login screen with custom UI components +- Authentication service and repository for user management +- Secure credential handling + +### Home Screen +- Statistics dashboard showing tender metrics +- Progress bars for visual data representation +- Quick access to recent tenders list + +### Tender Management +- Main tender screen with tabbed interface +- Tender cards with detailed information +- Action buttons for tender interactions (like/dislike) +- Slider for featured tenders + +### Navigation +- Bottom navigation bar for main sections +- Go Router for navigation management +- Shell route for persistent navigation + +## Technologies Used + +- **Flutter**: Cross-platform mobile framework +- **Dart**: Programming language +- **Go Router**: Navigation and routing +- **Provider/Riverpod**: State management (based on view models structure) + +## Assets + +The app uses custom SVG icons and PNG images located in: +- `/assets/icons/` - SVG icons for UI elements +- `/assets/pngs/` - PNG images including logo +- `/assets/svgs/` - Additional SVG assets + +## Building for Production + +### Android +```bash +flutter build apk --release +``` + +### iOS +```bash +flutter build ios --release +``` + +## Contributing + +1. Fork the project +2. Create your feature branch (`git checkout -b feature/AmazingFeature`) +3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + +## License + +This project is licensed under the MIT License - see the LICENSE file for details. + +## Support + +For support and questions, please open an issue in the project repository. \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 0234c13..cb7cb86 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: async - sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.13.0" + version: "2.12.0" boolean_selector: dependency: transitive description: @@ -181,10 +181,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.2" file: dependency: transitive description: @@ -227,6 +227,11 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" freezed: dependency: "direct main" description: @@ -259,6 +264,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.3" + go_router: + dependency: "direct main" + description: + name: go_router + sha256: "8b1f37dfaf6e958c6b872322db06f946509433bec3de753c3491a42ae9ec2b48" + url: "https://pub.dev" + source: hosted + version: "16.1.0" + go_router_builder: + dependency: "direct dev" + description: + name: go_router_builder + sha256: e436f0c69e717bd215639fbe27381b7e6605a255852b45cb244e28f01ab2e93a + url: "https://pub.dev" + source: hosted + version: "3.0.0" graphs: dependency: transitive description: @@ -319,10 +340,10 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: @@ -347,6 +368,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.1.1" + logger: + dependency: "direct main" + description: + name: logger + sha256: "55d6c23a6c15db14920e037fe7e0dc32e7cdaf3b64b4b25df2d541b5b6b81c0c" + url: "https://pub.dev" + source: hosted + version: "2.6.1" logging: dependency: transitive description: @@ -488,6 +517,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "4f81479fe5194a622cdd1713fe1ecb683a6e6c85cd8cec8e2e35ee5ab3fdf2a1" + url: "https://pub.dev" + source: hosted + version: "1.3.6" source_span: dependency: transitive description: @@ -596,10 +633,10 @@ packages: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "15.0.0" + version: "14.3.1" watcher: dependency: transitive description: