Find Jobs
Hire Freelancers

Connect to tab.com.au and scrape racing data

$30-5000 USD

キャンセル
投稿日: 約13年前

$30-5000 USD

完了時にお支払い
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.
プロジェクト ID: 3235033

プロジェクトについて

4個の提案
リモートプロジェクト
アクティブ 13年前

お金を稼ぎたいですか?

Freelancerで入札する利点

予算と期間を設定してください
仕事で報酬を得る
提案をご説明ください
登録して仕事に入札するのは無料です
この仕事に4人のフリーランサーが、平均$191 USDで入札しています
ユーザーアバター
See private message.
$85 USD 3日以内
5.0 (8 レビュー)
3.2
3.2
ユーザーアバター
See private message.
$42.49 USD 3日以内
5.0 (10 レビュー)
3.0
3.0
ユーザーアバター
See private message.
$212.50 USD 3日以内
4.6 (4 レビュー)
2.7
2.7
ユーザーアバター
See private message.
$425 USD 3日以内
5.0 (4 レビュー)
2.2
2.2

クライアントについて

AUSTRALIAのフラグ
Sydney, Australia
5.0
3
メンバー登録日:3月 17, 2011

クライアント確認

ありがとうございます!無料クレジットを受け取るリンクをメールしました。
メールを送信中に問題が発生しました。もう一度お試しください。
登録ユーザー 投稿された仕事の合計
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
プレビューを読み込み中
位置情報へのアクセスが許可されました。
あなたのログインセッションの有効期限がきれ、ログアウトされました。もう一度ログインしてください。