Need MS Access app re-written to something else.
-
@jasgot said in Need MS Access app re-written to something else.:
manages the barcodes in the database
What does this mean. How much detail is there for each barcode?
-
@jasgot said in Need MS Access app re-written to something else.:
serial signal to a controller
Only serial? The gate controller has a serial port?
-
This could be done in any language that you're familiar with. I've done something similar in PHP as text based application.
Edit: Your idea of running it on a rPi could work out nicely!
-
@jasgot said in Need MS Access app re-written to something else.:
I am looking for someone who can re-create our MS Access App in a language that will be platform independent.
We have an app written in MS Access using VBA that polls barcode readers for barcodes and then does lookups in a database to determine validity, then sends a serial signal to a controller that opens a gate.
This same software manages the barcodes in the database. It's all inclusive.
I do not know the best database and software to write it in, perhaps we can start there and then I'll start looking for a programmer.
My first thought is Java and MySQL or MongoDB.
This will not be cloud based. It need to run on a dedicated box and needs to be able to run without any internet connectivity at all. (Internet is available, just not reliable.)
Heck, I bet a RaspberryPi could do this!
I'm ready for questions and discussion that will help lead me to a solution!
We've done many similar custom projects. Probably close to a hundred.
I would start by looking at the problem at hand and then decide on what technology to use after the facts are known.
For instance:
- What type of system (entry system, logistics, manufacturing etc) is it and where is it located (office, warehouse, factory etc)?
- Is it a 24/7/365 system or is it just used during business hours?
- What are the implications if it's not working?
- You say serial to a controller that opens a gate. What type of serial interface is it (RS232, RS422, RS485) and how far?
- How are the barcode readers connected? What type and how many?
- What are the response time needed for the system after a barcode is scanned to the gate is opened?
- What hardware do you use today? A regular PC running Windows?
- Are there any security concerns? For instance if the gate opens something sensitive. Is it a security gate? Who can access the system configuration etc.
- Does things needs to be logged or any reports generated?
- etc, etc
When you know the needs of the end users, you can start thinking about how to solve the technical issues. When you are upgrading something, there is also the possibility of changing things to make it better, easier to use, lower cost etc.
-
Also if I wanted to have this project done, I wouldn't waste my time trying to make some kind of program specification. Or make up answers for every possible question that the might come up. Or even figure out what hardware, software, database, programming language etc to use.
Use the developers expertise instead. Part of every project is to figure out what the goal, scope and expectations are and also potential problems and alternative solutions. The developer should be able to ask what he/she needs to know to accomplish your goals with the project. And come up with a solution for you.
Many customers waste their time trying to come up with some kind of specification that is not relevant or just completely unusable.
-
@jaredbusch said in Need MS Access app re-written to something else.:
What does this mean. How much detail is there for each barcode?
There are two tables in the database.
One table has each barcode and two dates.
The dates are the beginning and ending usages dates for that barcode.
Example:
Barcode#: 310001
AuthDateBegin: 07/22/2021
AuthDateEnd: 07/25/2021This barcode will be allowed to operate the gates from 00:00:01 on 7/22 until 23:59:59 on 7/25
The other table is just a log, it records the Barcode#, Time of Scan, and which scanner it was scanned. There are four scanners.
-
@jaredbusch said in Need MS Access app re-written to something else.:
Only serial? The gate controller has a serial port?
The computer monitoring the scanners has two serial devices attached.
One is an RS232 to RS485 converter, this is how we chat with the barcode readers.
The other is a serial-signal controlled bank of four relays. These relays are what trigger the gates to open. (Voltage raised - gate opens, voltage drops- gate closes.) -
@pete-s said in Need MS Access app re-written to something else.:
We've done many similar custom projects. Probably close to a hundred.
I would start by looking at the problem at hand and then decide on what technology to use after the facts are known.
For instance:We have all of this in place already. It's an existing system. I am only interested in changing the software.
-
@pete-s said in Need MS Access app re-written to something else.:
Also if I wanted to have this project done, I wouldn't waste my time trying to make some kind of program specification. Or make up answers for every possible question that the might come up. Or even figure out what hardware, software, database, programming language etc to use.
Use the developers expertise instead. Part of every project is to figure out what the goal, scope and expectations are and also potential problems and alternative solutions. The developer should be able to ask what he/she needs to know to accomplish your goals with the project. And come up with a solution for you.
Many customers waste their time trying to come up with some kind of specification that is not relevant or just completely unusable.
Fortunately, this too is already done.
-
@jasgot said in Need MS Access app re-written to something else.:
I do not know the best database and software to write it in, perhaps we can start there and then I'll start looking for a programmer.
Not something that IT should be deciding, really. That's completely an software engineering decision.
However, there are some obvious options that should be at the absolute top of the list: PHP, Python, Ruby for languages.
MariaDB and PostgreSQL if you need an RDBMS, SQLite if you don't.
-
@jasgot said in Need MS Access app re-written to something else.:
My first thought is Java and MySQL or MongoDB.
These are basically your "never consider them" options. Java is a train wreck of an ecosystem and at this point, while technically a good language, requires so much unnecessary IT support and so much expensive development and development processes it really only exists for legacy support (like COBOL.) If you don't already have a Java shop using Java because it is technical debt, it should never be on your radar again. Same for .NET.
MySQL is the crappy Oracle product that no one touches anymore. If you want something like MySQL, it should always be MariaDB. But most competent devs use PostgreSQL over MariaDB... it's faster and more robust for most tasks.
MongoDB is totally off the table. You should never use this product, it has so many licensing problems that using it easily causes you to not own any of your code depending on how and where you deploy it. It's a huge IT undertaking to maintain. It's a nice database as data itself goes, but as the IT department you should be threatening your developers if they suggest maybe using this.
-
@jaredbusch said in Need MS Access app re-written to something else.:
@jasgot said in Need MS Access app re-written to something else.:
first thought is Java
Never my first thought, but could work. All platforms have it available. But I would want to reread Oracle license for Java again.
It CAN do it. So can COBOL. But they should both be on the "absolute last resort" list, not the short list.
-
@pete-s said in Need MS Access app re-written to something else.:
Also if I wanted to have this project done, I wouldn't waste my time trying to make some kind of program specification. Or make up answers for every possible question that the might come up. Or even figure out what hardware, software, database, programming language etc to use.
Use the developers expertise instead. Part of every project is to figure out what the goal, scope and expectations are and also potential problems and alternative solutions. The developer should be able to ask what he/she needs to know to accomplish your goals with the project. And come up with a solution for you.
Many customers waste their time trying to come up with some kind of specification that is not relevant or just completely unusable.
Yes, totally agreed. That stuff is for the engineers, not the customers. If I want a bridge built, I just have to know from where and to where and what kind of traffic it needs to handle. Trying to decide on the building materials and design is 100% wasted by me. A year of me doing research would not yield anything usable and a real engineer would throw out my work in the first 30 seconds and in two hours have real answers ready when I just wasted a year for nothing.
-
@jasgot said in Need MS Access app re-written to something else.:
Fortunately, this too is already done.
Throw it away. Specs are not just worthless, but actively bad, when not coming from the engineers.
-
@scottalanmiller said in Need MS Access app re-written to something else.:
@pete-s said in Need MS Access app re-written to something else.:
Also if I wanted to have this project done, I wouldn't waste my time trying to make some kind of program specification. Or make up answers for every possible question that the might come up. Or even figure out what hardware, software, database, programming language etc to use.
Use the developers expertise instead. Part of every project is to figure out what the goal, scope and expectations are and also potential problems and alternative solutions. The developer should be able to ask what he/she needs to know to accomplish your goals with the project. And come up with a solution for you.
Many customers waste their time trying to come up with some kind of specification that is not relevant or just completely unusable.
Yes, totally agreed. That stuff is for the engineers, not the customers. If I want a bridge built, I just have to know from where and to where and what kind of traffic it needs to handle. Trying to decide on the building materials and design is 100% wasted by me. A year of me doing research would not yield anything usable and a real engineer would throw out my work in the first 30 seconds and in two hours have real answers ready when I just wasted a year for nothing.
So I'm a little confused here...Are you saying that it's not an IT issue that @JasGot is trying to solve here? If one of your customers came to you with this exact question, you would tell them that they need to find a software engineer to get them their answer? Or do you employee software engineers that would tell you how they would move that solution off of Windows and MS Access to a different platform?
-
@dragon3303 said in Need MS Access app re-written to something else.:
you would tell them that they need to find a software engineer to get them their answer?
Obviously. Other than the fact that I'm a software engineer by training and IT later. But as an IT firm, it would be totally wrong for us to pretend to be software engineers. Are you saying that you'd want the IT people, who have no knowledge or training around the needs here, to be making software engineering decisions? Why?
Other than the fact that the customer is asking the wrong people, why would IT volunteer to give information in an area that they know nothing about? Even if IT has guidance to offer, until you have the engineers to work with you don't have enough of the picture to offer useful guidance.
-
@dragon3303 said in Need MS Access app re-written to something else.:
Or do you employee software engineers that would tell you how they would move that solution off of Windows and MS Access to a different platform?
We do not, we would tell them to bring in a firm (and of course, we'd happily assist.) But IT and software engineering are incredibly different disciplines. It would be great if we were so large that we could do both, but realistically we can't.
But we can definitely help identify and manage an engineering project if that makes sense.
-
@dragon3303 said in Need MS Access app re-written to something else.:
Are you saying that it's not an IT issue that @JasGot is trying to solve here?
IT has a problem: the customer is using a crappy product that they should not use. So there is an IT problem
But let's think of it in the context of cars. IT is like a professional driver (chauffeur, race car driver, taxi, whatever makes sense to you), and software engineering is like an automotive engineer that designs and builds the car that IT drives.
IT can easily identify when they have a crappy car that doesn't meet their needs or when a car is broken or needs maintenance. But as a chauffeur you don't design and forge a new engine, you buy one from a car maker (who employees automotive engineers.)
Having your taxi driver or chauffeur design and build a new car sounds insane. But this is how people approach IT. "Well, they 'do car things' so they must be the right people to design and build a car from scratch." Sounds crazy, but people say that about IT... "Well, they use computers so they must do all tasks that we don't understand." You could say the same thing about accounting, they "use computers", too.
Designing software is a big discipline, one with surprisingly little overlap with IT. To IT, software engineers are just end users, for example.
-
@dragon3303 said in Need MS Access app re-written to something else.:
@scottalanmiller said in Need MS Access app re-written to something else.:
@pete-s said in Need MS Access app re-written to something else.:
Also if I wanted to have this project done, I wouldn't waste my time trying to make some kind of program specification. Or make up answers for every possible question that the might come up. Or even figure out what hardware, software, database, programming language etc to use.
Use the developers expertise instead. Part of every project is to figure out what the goal, scope and expectations are and also potential problems and alternative solutions. The developer should be able to ask what he/she needs to know to accomplish your goals with the project. And come up with a solution for you.
Many customers waste their time trying to come up with some kind of specification that is not relevant or just completely unusable.
Yes, totally agreed. That stuff is for the engineers, not the customers. If I want a bridge built, I just have to know from where and to where and what kind of traffic it needs to handle. Trying to decide on the building materials and design is 100% wasted by me. A year of me doing research would not yield anything usable and a real engineer would throw out my work in the first 30 seconds and in two hours have real answers ready when I just wasted a year for nothing.
So I'm a little confused here...Are you saying that it's not an IT issue that @JasGot is trying to solve here? If one of your customers came to you with this exact question, you would tell them that they need to find a software engineer to get them their answer? Or do you employee software engineers that would tell you how they would move that solution off of Windows and MS Access to a different platform?
This is where the lay person (and myself included at times) gets totally wallooped. The lay person has no idea what's needed - they only know they have a problem and want it fixed...
As Scott mentioned - it is the responsibility of the person in charge of the project to find the right resources - and that might be with them starting by finding someone who understand the needed disciplines and then helping to hire.
Sadly - most businesses can't stand the idea of paying a consultant as a middle man - they just don't see/understand the value. -
@dragon3303 said in Need MS Access app re-written to something else.:
If one of your customers came to you with this exact question,
They do all the time. And we never try to do this ourselves. If the project is truly huge, we might offer to staff up an engineering team just for them, but it has to be that scale to consider.