[Draft/Early Version/Preview] Mobile Application based on Flutter (Android)

Hello,

Recently while working on supporting our erpnext.com deployment, we observed that a lot of our shop-floor (manufacturing floor) are unable to effectively use the ERPNext mobile application. Many of the forms that they use, like BoM, have fields which are not directly relevant when observing core data (Items in BoM). OR, in case of data entry, they had to make an attempt to navigate through various fields which the web-users needed (so, cannot remove them/hide them).

Overall, we started experimenting with a Flutter based application which can interface ERPNext (v12) and expose some common used functionalities.

Right now we have named the app ‘EBuzz’ - but that was more because of lack of any innovate name than an attempt to link to ERPNext (and no doubts, it cannot work without ERPNext :D)

There is no doubt that there already exists the ERPNext app and many other open-source attempts - we could have used them directly to experiment. Yet, we wanted to work with a from-scratch development because:

  • We wanted to create a series of interfaces which have limited fields - whether for viewing or data entry - so that a user in hurry (like people on a manufacturing floor or a on-the-road purchase agent) could easily get what they need. They need not worry about all other fields which are visible for their web-usage.
  • Also, in the process of development, create enough small snippets of development (wiki) which a user can use to clone and modify the app without knowing too much of Flutter. So, tweaking for those can afford to experiment.
  • Allowing this interface to expand towards the Web (Flutter Web) and Android/iOS alike. Currently this version is only developed and tested for Android - but using Flutter we believe that we would be able to expand quickly.
  • An experiment to understand the integration capabilities of ERPNext.

Even though this version is only Android build and very sparsely tested - we wanted to bring this to this forum just so the work can gain traction - in terms of ideas or in terms of use. In case someone would like to work with us in expanding, @mohityadav and I would be happy to discuss. We continue to expand slowly, anyways.

Our focus continues to be developing a raw Flutter application, raw because not much focus on UI/UX, which is easy for a on-the-floor user to use. We will integrate further features/modules of ERPNext in coming days.

We would keep the Github Wiki updated.

Thanks for reading through.

(* We are no experts at Copyrights and Licenses - this project is MIT licensed and hopefully has no infringement over ERPNext/Frappe copyrights. THIS POST OR REPO IS NOT ASSOCIATED WITH ERPNEXT/FRAPPE and neither supported or sponsored by them. Though I would be delighted if there any interest in direction of co-development. :slight_smile: )

10 Likes

Thanks a lot! This saved my day. I wanted Flutter reference app that works with ERPNext. I am using ERPNext v11 and I had to edit line 71 of login_api_service.dart file to get sid properly.

//String cookieSid = cookie.split(‘;’).first.toString(); Commented this line and added below.
String cookieSid = cookie.split(‘;’)[4].split(‘,’)[1].toString();

Great job @shreyansh

I think it would be nice (and create more interest) if you could add some screenshots to show what the app screens currently look like

Cheers!

1 Like

Hi @wale

Yes, that is definitely possible. What we will do is update the screenshots into the Wiki of the project.
Just give us a couple of days - shouldn’t take longer than that.

2 Likes

Hi @shreyansh, excelent work!

ERPNext announced in one of their mails,f I am not mistaken, and it was also seen in one of the last presentations of the OPEN DAY, that they are working on a mobile app (I guess just the opposite of what is now, and can work without Internet, with reduced functionality for specific issues, such as vendors for example).

It is not convenient to know where they are going with the development, how they can take or extend what they are doing to unify efforts.

It would be ideal if someone from the Frappe team could show us a light.

‘Offline’ is an interesting idea.
Ours is not a very fancy app - rather, a raw but functional attempt. But, offline can be an interesting feature. With Item Code, Names, BoM or for that matter some of the constant masters available offline.

As for Frappe - sorry, I had no knowledge of that - but would love to hear out from Frappe team about that.

Hi Shreyansh, it took me a little to get it running on my mac. But this looks very interesting. I am interested in contributing code to expand the use of this app. I am completely new to Flutter so let me review the code setup and get back to you about how I can contribute. If you have any ideas, please let me know.

I think the future is Mobile integration. While ERPNext works great, if has the same constraints that all ERPs have - data entry. The real world transaction happens in various places - on the shopfloor, in the warehouse, at the receiving yard, at the shipping station, but the ERP entry happens after a while and at a different place. The longer in terms of time and distance it takes to capture the entry, the less likely that the entry would be captured accurately, if at all.

So, the user/operator what’s making the transaction, should be able to whip out her/his smartphone (who doesn’t have a smartphone these days, huh?) and with a few taps be able to capture that entry.

Enabling that will improve the chances of success of an ERP system multifold.

I think you are absolutely on the right track. Our experience has been a bit mixed with Android apps - we have a Vehicle Tracking system for automobile dealerships, a manufacturing app and a m@tendance app. While people are very adaptable to use a Mobile device, people still do very silly things on a mobile phone (Whatsapp forward, Facebok likes, and similar) and it’s been a challenge to get them to understand the gravity of the entry that they are performing with just a few clicks. Consequently they make entries they shouldn’t. They make entries the wrong way. And most times, they don’t have a mental map of the impact that the entry is having on the organization and how it helps the organization.

So, our experience has been that organizations need to invest considerable time and energies after rolling out the app. Don’t expect things to work well.

One way to overcome the seriousness bit is to have implementing company provided Mobile Devices available on the shopfloor that operators can use to make entries. A separate device may perhaps provide enough seriousness and gravitas for the users and improve the chances of capturing the entries accurately. However, a shared device has it’s own set of challenges. Are you going to make users enter their login credentials every time. That doubles the time for the transaction. People forget passwords, etc. etc. Or are you going to use a common ID to capture transactions? That compromises on security and makes it harder to troubleshoot mistakes and focus retraining efforts. Authentication through face recognition for such shared devices seems best, but that adds additional developmental overheads.

Apologies for the long post, but as with everything in life, an ERP rollout however simple and well intended it is, is not a system rollout. The interplay of the system with the people/users has to be taken into account.

But it’s great you are on this track, and we’d love to collaborate and build micro apps for specific/targeted use cases.

Hope this helps.

Thanks

Jay

3 Likes

@shreyansh would love to see some screenshots!

2 Likes

@Duncan_Nkhata let’s watch this

1 Like

Really Nice App :slight_smile:
I tried with one of my testing environment…



4 Likes

Yes, we will update that into the Wiki. Just a couple of days please.

Apologies for delay - here is a current state of the app, described by some screengrabs.

Hello @JayRam

I fairly agree with you - the very assumption that users of an ERP should not be bound by devices is a prime consideration.

ERP as a word has come to be synonymous with a ‘large bulky system which runs the organization’ and hence the very assumption that it would need a proper ‘computer’ to ‘interact/execute/operate’ is a normal mindset.

What I have observed in last few months of supporting my organization in rolling out of ERPNext was that it is definitely possible to remove some of the hurdles by doing away with the mindset. And ERPNext UI has been superb when it comes to supporting my argument.

Why can’t a data entry interface be like the swipes that popular social media apps? Social media apps can make a creative, non-deterministic way of creating content (images, videos etc) so easy that anyone can use that. So, why can’t a deterministic process of data entry be made that easy?

I am not suggesting that there is a radical change. But, I believe that the seriousness that we attach to a ‘software’ because it is for a business is weighing heavy on how the UI/UX for ERPs are designed.

While we were making the app, and I would be honest - we are just a bunch of average guys, all we were thinking is what if we create multiple screens and allow data to be entered like a ‘process’.

For example, a Quality Inspection has these steps:

Select Input/Output Document (MR/DN) => Select Item to be Quality analyzed => Select Parameter => Enter data.

Our UI can also reflect that. It would definitely be lot of UI screens, but the ease for the user would be better.

Anyways, I don’t have expertise in UI/UX neither does the current app reflect what I am saying - at least not entirely. But this is what I am aiming for. That, all inputs can be like a workflow. All outputs can be like snippets of information. Unfortunately, it also means that this becomes specific to an organization’s view of a workflow.

Thanks for your comments and thoughts, though. I fully agree. Mobile is the next Tool.

3 Likes

DocTypeLayout, introduced now, is helpful to create multiple data entry points and data goes to the same doctype.

I feel we need domain-specific apps catering to the complete functionalities of that domain with ERPNext as backend. Mobile App for Education domain has become a must. Similarly, a mobile app for patients and physicians is a requirement for the Healthcare domain these days.

We need dedicated domain-specific apps that meet domain functionalities.

4 Likes

Hi, could you share some link/info about this? I tried to search but couldn’t find anything about it. Maybe I am not searching correct. What does this do?

Just type Doctype Layout in the search bar ( develop branch ) only