132 lines
3.9 KiB
Markdown
132 lines
3.9 KiB
Markdown
# Tender Management App
|
|
|
|
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
|
|
|
|
### Prerequisites
|
|
|
|
- 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
|
|
|
|
### Installation
|
|
|
|
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. |