How can I program or encode an attendance system in gototags or any other windows Software for NFC? - nfc

I am new to programming, and just have wandered a few minutes with NFC. And I need to program an attendance management software by using the input of NFC tags in a reader for a school project. I just downloaded the Gototags Windows software for encoding, but I can adapt to any other software you know can do this task.
I’ve only been wandering around for a few minutes, and saw a tutorial.
I vaguely know there should be a way to do this through excel but I don’t even know how to open excel through the gototags app
As it is only a school project I don’t expect nothing more ambitious than a database that keeps the number of days certain person attended and showing the name of the person.

This is really basic stuff but you need to make things clear in your mind. And since you are new to NFC AND programming, you'll be passing through a long research step.
If you intend to program your own user interface with your own features and stuff, you have to choose a technology to program it.
I don't know GoToTags but it seems to be a simple program to encode chips.
It writes on it and that's all it does.
There is nothing that allows you to read a chip, write the results in a database or display them in a custom interface. Which is what you gotta do, right ?
It appears they had an SDK for .NET but i didn't find anything else than an error 404 on their website...
Once you have your technology, you can start to search for more accurate informations on how you can do it and split the work into multiple steps.
Basically,
The basics of this programming language
How can i create a database and access it through my program
How can i read a chip and 'send' the data into my program (it has to be compatible with the programming language you previously choosed).
You also gonna need some hardware. Do you have anything given or imposed by your school ?
Once you have all of this, all the work is done :
Read the chip data.
In database, access to the user related with the data you read (every chip got an unique ID, you could use this UID to 'link' each chip with the users in database)
Verify this is the first attendance of the day for this user
If so, increase by one the number of days attended in the database and/or display the new number on your software interface or whatever else you chose to give a visual feedback.
That's all. Then, if you got time, you can add several things to your program like an auto-enrollment for users and the chips. But it already fulfill your expectations for this project.
If you have any question/additional information to give, we can discuss it. I wrote this as an answer because i don't have enough space to make it a comment.

Related

Interact with GUI Elements of a Windows Application

First of all, I want to appreciate the work for the SCIDvsPC Project. I know that the basic SCID one has been discontinued many years back and the developer have done a great job with expanding it and doing his share for the Chess Field. We have a Minor Project to do in this 6th semester of our college. We've decided to start a project on a Chess Next Move Analyzer that is based on variety of filters and implements Self Learning and Machine Learning.
I've been researching over the project idea for the last 2 months. Actually we need to import several games defined on some filters and read and analyze from the PGN file generated. For example, if the user chooses to get the next best move predicted according to the rating range of 2000-2500, our program should only export and analyze the PGN files that have both the opponents from this range only. I know the project can do all this but I'm confused over how to automate this. I mean I have to manually enter the moves and then click on 'Generate PGN' but how to make my program do this ie take input from the user (like first 3 moves), make the project run these moves (what I had to manually) and then generate the PGN file and keep it in a folder.
I've surfed the net about interacting with GUI elements in Windows (we have no problem in working with Linux either) and came to know about Microsoft UI Automation, Python, Java and C# softwares and something like COM. Do the software support COM or any one of these or have you already developed some functionality like this? Please can you guide me over this?
If asked to Generalize this what I want to do is to interact with GUI Elements, be it any application. Take Notepad as an example. Suppose I want to open a file on it, find and replace a particular word. Now, I know how to do this manually but when I have over thousands of file I need some kind of program to do this for me. Do some specific programs like SCID in my case has some feature (read bit about COM) pre-built to handle this? In which programming language domain does this come into? Is using Linux help me more?
Take Notepad as an example. Suppose I want to open a file on it, find
and replace a particular word. Now, I know how to do this manually but
when I have over thousands of file I need some kind of program to do
this for me. Do some specific programs like SCID in my case has some
feature (read bit about COM) pre-built to handle this?
Your situation sounds to be quite specific so I doubt whether you will be able to find a pre-existing program to do this for you. Meaning: you'll have to code it yourself.
In which programming language domain does this come into?
Well, this could probably be done in many, many different programming languages. A simple shell script would be able to achieve the Notepad example you gave.
Is using Linux help me more?
No, your goals seem to be pretty achievable by a simple shell script, whether you write it in a Windows, macOS or a Linux distro.
#SB87 gave you some useful hints, I'd like to expand his answers.
Sorry, I don't think you know what you're talking about. Reinforcement learning (better term than self-learning) and machine learning are not something suitable for a college project. It's at the PhD or research level, consider getting yourself into university before even thinking about anything like that.
UI automation is possible, but error prone and slow. If you want to do it, you'd write a console program. You mentioned something about user inputs, do you mean you want to apply machine learning on user mouse-keyboard inputs? It's not going to work. Machine learning for chess requires hundreds and thousands of training set.
I think you should downplay the project and focus on something you can achieve.

How to create a data-entry form using COBOL for Windows [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I am using VFP 9 in Windows 7 for my DBMS and want to do this in COBOL for windows.
For a start I want to create, for my Retail Pharmacy, a Medicines List Table with Medicine Type,Medicine Name,Unit Price and use it as a look-up table for Billing in my Retail Pharmacy.
Then I want to create a Data Entry Form to get general Data like Bill Number, Bill Date, Customer Name.
After that I want to present to the User scrollable Alphabetised Medicine List when called with the first letter of the medicine name by the user with provision to enter quantity required for each required medicine.
After this is over, the COBOL app should calculate Itemwise amount (Unit Rate in Look Up Table multiplied by Quantity entered by the USer and then calculate the Total Bill Amount
and print out a Sales Bill with suitable Header and Footer and also save / add append the Bill to a file in the program-designated folder in my hard disk.
I am now doing all this with VFP9 in my newer machines running Windows 7 32 & 64 bit and also with MS QBasic v 1.1 and Foxpro for Dos v 2.5 a in my older MS DOS PCs running MS DOS 6.22.
I don't have a direct answer to your question - its a bit too open ended for the SO forum. But
let me guess, FoxPro is essentially dead and you need to redevelop your application for a newer platform.
You are not the first person to face this problem.
Rather than redeveloping your application in something
like COBOL on a PC platform, a task that may be rather daunting, why not explore the possibility of
migrating to a differnt product. For example, I believe there are several tools available to help migrate FoxPro to
VB.Net. There is some cost involved here (VB.Net isn't free, nor are the conversion packages).
This approach is not without some problems (you might not get exactly the interface you are accustomed to and
the converted code might not be very well structured or maintainable), but it should be fairly quick and uncomplicated to do.
The down side is that you are simply moving from one vendor solution to another. Single vendor solutions, even
those from large corporations like MicroSoft, sometimes end up being discontinued before you would like.
Another approach might be to redevelop under an open source product. For example, PHP-MySQL-Apache using
the wamp server instal could be worth exploring.
This may appear to be overkill for a standalone application but there is plenty of free support for this type of setup.
I do not recommend that casual developers tinker with the inner workings of complex open source
software such as this - but the popularity and open source aspect ensure it will be operable for several more generations of
whatever operating system you are using.
An additional point is that once you have rebuilt your system under a client-server model it becomes somewhat more
scalable and easier to deploy over a network should you ever want to go that route.
Why not use COBOL? In actual fact there is nothing fundamentally wrong with this approach either. COBOL is very
well suited for developing the type of application you have described. However, COBOL does not provide standard
database or UI components (screen management is defined but often poorly supported). Database and UI tend to be vendor
specific add ons so you again end up tied to
a single vendor solution. COBOL tends to be more
popular in large mainframe shops so getting good support for COBOL and related tools is difficult outside of
that environmnent. Try finding a recent college or university graduate in computer science that has knowledge of
COBOL and you will see what I mean. If you want to continue with COBOL, have a look at Open COBOL
which is open source and has a reasonably large support community willing to help out small time developers.
My best advice to you is to take time to research and evaluate your conversion/migration strategy before committing to
any one of them. There are many factors at play here, some more obvious than others, but choices you make
right now will have long range consequnces on the success of your application.

Need more information on these mechanical aspects of programming

I recently noticed that in fuel stations when the petrol attendant gives out petrol through the pumps the computers inside the filling station already get to know the amount that has been filled in.
I would like to know:
What type of programming and any additional devices (if any) are used and if there is a special name given for this kind of programming and if it can be done through Visual Basic or I need to get another programming software to do it.
Also I think that to make such programs there will be a need to get data from a tangible source (such as the fuel pump and how much it has filled) (and even giving instructions to robotic arms and the like). So I would like to know if there is a converter of some sort in the middle to allow connection or must the program be made to suite the existing equipment.
In the case of the robotic arm what is needed, in terms of, programming languages that these commands can be done on or for the fuel pump "How the computer will read the information from the pumps"
I thought that most programs like point of sale programs and other accounting program take values from us and return us values, the result and the calculations seem completely virtual but that programming where we can make mechanical things such as robotic arms and fuel pumps work (physically) to our commands and/or return values based on what they just did is very alien to me.
If there is a relevant book you know or websites please inform me about it.
You can write such a program in Visual Basic (I'm embarrassed to admit that I have written code to control something similar to a robotic arm in Visual Basic).
Take the example of the gas pump. Somewhere in the pump is a digital flow meter with some kind of hardware interface. I did a google search ("flow meter USB") and found some that communicate with USB, but I imagine a decent amount are still available with RS-232 connectors (this was the common serial port on the back of computers before USB).
Most likely the vendor will provide some sort of API for accessing the information on the device. If you are lucky, it will be something that is easy to use in Visual Basic. If you are unlucky, it will be a C API, and you will have to write a small wrapper library to use unmanaged code that you can then use in Visual Basic.
In the example of the robot arm, you might have a USB interface, an RS-232 interface, or something stranger. I've had something built by a grad student that was controlled via a special TTL board in the computer (lots of individual wires were coming out of the back of the computer). The problem is no different, structurally. You write a small wrapper library that deals with the unmanaged code, then you use that wrapper library in Visual Basic.
If you are lucky, and there's always a dotNet (or COM+) API for the devices you are interested in working with, you could do quite a bit only knowing Visual Basic. If no such API is available, and you want to tackle the problem on your own, you'll probably have to learn a little bit of C and even assembly (The most recent book I own on the subject, "Embedded Systems Programming in C and Assembly," still has a 3.5" disk in the front cover. You'll probably want something a little more recent). A google search for "embedded systems visual basic" actually turned up some interesting references. Similarly, "visual basic robots" returned several interesting references.
Unfortunately, I don't know of any specific references I could recommend. Most embedded systems books that I've encountered were for C and/or assembly. Most of those assumed a Unix environment (QNX). You might still find code written in some flavor of Basic, but using Basic's peek and poke commands for memory access. This is only of limited value. Visual Basic doesn't have peek and poke, and you'd probably want an API that's a bit higher level than that anyway.

Protecting Ruby Code

I'm developing a commercial project on an ARM based embedded board with a custom Linux kernel on it, using Ruby. Target workspace of the project and the device is a closed-environment, no ethernet, inernet, I/O devices etc... I want to protect my code/program so that; it'll only work on the specific machines I let (so; people cant just copy and paste my code/program on to their embedded boards and run it w/o permission). This can probably done with the machine's MAC address tho; I don't have any experience on the subject. I guess, just a simple if(device.MACAddr == "XX:XX....XX") wouldn't be depandable (not to mention people can just easily delete the check from my code). I can't use some ruby obfuscators, which I found thru google, beacuse; the device doesnt run ruby-external-C-libraries or such stuff, only pure ruby code.
So; what are your suggestions, what type of approach should I take?
you can't really protect it, its hard enough protecting native code! and even then that basically fails if someone really wants to copy the software.
basically do very little if anything to secure it, its mostly wasted time and effort
This is isomorphic to the problem of DRM. You're giving a person both a lock and the key to that lock, and trying to stop that person from using the key in a way you don't like.
Therefore, I suggest using the same methods that other DRM users do: put your terms in the license, and sue them if they violate it. You need to use the law to enforce the other terms of the license, anyway.

How to make a shareware program with a free demo [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I have a game that I'd like to sell with the following system: give away a demo (say, with the first few levels) and sell the full version. I'd like to make the transition to the full version as seamless as possible for the user. I've never sold anything before online, so I'm not sure how that would work (even if there were no free demo).
This seems like a very common issue, so I'd imagine there's a standard solution. I'm writing in C++, targeting Windows, and my installer is generated by NSIS.
There are two options:
A separate demo and full version. Your ecommerce provider will send the full version to people who buy it.
A demo that is unlocked by a registration key or online activation process. Registration keys can be generated on the fly (or taken from a pre-generated list). Ecommerce providers can then send the keys to customers immediately after purchase.
Both approaches have their pros and cons.
Separate full version
Smaller demo file, saves bandwidth
Less technical support required for customers who buy full version (in my experience)
Two builds of the game, more testing
Harder to distribute updated versions to customers - need to keep a login for each customer or a secret URL that expires after a few days.
Unlockable demo
Contains all assets, may waste bandwidth
Easier to distribute cracked version (pirates can distribute a 10KB patch or reg key and link to your demo file, more bandwidth waste)
Single build, less testing
Easy to distribute updated versions (everybody can download the same public version)
Regarding a "general" solution, look around for commercial DRM wrappers such as this one. Some game portals/publishers also require that you use their own wrapper.
Don't ship your full product as a demo that can be activated. This way you don't eliminate piracy (which will still be something you will have to deal with) but at least you remove the possibility of someone just downloading the demo, cracking it, and spreading it around (or even just a cracked executable). They would at least have to buy the full version first.
As for checking a legit customer is using the software, you can indeed do some online authentication as Danny suggest but note that this will only stop people from using your online services and it often is just a matter of time before a qualified cracker/reverser makes sure that your product's offline features can be used without purchase.
By not shipping the full product immediately, it does make upgrading a little harder, but there are ways around this, ex: Updater that only works after online authentication.
If you develop it correctly you should be able to have a checking mechanism after the Xth level. This checking mechanism could basically hit a registry key. This registry key could have some encoded information which was generated by your program. The key could basically represent an MD5 hash (or SHA-1 or SHA-2 if you really concerned with high security) of the installed machine MAC Address, the first and last name, so and so forth. When someone purchases the game, you have them input that data in a form and then generate a code to send along to the user to unlock the game. You could even take that same algorithm and put it on your ASP.NET website and automate the key generation after a purchase has been made.
My 2 cents:
Dont spend too much time devising methods against piracy. Use simple serial generator mechanism to unlock the game which user can enter manually during the execution.
I would say have a single build which can switch to trial mode or full based on the serial key entered. This will reduce the overhead of maintaining two separate code.
It is a personal opinion, that people who really buy software at first place will buy your game no matter how many pirated versions are available. So make registeration purpose as simple as possible which will deter a normal user from cracking it and at the same time easy to use. Hackers will crack it no matter what protection you use it. Otherwise we wont see the pirated copies of microsoft/adobe products etc who spend so much on making their products piracy free. No matter what they charge, people do buy it. Its the quality of the product which will encourage your users to buy your product.
Also, try not to impose locks on your software like using MAC address etc for generating the serial numbers etc. Online activation may be a good idea but remember people are skeptical as to what information you try to transmit while activation. Also you might have to provide an alternate mechanism for offline activation if your customers dont have internet connection or work in separate LAN.
Once you see that you game is getting popular and you see more pirated copies with users, you may invest more time and money on developing anti-piracy techniques.

Resources