Skip to content

hisptz/lodiis-mobile-app

Repository files navigation

LODIIS MOBILE APPLICATION

contents:

Introduction

This is a mobile application that facilitates tracking of beneficiaries along with service provision within different interventions across all implementing partners. It is an essential part of the Lesotho OVC-DREAMS Integrated Information System (LODIIS) since it is the primary source of data within the system where it offers offline data capture from different implementing partners, with support for data synchronization.

The mobile app is divided into multiple modules based on the interventions. These interventions include:

  • DREAMS Module
  • OVC Module
  • Education module
    • LBSE module
    • BURSARY module
  • PP_PREV Module
  • OGAC Module
  • The access to these interventions is based on the user implementing partner since the LODIIS Mobile application allows access to multiple modules.

    Pre-requisites

    To get started with this project, it is required to have installed flutter framework. If not installed, here is the link to the download page and installation guide.

    Getting started

    To get started with the project, clone the repository with the below command:

    git clone https://github.com/hisptz/lodiis-mobile-app
    

    Navigate to the created project folder and install the packages using the command:

    flutter pub get
    

    Source code structure

    The following tree represents the basic project structure with files and folders for the KB mobile applications.

    |-android
    |-assets
    |  |-icons
    |  |-logos
    |-ios
    |-lib
    |  |-app_state
    |  |-core
    |    |-components
    |    |-constants
    |    |-offline_db
    |    |-services
    |    |-utils
    |  |-models
    |  |-modules
    |    |-about_app
    |    |-app_logs
    |    |-dreams_intervention
    |    |-education_intervention
    |    |-intervention_selection
    |    |-language_selection
    |    |-login
    |    |-ogac_intervention
    |    |-ovc_intervention
    |    |-pp_prev_intervention
    |    |-splash
    |    |-synchronization
    |
    |  |-app.dart
    |  |-main.dart
    |-test
    |
    |...
    |-pubspec.yml
    |-README.md
    
    

    Below is the description of the above structure:

  • android : This is the folder for the basic mobile android app configuration
  • assets : This folder contains assets for the project
    • icons : This is a collection of custom icons used in the app.
    • logos : This is a collection of different logos used in the app.
  • ios : This is the folder for the basic mobile ios app configuration
  • lib : This is a folder containing the actual source code which constitutes the app.
    • app_state : This folder contains different state management folders for different modules within the app.
    • core: Contains all the shared and basic functions, components, constants and service to be used across the app. These are classified into
      • components : This is a collection of user interface widgets.
      • constants : This is a collection of constants that are used to hold static values.
      • offline_db : This is a collection of all the services and definition of the offline database responsible for data storage. This uses the sqlite database with the abstraction provided by the sqflite flutter package.
      • services : This is a collection of different service classes for data manipulation.
      • utils : This folder contains different helper functions that performs specific functionalities.
    • models : This folder contains all the data models used within the app.
    • modules : This folder contains different modules in the app. Each module has a folder structure similar to core folder.
    • tests : This folder contains different tests for the app.
  • web : This is the folder for the basic web app configuration
  • window : This is the folder for the basic windows desktop app configuration.
  • pubspec.yaml : This file contains the package dependencies required to get started with the app
  • README.md : This is the file that contains the developer documentation for getting started with the app
  • Running the application

    This application can be run using the below flutter command within the project folder.

    flutter run