The project is mainly 0805 surface mount, the smallest parts are the FFC (Flat Flex Cable Connectors) which are 0.5mm, you will need to solder a 31 pin one for the GLCD and a 12 pin one for the barcode.
If you open the cad files in your browser and look at the PCB it doesn't have too many parts and can be assembled by just about anyone with decent soldering skills in a couple of hours, I have made up 2 boards, but for larger qty I would recommend going to an assembly house for the SMD parts.
Firmware updates are done via the exposed ICSP port. The PIC32 USB port has been broken out so a boot-loader can be written if required for the PIC and for the ESP-01 as I have broken out the ESP-01 GPIO pin for controlling the flashing to a PIC IO pin.
I would only recommend getting a membrane keyboard custom made if you are making a large qty, the alternative is to modify and extend the PCB to the full length of the case and mount SMD buttons on the LCD side of the PCB (the back) then make suitable holes in the case.
The barcode scanner must face the front window of the unit at an angle to prevent internal reflections from washing out the barcode signal. On this PCB I have mounted it at a 30 degree angle and this seems sufficient though a better design would be to change the case so that the window is angled from top-to-bottom (see the barcode documentation on this, it is important and a big trap for young and old players)
The ESP-01 will need to have the AT firmware flashed for my implementation, this must be done BEFORE the ESP-01 is mounted. I also recommend checking the ESP-01 connects using a serial terminal before soldering it in as these units are not very consistent for quality!
Most of the configuration parameters such as SSID, username and password will need to be input on first use (don't code these in the firmware unless your prepared to re-flash every unit if your SSID/Password changes!) There are two easy ways to do this either using a pre-printed barcode sheet that the user will scan to set-up, or alternatively and more securely to encode the SSID/password into the RFID tag. Setting up the terminal with therefore be a matter of scanning a couple of barcodes or a single RFID card.
I have also set the output printer selection the same way so if your user wants to print something you can scan a barcode stuck on the printer and it will redirect the print there
The first version of the firmware I am now using has the user program and menus hard-coded, my original goal was to incorporate a simple byte code interpreter which will allow someone with no great knowledge to use something like a variation of tiny basic to use but I have found the functionality I need for now can be incorporated in a very simple menu program.
The second program you need to write will be the server one that interprets simple pre-determined queries (such as SQL or print requests) and actions them on the network, I have used Lazarus (Free-Pascal) for this this, but it could easily be done in something like PHP or Python or indeed any language that can listen on a TCP socket and send responses. This program is going to be very specific to the target MRP system you will want to interface to, I have made a very simple example which will hopefully give you the basics. The system I am interfacing to is proprietary not open source so I wont be publishing my specific program due to a NDA with the client.