Skip to content

WinMeet/winmeet_mobile

Repository files navigation

WinMeet Mobile

Table of Contents

  1. Project Architecture and Structure
  2. Preview
  3. Coding Standards
  4. How to Run

Project Architecture and Structure

Architecture

In our project, we used feature-first layered architecture, which divides each feature into distinct layers, such as data and presentation. This approach reduces coupling between features, enhances modularity and maintainability, resulting in a more organized and manageable codebase.

Structure

  • app: This folder contains files specific to the current application.
  • core: This folder contains application-agnostic code that can be reused in other projects.
  • feature: This folder represents the application's feature set.
    • Each feature is divided into subfolders for "data" and "presentation".
      • data: Contains "api", "model", and "repository" files
        • api: Responsible for sending requests to the backend.
        • model: Contains data classes of the respective feature.
        • repository: Calls the methods of the "api" files and returns either success or failure objects.
      • presentation: Contains "view" and "cubit" files.
        • view: Contains the UI code for the feature
        • cubit: Calls "repositories" and emits new states based on the results returned from the repository.

Preview

Login Register Schedule Details
Create Meeting Add Participants Pending Settings

Coding Standards

To ensure code consistency, maintainability, and readability across the project, we are following coding standards below:

  • Naming conventions:
    • We use "camelCase" for variables and function names.
    • We use "PascalCase" for class and enum names.
    • We name files using "snake_case".
  • Code formatting:
    • We use the very_good_analysis package as a linter to automate the formatting and linting process.
  • Code modularization:
    • We break down our code into smaller, reusable components or functions.
    • We organize code into folders based on feature.
  • Error handling:
    • We implement proper error handling using functional programming concepts like "Either" to manage errors.
    • We catch exceptions and provide meaningful error messages to users when necessary.
  • Version Control:
    • We use a version control system as Git to keep track of our code changes

How to Run

First, ensure that the Flutter SDK is installed on your computer.

Second, clone the repository by entering the following command in your terminal:

git clone https://github.com/WinMeet/winmeet_mobile

Third, navigate to the root folder of the project and install the dependencies by running:

flutter pub get

Then, generate necessary files by running the following command in the same folder:

flutter pub run build_runner build --delete-conflicting-outputs

Finally, start the app using the appropriate command based on your desired environment:

  • For development environment, use:

    flutter run lib/main_dev.dart
  • For production environment, use:

    flutter run lib/main_prod.dart

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages