Skip to content

nhao2003/_88credit_flutter

Repository files navigation

logo

88Credit - P2P Lending App

  • Introduce the application:

    • "88Credit" is a P2P Lending application that connects lenders and borrowers directly. The application is designed to be simple, easy to use, and easy to understand for users. The application is designed with the purpose of helping users to borrow money quickly and conveniently, and to help lenders find borrowers quickly and conveniently.

    • P2P Lending is designed and operated on digital technology platform, in which lenders and borrowers can connect directly with each other instead of via financial institutions.

    • P2P Lending can simplify lending procedures, paperworks and save time in transferring fund. However, it could cause risks to the financial monetary security and stability.

P2P lending

  • List of Features:
    • User Account Management
    • Ad Posting and Management
    • Loan Request Functionality
    • Fee Payment Processing
    • Contract Generation
    • Chat Functionality
    • Blog Functionality
    • Search Functionality

Getting Started

To run any Android application built with Flutter you need to configure the enviroments in your machine, you can do this following the the tutorial provided by Google in Flutter website

  • Flutter SDK
  • Android Studio (to download Android SDK)
  • Xcode (for iOS develop only)
  • Any IDE with Flutter SDK installed (ie. IntelliJ, Android Studio, VSCode etc)
  • A little knowledge of Dart and Flutter

Technologies

  • Flutter
  • Clean Architecture
  • GetX
  • API with NodeJS backend and Postgre Database
  • ZaloPay SDK
  • SocketIO

Setup

  1. Clone the repository
  2. Open the project in your preferred IDE (e.g. Android Studio, VS Code)
  3. Run flutter pub get to install the required dependencies
  4. Run the project in an emulator or on a physical device

Architecture

The Flutter codebase follows Clean Architecture principles, a design philosophy that emphasizes separation of concerns and maintainability.

architecture

Project stucture

// Directory structure for assets and app
- assets:
  - lotties: contains lotifile and animate files
  - icons : contains icon images for usage
  - images: contains app images
  - fonts : contains app fonts (you can using GoogleFont package)
- test: contains test files
- cofig:
    - theme: contains app theme (theme, colors, text styles, etc.)
    - languages: contains app translation (en, vi, etc.)
    - values: contains app values ( strings, image assets)
    - routes
        - app_pages.dart: routes to corresponding pages
        - app_routes.dart: contains names of routes
- core:
    - constants: contains common constants for app (api, etc.)
    - errors: contains error handling (exceptions, failure, etc.)
    - extensions: contains extensions for values in app ( String, DateTime, etc.)
    - network: contains network information (check internet connection, etc.)
    - resources: contains common resources (assets, abstart class of state, etc.)
    - usecases: abstract class for usecases
    - utils: contains common utility functions for app
    - services: implement services for app
- features:
    - data:
        - db: contains database (API, database, firebase, etc.)
        - datasources: contains data sources (local, remote, etc.)
        - models: contains models for data
        - repositories: contains repositories for data
    - domain: contains domain layer (entities, usecases, etc.)
        - enums: contains self-defined enums
        - entities: contains entities for domain
        - repositories: contains repositories for domain
        - usecases: contains usecases for domain
    - presentation: contains presentation layer (pages, widgets, blocs, etc.)
        - global_widgets: contains frequently used widgets in the app
        - <module_name>: named after the functional name
            - screens: contains pages for the feature
            - widgets: contains local widgets only used in this feature
            - <module_name>\_controller.dart: Initializes controller for the feature
            - <module_name>\_binding.dart: Defines functions and variables for controller
- injection_container.dart: contains dependency injection
- main.dart

UseCase Diagram

UseCase

ERD Diagram

ERD

Screenshots

Screenshot 1 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 2

Screenshot 6 Screenshot 7 Screenshot 8 Screenshot 9 Screenshot 10

Screenshot 11 Screenshot 12 Screenshot 13 Screenshot 14 Screenshot 15

Screenshot 11 Screenshot 12 Screenshot 13 Screenshot 14 Screenshot 15

Screenshot 11 Screenshot 12 Screenshot 13 Screenshot 14 Screenshot 15

Screenshot 11 Screenshot 12 Screenshot 13 Screenshot 14 Screenshot 15

References

Admin website

Server backend

Design Figma

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published