Find Jobs
Hire Freelancers

Connect to tab.com.au and scrape racing data

$30-5000 USD

Annulé
Publié il y a environ 13 ans

$30-5000 USD

Payé lors de la livraison
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.
N° de projet : 3235033

Concernant le projet

4 propositions
Projet à distance
Actif à il y a 13 ans

Cherchez-vous à gagner de l'argent ?

Avantages de faire une offre sur Freelancer

Fixez votre budget et vos délais
Soyez payé pour votre travail
Surlignez votre proposition
Il est gratuit de s'inscrire et de faire des offres sur des travaux
4 freelances proposent en moyenne $191 USD pour ce travail
Avatar de l'utilisateur
See private message.
$85 USD en 3 jours
5,0 (8 commentaires)
3,2
3,2
Avatar de l'utilisateur
See private message.
$42,49 USD en 3 jours
5,0 (10 commentaires)
3,0
3,0
Avatar de l'utilisateur
See private message.
$212,50 USD en 3 jours
4,6 (4 commentaires)
2,7
2,7
Avatar de l'utilisateur
See private message.
$425 USD en 3 jours
5,0 (4 commentaires)
2,2
2,2

À propos du client

Drapeau de AUSTRALIA
Sydney, Australia
5,0
3
Membre depuis mars 17, 2011

Vérification du client

Merci ! Nous vous avons envoyé un lien par e-mail afin de réclamer votre crédit gratuit.
Une erreur a eu lieu lors de l'envoi de votre e-mail. Veuillez réessayer.
Utilisateurs enregistrés Total des travaux publiés
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Chargement de l'aperçu
Permission donnée pour la géolocalisation.
Votre session de connexion a expiré et vous avez été déconnecté. Veuillez vous connecter à nouveau.