Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Invoice Maker

Invoice Maker is a Flutter-based mobile application designed to help freelancers, small businesses, and service providers create, manage, preview, and share professional invoices with ease.

What problem this solves

Creating invoices manually is time-consuming and often error-prone. This app simplifies the process by providing a streamlined workflow for:

  • creating invoices quickly from reusable client and item data
  • previewing invoices before sending them
  • generating PDF/print-friendly documents
  • organizing invoices and business details in one place
  • tracking invoice-related activity from a central dashboard

Tech stack

  • Flutter
  • Dart
  • GetX for state management and navigation
  • BLoC Cubits for UI-related state handling
  • GetStorage and SharedPreferences for local persistence
  • PDF and Printing packages for document generation
  • Intl for date and formatting utilities

App functionality and flow

The app follows a simple user flow:

  1. Splash screen initializes the app and checks the current session.
  2. Users log in or continue from a saved session.
  3. The dashboard provides an overview of recent invoices and quick actions.
  4. Users can manage clients, items, and invoices from the main navigation.
  5. A new invoice can be created, previewed, and exported as a PDF or printed.
  6. Settings, profile, analytics, and templates are available from the more menu.

Screenshots

A few screens from the app are available in the images folder:

Invoice Maker Preview

You can also view more screenshots here:

Project structure

The project is organized into clear modules for scalability:

lib/
  main.dart
  controller/        # app controllers for auth, dashboard, invoice, settings
  cubit/             # BLoC-style cubits for state management
  models/            # data models
  screen/            # UI screens and reusable widgets
  services/          # API, auth, invoice, PDF, and repository services
  styles/            # theme and app styling
  utils/             # constants, shared helpers, colors, widgets
  widgets/           # reusable UI components

What is used and why

Package Purpose Why it is used
get Navigation, state management, dependency injection Simplifies routing and controller-based app architecture
get_storage Local storage Stores small app data such as session or preferences efficiently
shared_preferences Preference persistence Handles lightweight app settings and user preferences
flutter_bloc Cubit-based state handling Keeps UI state organized and predictable
intl Internationalization and formatting Formats dates, currency, and other display values
uuid Unique ID generation Helps assign IDs to invoices, clients, or items
pdf PDF document creation Generates printable invoice documents
printing Print support Allows invoices to be printed directly
url_launcher External link support Enables opening links such as web URLs when needed

Getting started

Prerequisites

  • Flutter SDK installed
  • Android/iOS emulator or physical device

Install dependencies

flutter pub get

Run the app

flutter run

Notes

This project is currently focused on invoice generation and business management workflows for a modern Flutter app experience. It can be extended with backend integration, authentication APIs, and richer analytics in future versions.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages