Miles
Member
Hello good people. New here. First post.
First up, I am by no means a "professional" developer. I have written quite a few desktop applications in Python Qt, VB.NET and C# WinForms, Java Swing (many years ago), and a whole bunch of code to automate host applications with VBA (Excel, Access, AutoCAD, Solidworks), but I have very limited experience creating browser based solutions. I write code as part of my job but it is not the entirety of my job. I am a self-taught developer.
So, I'm looking for some architectural advice for a solution I will be starting soon.
Basically, it is a job scheduling system for a small manufacturing environment. The current system we are using is a simple two-tier MS Access application built roughly 15 years ago that is constantly crashing. So, given that the system needs to be replaced we thought we would take the opportunity to add some new features to it, primarily, adding workstations around the workshop and using barcode scanners to log times.
One of the requirements is that it will need to be accessible from both Windows and Raspbian (if this is not feasible, then perhaps Windows IoT devices). It will also need to read data from an old IBM iSeries AS400 system, and a MySQL database I have running on a really old Windows Server. I also have another old Windows Server 2012 R2 machine available for IIS if required.
What I was orignally thinking was trying to get all the old data out of the Access database and putting it into a "proper" database like MSSQL or MySQL. Then creating three front-end interfaces for the following tasks :
So... How would folks here go about something along these lines? For simplicities sake I have left out details on much of the other functionality the main application will need to perform. If you need further clarification please ask. I think I have covered the most important aspects.
Seeing how only the main application needs to run cross-platform, should I create the other two as WPF and then use something like ASP.NET MVC for the main application? Should I create a Web API to handle all my business logic and then call into that from my front-ends? Any suggestions would be grateful here.
Cheers.
First up, I am by no means a "professional" developer. I have written quite a few desktop applications in Python Qt, VB.NET and C# WinForms, Java Swing (many years ago), and a whole bunch of code to automate host applications with VBA (Excel, Access, AutoCAD, Solidworks), but I have very limited experience creating browser based solutions. I write code as part of my job but it is not the entirety of my job. I am a self-taught developer.
So, I'm looking for some architectural advice for a solution I will be starting soon.
Basically, it is a job scheduling system for a small manufacturing environment. The current system we are using is a simple two-tier MS Access application built roughly 15 years ago that is constantly crashing. So, given that the system needs to be replaced we thought we would take the opportunity to add some new features to it, primarily, adding workstations around the workshop and using barcode scanners to log times.
One of the requirements is that it will need to be accessible from both Windows and Raspbian (if this is not feasible, then perhaps Windows IoT devices). It will also need to read data from an old IBM iSeries AS400 system, and a MySQL database I have running on a really old Windows Server. I also have another old Windows Server 2012 R2 machine available for IIS if required.
What I was orignally thinking was trying to get all the old data out of the Access database and putting it into a "proper" database like MSSQL or MySQL. Then creating three front-end interfaces for the following tasks :
- Administration of the system (adding new user accounts, modifying drop down fields in the front-end, system clean-up, perhaps getting access to the database in a less restrictive manner). This will be used by myself and the line managers.
- Entering new jobs into the system and getting the details on completed jobs. This will only be used by job co-ordinators and line managers. When a co-ordinator attempts to enter a new job into the schedule it will be validated against the AS400 data to ensure that a job exists and it will pull the data about that job from there and data about the item to be manufactured from the MySQL database. It will then go on to create a "Job Card" which is currently a physical printout of an Excel sheet that workers enter their names and times for different processes in the manufacturing of the item onto. It will also find the associated files for the job on a DFS and printing them all out (engineering drawings, test cards, inspection checklists, etc.)
- The main application. For all users of the system (mostly manufacturing employees). This will have several working parts to it but for the sake of simplicity, it will display the current jobs that are in the system and filter the results based on different criteria. Users will have cards with barcodes which they scan with a barcode scanner at a Raspberry Pi "terminal" and based on an employee skills matrix, the next relevant job will be issued to them. Each workstation in the manufacturing area will have a sheet of barcodes that represent different processes in the manufacturing of an item and a worker will scan on to begin a process and scan off when it is completed. The times will be collected into a database to be used when the job is completed and for future analysis.
So... How would folks here go about something along these lines? For simplicities sake I have left out details on much of the other functionality the main application will need to perform. If you need further clarification please ask. I think I have covered the most important aspects.
Seeing how only the main application needs to run cross-platform, should I create the other two as WPF and then use something like ASP.NET MVC for the main application? Should I create a Web API to handle all my business logic and then call into that from my front-ends? Any suggestions would be grateful here.
Cheers.