# Directory Structure

![](https://content.gitbook.com/content/qpzpUHpvEwV9ShSZ1v55/blobs/vjRcYZQ4pG44dAILJq8o/Screenshot%202021-03-20%20at%203.53.43%20PM.png)

### Constants

Contains all constant value for the app like **app colors**, **app images**, **apis**, **app theme** etc.

### Models

Data model are defined for easier data handling and manipulation.

### Requests

Contains all the api requests to fetch fetch and send data to and fro the backend api.

### Services

Contains app services files for manipulating and interacting with different part of the part during use.&#x20;

For example there is **firebase.service.dart** which provides the app with interaction with firebase cloud messaging service.

### Translations

This folder contains all the translated values for the strings used throughout the app. Current the app is by default translated to support **7 different languages:**&#x20;

1. English
2. French
3. Spanish
4. German
5. Portuguese
6. Arabic
7. Korean (South Korea)&#x20;

### Utils

Contains all app utility functions like ui spacer for adding space within the app widgets.

### View\_models

Fuodz is using the [Stacked State management package](https://pub.dev/packages/stacked). All business logic code is stored in the view\_models.&#x20;

ViewModel **m**anages the state of the View, business logic, and any other logic as required from user interaction. It does this by making use of the services.

### Views

Contains all screens/pages/views of the application. Example is LoginPage, RegisterPage and so on.

Views are grouped into pages and pages are grounded base on functionality. For example Login & Register Page are both grouped under the **auth** folder in the views/pages folder

### Widgets

Contains all UI widget used in the application like: Buttons, TextFields, BottomSheet views etc
