I am looking for someone to rewrite an existing MS Access VBA relational database, problem solving application for consultants in any field. I am retired. I have chronic heart failure and emphysema and I am too tired to devote much time or energy to further development and marketing.
Prosolve is a goal-based relational database application for general planning, problem solving and decision making. It currently appears to be the only software of its kind in the world.
One of the key challenges is how best to market and monetize the application and the selected developer will be expected to have a strong input into this aspect of the project.
I want the application rewritten as a cross platform application that will run on Windows, Linux, IOS, and Android, using interchangeable client side SQLite backends (created from a template) for different clients and projects. The application will probably be browser based; but the best format is open for discussion.
I do NOT require help developing a website and cloud based app that uses a client/server database like MySQL, or SQL Server. Only a small portion of the data is suitable for long term retention. Most of the information collected is an often sensitive process that many users would be reluctant to store anywhere other than their own devices. For this and other reasons, the application must have the option to use a local database like SQLite on the client device.
The application uses proven military and business problem solving techniques to analyse and resolve impediments to goals or desired outcomes. It is useful in any field where complex planning, problem solving and decision making is necessary.
The application systematically takes the user through 5 main steps
- Define problem in terms of realistic, achievable, prioritized goals or desired outcomes.
- List and evaluate significant impediments to the desired outcomes.
- List and evaluate probable causes of the impediments for relevance to the outcomes.
- Develop, evaluate and choose between possible solutions to impediments or causes.
- Define and prioritize the actions and resources required to implement chosen solution(s).
The use of relational database tables enforces a strict discipline to the process, binding each step to the parent step. It allows easy negotiation, tracking and modification of each step in the process and easy collaboration by teams. It enables evaluation by numerical weighting or prioritization of each step and enables a permanent record of the planning, problem solving and decision making process for subsequent review and modification where required.
The ability to evaluate and solve complex problems is what distinguishes humanity from other animals. It allows us to develop and maintain a technologically advanced civilization; which in turn allows us to enjoy a relatively prosperous and comfortable life.
The ability to solve problems is the most important skill any person can learn for their survival and prosperity; and for the future of humanity. Without wide spread problem solving skills, civilization and quality of life quickly degenerate. The application should have international appeal. A very basic free version has been downloaded often from China and the USA.
Problem solving is one of the most important skills to teach children and adults; as important as maths or literary skills. Logical markets include upper primary and high schools, universities, TAFE and military colleges.
The need for problem solving skills is ubiquitous throughout all levels of society and at all times of life. There are many types of problems in every field of human endeavour. This application can help resolve them. The application should be useful to consultants in many fields.
Developing a cross platform application will require Visual Studio, .Net Core and C++ or C#. If a browser based format turns out to be the best option, HTML5, JavaScript, CSS and Bootstrap may be required for mobile devices.
To work on mobile devices without a database engine the database needs to be SQLite. The application is not data intensive. It only uses a related tables to enforce a disciplined methodology and a light weight SQL database is all that is required. However, it is good practice to commence a new set of tables (with the same structure) for every problem, so they need to be interchanged often.
In its current incarnation as an Access VBA database application, Prosolve consists of the following:
A compiled VBScript launch executable.
• This module briefly displays a splash screen
• Checks if registry entries exist for Prosolve
• Inserts default entries into the registry if current launch is the first use of Prosolve
• Ensures the application is installed in the correct folder
• Checks the correct subfolders exist and if not creates them
• Discovers whether MS Access or Access Runtime is installed
• Installs Access Runtime if necessary
• Examines whether drivers to access online MySQL User/Security DB are installed
• Installs MySQL drivers if necessary
• Examines the user’s operating system to see if it is 32 or 64 bit,
• Launches the appropriate 32 or 64 bit front end
A compiled VBScript Restart executable.
This module is called when updates have been downloaded, or there is another reason to restart the application, such as compacting the database, or changing the backend. It pauses for a few seconds to allow the lock file to close cleanly before replacing whatever module or database has been updated, and relaunching the front end.
MS Access Frontend
The front end has no tables of its own and is compiled in 32 bit and 64 bit versions. It comprises the following:
• 18 tables, all of which belong to 2 attached/linked databases
• 9 belong to the attached backend and 9 to a Settings database
• A cloud based user and security related database
• 12 queries/views
• 45 forms and sub forms, each with numerous private subs and functions including:
o On load and On current procedures
o Procedures for various buttons
o Managing authorised users
o Changing colour settings or background picture
o Searching the Internet from multiple search engines
o Checking installation
o Accessing Help
o Links to common problems
o Reporting modules
o Updating procedures
o Invoicing procedures
o Emailing backends for review by clients
o Emailing PDF reports and invoices to clients
• Local HTML help files for every form
• A global module with about 111 public subs and functions (several no longer used)
• 3 reports including 1 Project report and 1 for invoicing clients
• 1 macro for MS Access related security which I think I replaced with code
A Backend Template
The backend template contains 9 tables with predefined relationships. It is simply copied and renamed when a new backend is required. Tables are: Client details, Project details, Project Goals, Goal Impediments, Impediment Causes, Possible Solutions, Required Actions, Time Spent on Project and Database version number.
A Settings Template
The Settings database contains 9 hidden tables: Licensee details, Authorised MAC addresses, General Settings, Colour settings, Problem types, Search engines and 3 version number tables which should be in 1 table.
Registry Settings
The Windows registry will obviously be unable to be used in Linux, iOS and Android applications. It contains 30 settings, many of which are duplicated in version numbers, colour and general settings. Registry settings include things like last user, MAC address, MAC address of network manager, internal and external IP addresses, path to backend in use, installation date, license renewal date, exit states of various functions including time management for invoicing.
Cloud based MySQL Security database
The database resides on one of my Internet domains with a provider in the USA. It contains only 1 table and covers things like licensee details, license details, start and renewal dates, number of machines licensed, money paid, authorised MAC addresses, IP addresses, tamper warnings, individual hotfixes, country data, usage data, etc.
Additional Items
A copy of Access 2010 Runtime (32 bit)
32 bit and 64 bit drivers for MySQL 4.51
Various background pictures
Copies of critical files
Interested applicants will need to come to Lobethal to view the existing application and discuss methods of reimbursement. Preference will be given to developers willing to do the job for a share of ownership.
Thanks for the advice. That may well turn out to be the outcome; but I appear to have a suitably qualified local developer willing to do the job for 50% equity. Failing that, I have savings I'd rather keep for emergencies; but I might be willing to spend on a good proposal.