Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jason-omondi/ranchero

A Flutter mobile application for corporate employees and managers facilitate leave requests, view leave balances and analytics, track status, notifications and session management. It demonstrates modern mobile application development practices, including MVVM architecture, cross platform coroutines, testing strategies, and clean code principles.
https://github.com/jason-omondi/ranchero

animations dart flutter getx-state-management mvc-architecture provider self-service ui-design

Last synced: about 16 hours ago
JSON representation

A Flutter mobile application for corporate employees and managers facilitate leave requests, view leave balances and analytics, track status, notifications and session management. It demonstrates modern mobile application development practices, including MVVM architecture, cross platform coroutines, testing strategies, and clean code principles.

Awesome Lists containing this project

README

        

# Employee Self Service App

## Proposed Architecture
* Layers:

- Presentation Layer: Contains UI, controllers, and widgets.
- Domain Layer: Contains business logic, use cases, and models.

* Data Layer: Manages API calls, data sources, and repository implementations.

* State Management:
- Use GetX for controllers and state management.

## Folder Structure:
```
lib/
├── core/
│ ├── constants/ (App-wide constants like app_theme, etc.)
│ ├── utils/ (Helpers and utilities eg extensions.dart)
│ ├── widgets/ (Reusable widgets)
├── data/
│ ├── models/ (Data models for API responses)
│ ├── repositories/ (Repository implementations)
│ ├── providers/ (API interactions using Dio or HTTP)
├── domain/
│ ├── entities/ (Core entities used in domain layer)
│ ├── usecases/ (Business logic for API requests)
├── presentation/
│ ├── screens/ (UI screens)
| ├── name_of_screen/ (folders)
| ├── bindings/ (Bindings for each GetX controller)
| ├── controllers/ (State controller for each screen)
| ├── screen.dart (Screen-specific widgets)
├── main.dart (App entry point)
```

## Screenshots





Onboarding Screen


Onboarding Screen


Login Screen


Login Screen


Dashboard Screen


Dashboard Screen