Skip to content

LeandroPata/OrderManagementApp

Repository files navigation

Order Management App Project

This is a personal project created to improve order management.

It was developed with the intent to accurately, quickly and easily check current orders, what orders are not completed yet, are ready to be delivered or already delivered, the quantity of specific products needed to fulfill current orders and other features, while making the information available anywhere by storing it in a cloud database.

Features

Main Features

  • Add Clients, Products and Orders to a cloud database;

AddClient AddProduct AddOrder

  • Show orders from a specific client;

ShowClientOrder ShowOrderDetails

  • Show orders of a specific product;

ShowProductOrder ShowProductOrderLandscape

  • Show the quantities of all products currently ordered;

ShowProductQuantity

  • Updating a order's status(long pressing on a DataTable's row);
  • Import/Export of clients, products and orders databases to/from .csv files in order to facilitate sharing and/or editing;

MainMenu AddMenu ShowMenu ImportExportMenu

General Features

  • Authentication to allow only trusted accounts to access the information (ability to freely create an account would be removed in a real world implementation or require email/account verification before allowing login);
  • Changing Password;
  • Translation to different languages;
  • Light/Dark Theme;
  • Checking for updates (as it is a personal project, publishing in App Stores isn't feasible, so a different update checking system was implemented, not possible for iOS);

DrawerLight DrawerDark

Technical Notes

  • Both portrait and landscape layouts are supported, as landscape layout significantly improves viewing information from the DataTables;
  • As a common smartphone's screen width might not be enough to fully display the information from a DataTable's row, an alternative was implemented where clicking a DataTable's row will display all that row's information;
  • All searches of clients/products have a "fuzzy searching" implementation with a "hint" list to help the user find the intended client/product;
  • Update checking was implemented by having the APKs stored in Firebase Storage and then cross-checking the app's current version and the stored APKs version, downloading and updating if a more recent version is available (this isn't possible in iOS, as it doesn't allow sideloading);
  • As all cloud functionalities (as is) require Firebase, any reproduction of this project will require setting up Firebase (more specifically the modules detailed in the next section) and adding both config files (google-services.json and GoogleService-Info.plist) to the project;
  • Environment variables are used, so in any reproduction of this project setting them in a .env file (to run locally) and/or Expo (or other building framework) will be necessary. This is an .env example:
# Firebase Config Files
GOOGLE_SERVICES_JSON='./google-services.json'
GOOGLE_SERVICES_PLIST='./GoogleService-Info.plist'

Tech used

This project was developed with the React Native Expo framework, using a mix of Typescript, CSS and some Javascript.

All cloud features are build using Firebase. The main Firebase features used are:

Some of the main packages used are:

  • Fuse.js for fuzzy searching;
  • i18next for translation implementation;
  • React Native Paper for theming and appearance customization
  • All other packages are present in package.json;

Developed by

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors