Skip to content
/ mula Public

A fintech app for seamless money transactions, built with Flutter πŸ’™ and Firebase πŸ”₯

Notifications You must be signed in to change notification settings

morikeli/mula

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

464 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Mula App

Mobile app screenshots

Splash screen Onboarding screen
splash-screen onboarding-screen
Login screen Signup screen
login-screen signup-screen
Home screen (home tab) Send Money screen
home-screen send-money
Transaction history screen Profile screen
recent-transactions profile_screen

Overview

Mula is a slang word for money. This is a modern, cross-platform fintech application designed to make money management fast, secure, and effortless. Built with Flutter πŸ’™ and Firebase πŸ”₯, Mula delivers a smooth, feature-rich experience on both Android and iOS.

Whether you’re sending money to friends, tracking your spending, or managing your digital wallet, Mula keeps everything at your fingertips with an intuitive design and rock-solid security.

Target users

Mula is designed for individuals and groups in Africa and beyond who need fast, secure, and flexible ways to move money. Key user segments include:

  • πŸ’Ό Freelancers – Professionals on platforms like Upwork or Fiverr receiving international payments.
  • πŸ› Small Business Owners & Market Vendors – Accepting digital payments instead of cash, enabling safer and faster transactions.

Key features

  • πŸ” Secure Authentication – Login with Firebase Auth, plus app-level PIN protection for extra security.
  • πŸ’³ Wallet Dashboard – View your balance, recent transactions, and quick actions in one place.
  • πŸ’Έ Instant Money Transfers – Send and receive money in multiple currencies with real-time processing.
  • πŸ“œ Transaction History & Insights – Track your spending, filter by date/type, and view analytics.
  • πŸ‘€ Profile & Settings – Manage your personal details, update your PIN, and customize preferences.
  • πŸŒ“ Dark & Light Mode – Adaptive themes for a better user experience.

Tech Stack

  • 🎨 Frontend: Flutter v3.38.5, Dart v3.10.4
  • ☁️ Backend & Auth: Firebase
  • πŸ’Ύ Storage: Firebase Firestore
  • πŸ—„οΈ Local Storage: SQLite (for offline data and PIN storage)
  • ⚑ State Management: BLoC
  • πŸ—οΈ Architecture: MVVM (separation of logic, UI, and services)
  • πŸ—ƒοΈ Libraries/packages:
    • crypto - PIN hashing
    • toastification - display toast notifications in the app
    • sqlflite - for creating and managing SQLite db
    • flutter_native_splash - for creating and generating app splash screen
    • flutter_launcher_icons - for creating and generating launcher icons
    • uuid - for generating UUID for id fields in Firebase collections
    • intl - for applying date and number formats

Product thinking

Mula was born out of a challenge to design and build a user-centered fintech app using Flutter. The task was to create a functional mobile banking prototype for a chosen target audience, focusing on:

  • πŸ“± Mobile-first product design with strong UX.
  • πŸ›  Modular, maintainable Flutter architecture with clear separation of concerns.
  • ⚑ Smooth state management, local storage, and routing.
  • 🀝 Real-world problem-solving for underserved markets, especially in Africa.

This wasn’t just a coding challenge β€” it was an exercise in product thinking, aligning technical execution with genuine user needs while balancing feasibility, scalability, and user experience.

Developer instructions


NOTE:

  • To run this project, you MUST install Flutter SDK on your machine. Refer to Flutter's documentation and follow a step-by-step guide on how you can install Flutter SDK on your OS.

  • Make sure you have installed Android Studio or a text editor of your choice - VS Code or XCode.

  • Make sure your machine supports virtualization - required to run an emulator. If it doesn't, don't worry, you can install scrcpy on your machine or use Android Studio's mirror device feature.

Scrcpy Installation guide


Installation guide for developers

  1. Git clone

Clone this repository by opening your terminal/CMD and change the current working directory to Desktop - use cd Desktop command.

    cd Desktop
    git clone https://github.com/morikeli/mula.git
  1. Open the cloned repository on your text editor and run this command:
    cd mula  # or change dir in the terminal and run the `flutter run` command
    flutter run
  1. Make sure you have a very strong internet connection so that the necessary gradle files can be downloaded. These files are necessary to build the project apk file.

Keep in mind:

  • When building the application for the first time, it may take 10 - 15 minutes to finish the installation and build process.
  • When running the application using the flutter run command, it may take atleast a minute to install the build files on a physical device.

🀝 Contributor expectations

Incase of a bug or you wish to make a contribution, create a new branch using the git command git checkout -b <name of your branch> and create a pull request. Wait for review.

You can also open an issue using the Issues tab. The reported issue will be reviewed and a solution may be provided.

πŸ™ Request

Don't forget to star the repo πŸŒŸπŸ˜‰

🐞 Known issues

  1. Non-functional features

The features outlined below are non-functional:

  • Some list tile and icons (e.g. icon button to add/update profile pic) in the profile screen are placeholder icon.
  • Forgot password functionality. It uses dummy data.
  • Profile pictures are static.