Development of a desktop application that tracks and manages various costs, and produces various reports, and data in various formats.
**Required from bidders
**You need to be proficent in screen design and getting a c++ application working in windows. Ideally you will have used the QT framework ([url removed, login to view]) in a cross platform environment, but this is not essential.
More detailed information is available. We will discuss with suitable sellers who give us demo applications they have developed, which we can download to see the quality of the screen design, program skills, etc.
This is a business application, and must be written in an common language, that can be supported and upgraded in the future, without requiring re-writes!
It's important for you to provide details of your past projects.
People who cannot provide examples will unfortunately not be considered.
It's expected that the successful seller will get more work adding functionality to this package in the future.
Read information from a csv file, and adjust pricing of related information based on user definable criteria, and then create a file containing changes suitable to uploading in a csv format.
The program will adjust bid prices based on the average position in order to try and maintain a given position.
For example if the user specified they wanted to maintain a position of 2 to 3, the program would do the following: -
1. If the average position (maintained over previous data) was 4 it would increase the price to move the ad up.
2. If the average position was 1, it would decrease the price to move the ad down.
Depending on how far away from the desired position range, the program will bid in higher or lower amounts (based on the average).
For example in the above situation, if the average position was 18, it would bid significantly more to try and move to that position faster than if it was in position 4 which is much closer to the desired range of 2-3.
All bid amounts are defined as percentages rather than individual prices.
The percentages to bid can be changed at a global level in the preferences screen.
The rules listed above for the percentages of bids to be used depending on the desired positions are defined globally and are automatically applied to new records that are imported into the system.
However the user has the ability to override these changes at various levels. This makes it possible to be using different formulas for different records.
For example the user may select a "slow and steady" approach with a particular record bidding up or down to a maximum amount of (say) 5% instead of 25%. In this situation if you wanted other records to not also be changed to this approach, you would just select the record you want to do the "slow and steady" approach on, and save just that.
Selections of records, sub records, and sub sub records.
If a "record" is selected, all sub records and sub sub records will be selected and included.
If a "sub record" is selected, all sub sub records related to the sub record are selected
If a single or group of sub sub records, only those sub sub records are used.
This makes is easy to make record, or sub record changes easily, whilst still giving the flexibility to be making changes at sub sub record level.
There are other rules that can be defined to perform certain actions.
1. A record can be automatically flagged as paused when it reaches a user definable amount, or number of actions.
2.A sub record can be automatically paused (and all related sub sub records) when it reaches a user definable amount, or number of actions.
3. A sub sub record or group of sub sub records can be automatically paused when it reaches a user definable amount, or number of actions.
4.A sub sub record can be flagged to show up if a particular event happens.
The above 3 evens can be tied to the conversions as follows: -
[url removed, login to view] if no conversions
[url removed, login to view] if cost exceeds conversion figures
[url removed, login to view] if a percentage of the all sub sub records, sub record, or record is reached.
For example a record could be automatically paused if the total cost of the record exceeds the total income (by a given percentage).
A record could be paused if it reaches a preset amount of spending or clicks without a sale.
A sub sub record could be paused if it reaches a preset amount of spend or clicks without a conversion.
A sub sub record could be paused if the price reaches a preset figure.
A sub sub record can be setup to show up in the "Daily to do" list if it's status changes. For example you may want to track converting sub sub records that get paused for any reason. In this situation once it is highlighted a simple option to re-start the sub sub record will be available.
Once a record, sub record (and all sub sub records in it) or sub sub record is paused, it appears on screen in the "action items" screen.
They can all be re-started if selected by the user; in this case a new processing rule will need to be defined first, to prevent what caused the previous item to be paused, to be paused again.
Option to "apply" a particular rule to other sub sub records ??" e.g. select all converting sub sub records, apply a rule to them to get flagged if a particular event happens e.g. if they get paused.
If an imported record, sub record, or sub sub record is paused, it is never adjusted by the program.
Last time run ??" Check last import and warn if it is too soon to be re-running bid processing again as likely ad positions are still based on old data. But give option to proceed if necessary.
Because costs and conversions are being imported a Profit and Loss report will be available for Record, Sub Record, or individual sub sub records. This will be a report or on screen.
Daily process report will be available, showing proposed changes (new bids, sub sub records paused, sub sub records started, etc).
List of converting sub sub records paused.
Report showing a record that had dropped below a percentage of actions in a timeframe compared to historically.
A list of sub sub records disabled since the last run (useful to see what has happened since the last time it was run).
**Data Import and Export back to CSV
Data is imported using a defined csv. This should be an option for the user to select the file, etc and check for formatting errors, problems with importing, duplicate records, previously imported data etc.
Needs to have a create new record as well as merge of data.
The system reads the file into memory and produces the various reports, and the new bids for the records.
The user should be able to select only those records they want to include in the bidding.
A file in memory is created and copied to the clipboard, suitable for pasting into another application in a specific format.
The date and time of the last import and export is always saved and available for searching.