Powered by ChromaCorps
FFM (Family Financial Management) Application is a full-stack application built with a Flask Backend following the FlaskMVC pattern and React Native Frontend. This app aims to provide users with a seamless way to track and manage their financial transactions, budgets and goals.
- Backend: Python 3, Flask
- Frontend: React Native
- Database: PostgreSQL
- Backend Deployment: Render
- Frontend Deployment: Expo
To get started with this project locally, follow these steps to install the required dependencies.
Clone the repository to your local machine:
$ git clone https://github.com/Chroma-Corps/FFM-Application.git
$ cd FFM-ApplicationMake sure you have Python 3 and pip installed. Then, install the Python dependencies:
$ pip install -r requirements.txtEnsure you have Node.js installed. Install Expo CLI globally if you haven't already:
$ npm install -g expo-cliNavigate to the React folder and install the necessary dependencies:
$ cd React
$ npm installStart by setting up the backend. First, initialize the Flask application with the following command:
$ flask initThis will set up the necessary configurations, such as database migrations. Next, start the Flask development server:
$ flask runThe Flask backend will now be running locally.
Once the Flask backend is running, open another terminal and navigate to the React folder:
$ cd ReactNow, launch the React Native development server with:
$ npx expo startOpen in browser or scan the QR Code using 📲 Expo Go
You can easily deploy the project to Gitpod or Render:
To view the app on your mobile device:
-
STEP 01: Install the Expo Go application 📲 Expo Go - Apps on Google Play Or search for "Expo Go" in the App Store or Google Play.
-
STEP 02: Scan the QR Code using Expo Go Once the Metro bundler is running (from npx expo start), scan the displayed QR code with Expo Go to instantly preview the app on your device.
-
Here Is Our Deployed Version
You can then execute all unit tests as follows
$ flask test all unitYou can then execute all user tests as follows
$ flask test user💡 You can also supply "unit" or "int" at the end of the command to execute only unit or integration tests.
You can also run all application tests with the following command
$ pytest
