Find Jobs
Hire Freelancers

Connect to tab.com.au and scrape racing data

$30-5000 USD

Cancelled
Posted almost 13 years ago

$30-5000 USD

Paid on delivery
We require Java software to connect to the TAB Live Odds Web Service API, to scan fixed odds horse racing markets according to the specifications below. Please note: If the TAB Live Odds Web Service (via xml) does not provide fixed odds markets, then create the program by scraping the website Note: Extensive sample code and documentation is available from TAB [login to view URL] We require 4 classes to be created (Horse, RaceMeeting, TABConnector and Engine). Each class will have various functions within it. ## Deliverables class Horse Functions getHorseName() - Return the horse name as stored by TAB getBackPrice() - Returns the back price isScratched() - Returns true if the horse is scratched, false otherwise class RaceMeeting Functions countHorse() - Returns the total number of horses in the race meeting including scratched horses getHorse(int whichHorse) - Returns a specific Horse. Valid input values are 0 ... countHorse() - 1. For example if there were 10 horses, valid inputs would be 0 to 9. Each number 0 to 9 must be guaranteed to return exactly one horse. getMeetingName() - Return the meeting name as stored by TAB getMeetingDate() - Return the meeting date in format DD/MM/YY getMeetingTime() - Return the meeting time in 24 hour format HH:MM isClosed() ??" If the close flag or in play flag is detected this will return true, false otherwise. class TABConnector The basic operation of the software called TABConnector should be as follows: This should run in its own thread. Configuration There must be a configuration file TAB.cfg. This configuration file is read through the constructor. The parameters within the configuration file are as follows: username=myusername password=mypassword minutesAhead=1440 eventTypeRefresh=30 logLevel={DEBUG, INFO, OFF} getAllPricesRate=1 The first two parameters are to store username and password. The third and fourth parameters are related to the scanMeetings() function (see below). logLevel specifies the level of logging detail. INFO should produce console output that contains Date (format DD/MM/YY), Time (24 hour format HH:MM), MeetingName, HorseName, back price. The logs will need to contain data from every race scanned and be stored in a csv format. However a new file will be created once the file size reaches 1MB. Example: 14/03/11, 15:20, Flem (AUS) 14th Mar - 15:20 R7 2000m Grp1, 3. Heart Of Dreams, 5.3 Functions scanMeetings() • Both win markets and place markets that have fixed odds should be scanned. All other markets should be ignored • Retrieve TAB racing ID’s in chronological order using minutesAhead to determine which races to scan. For example 1440 indicates that we should scan all markets that are commencing within the next 1440 minutes (which is 24 hours) • scanMeetings() should be called at intervals of eventTypeRefresh. For example 30 indicates that we should call scanMeetings() every 30 minutes. • Store racing ID’s in memory. getAllPrices() • getAllPrices() will scan the list of racing ID’s generated from scanMeetings() function. • For each meeting ID the following steps will be performed: o Generate RaceMeeting object with Date, Time, MeetingName o For each RaceMeeting generate a list of Horse objects • Scanning should be done according to getAllPricesRate parameter within the .cfg file. • All RaceMeeting objects should be stored in memory (not on disk or in a database) • If the isClosed() function returned ‘true’ no more prices should be polled and the racing ID should be deleted from memory and RaceMeeting object should be sent to deleteRaceMeeting() function in the Engine. • At the start of each cycle the software should read the [login to view URL] file that will be stored on the hard disk. • The [login to view URL] file will be a comma delimited file with the date, time and meeting name. Any race meeting on this should NOT be scanned. Example: 14/03/11, 15:20, Flem (AUS) • Compare RaceMeeting objects with prior RaceMeeting objects that are held in memory • If any Horse object changes it’s Back Price (getBackPrice()) then send the RaceMeeting object to updateRaceMeeting() function within Engine object getSinglePrice(Date, Time, MeetingName, HorseName) • Race meetings are uniquely identified by date, time and Meeting name • This should locate the meeting and horse and generate a new Horse object with fresh price data and then return the horse object. class Engine We require an implementation of Engine. Functions updateRaceMeeting(RaceMeeting) • When the getAllPrices() function detects a price change it calls the updateRaceMeeting() function and passes it a RaceMeeting object. deleteRaceMeeting(RaceMeeting) • Leave unimplemented stub Error Checking • Upon disconnection the software should automatically attempt to reconnect • The software must be free of memory leaks and should be able to run continuously for 72 hours with no noticeable degradation in performance Operating Systems • The code should be written in a platform independent manner. • It should run on Windows (XP through 7) and Linux (Centos 5) • For windows a batch file will need to be provided for starting the program (with brief install instructions) • For Linux, a shell script should be provided for running the program (with brief install instructions) • We will provide a linux server with command line access (not graphical interface) for you to fully test connectivity and functionality testing. For the job to be complete we need to see this running on the Linux server.
Project ID: 3235033

About the project

4 proposals
Remote project
Active 13 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
4 freelancers are bidding on average $191 USD for this job
User Avatar
See private message.
$85 USD in 3 days
5.0 (8 reviews)
3.2
3.2
User Avatar
See private message.
$42.49 USD in 3 days
5.0 (10 reviews)
3.0
3.0
User Avatar
See private message.
$212.50 USD in 3 days
4.6 (4 reviews)
2.7
2.7
User Avatar
See private message.
$425 USD in 3 days
5.0 (4 reviews)
2.2
2.2

About the client

Flag of AUSTRALIA
Sydney, Australia
5.0
3
Member since Mar 17, 2011

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.