Last friday i finished my little project at work and i
really like what became of it: The goal was to build a
system in which our salespeople could view, insert and
modify their customers, take orders and view their old
orders. It should also work offline and sync automagically
with our ERP system.
Well, normally i have a solid dislike for the modern Web,
Javascripy and Webapps, but with this project and the
"target demographic" it was the only possible way to
go. I settled for a combination of CouchDB, PouchDB and
AlpineJS as the framework for the application. I really
started to like AlpineJS during the project: It is small,
it is simple and one can indeed still understand WHAT it
does and HOW it does what it does. CouchDB and PouchDB are
making the synchronisation of data between the clients and
the server really easy and enabling this "offline first"
of this website: You open it in your browser and no matter
the internet connection you can simply work with the local
copy of the db(-s).
In the end the whole thing has (everything included) just
a bit under 500 KB (of course not counting the content of
the databases)... not too bad i would say.
After that, getting the data into our ERP just was a bit
scripting to generate an XML file out of every order stored
in the CoucDB which can then be imported by the system.
Since monday the system is used by a selected group of our
salespersons to find any bugs left, but so far everyone
seems to be rather happy.