The Student Room Group

Scroll to see replies

If only iphones were around 3 years ago :frown:
Reply 21
now my friends can see me fail!
Reply 22
If you've got an iPhone, can't you just use the browser on there to use the Track site?
Reply 23
Hi,

I'm the developer for this application and I would like to clear up a few queries regarding this.

1.

The application is 59p to help make back the £59pa that apple charge for developers

2.

The application is only acts as an overlay over the UCAS system and only communicates with UCAS



The application was written using a piece of software called Titanium Mobile which allows you to use javascript to write iphone applications. To show you that the app only communicates with UCAS, I have attached the source code to the login page below.

Regards,

Toby Hughes

window.onload = function()
{
Titanium.App.Properties.setString('cPassword','');
// create controls
var textInstance = Titanium.UI.createTextField({value:Titanium.App.Properties.getString('cPersonalId'),width:
150,keyboardType:Titanium.UI.KEYBOARD_PHONE_PAD});
var textInstance2 = Titanium.UI.createTextField({value:Titanium.App.Properties.getString('cUsername'),width:
150});
var textInstance3 = Titanium.UI.createTextField({value:'',width:
150,passwordMask:true,returnKeyType:Titanium.UI.RETURNKEY_GO});
textInstance.addEventListener('change',function(e){
var tValue = e.value;
tValue = tValue.replace(' ','');
tValue = tValue.replace('-','');
Titanium.App.Properties.setString('cPersonalId',tValue);
});
textInstance2.addEventListener('change',function(e){
var tValue = e.value;
tValue = tValue.replace(' ','');
tValue = tValue.replace('-','');
Titanium.App.Properties.setString('cUsername',tValue);
});
textInstance3.addEventListener('change',function(e){
var tValue = e.value;
Titanium.App.Properties.setString('cPassword',tValue);
});
textInstance3.addEventListener('return',function(e){
validateTicket();
});

var b = Titanium.UI.createButton({
systemButton:Titanium.UI.iPhone.SystemButton.ADD
});
//Titanium.UI.currentWindow.setRightNavButton(b);

b.addEventListener('click',function(e)
{
validateTicket();
});

// create data array
var inputData = [
{title:'ID', input:textInstance},
{title:'Username', input:textInstance2},
{title:'Password', input:textInstance3}
];

// create grouped section
var inputSection = Titanium.UI.iPhone.createGroupedSection({
header:'UCAS Track Login',
footer:'Please do not enter dashes',
type:'input',
data:inputData
});

var buttonData = [
{title:'Login'}
];

var buttonSection = Titanium.UI.iPhone.createGroupedSection({footer:'', header:'', type:'button',data:buttonData});
buttonSection.addEventListener('click',function(e)
{
validateTicket();
});

// create grouped view and add section to view
groupedView = Titanium.UI.iPhone.createGroupedView();
groupedView.addSection(inputSection);
groupedView.addSection(buttonSection);

// add and show view
Titanium.UI.currentWindow.addView(groupedView);
Titanium.UI.currentWindow.showView(groupedView);

function validateTicket(){
var uPersonalId=Titanium.App.Properties.getString('cPersonalId');
var uUsername=Titanium.App.Properties.getString('cUsername');
var uPassword=Titanium.App.Properties.getString('cPassword');
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage("appNo="+uPersonalId+"&username="+uUsername+"&appPassword="+uPassword+"&action=login");
//a.show();

//Now get the events data from the page
var xhr = Titanium.Network.createHTTPClient();
xhr.setRequestHeader("Cookie","");
xhr.onload = function()
{
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage(xhr.getResponseHeader("Content-Location"));
//a.show();
Titanium.App.Properties.setString('cCookie',xhr.getResponseHeader("Set-Cookie"));
if (xhr.getResponseHeader("Content-Location")=="http://track.ucas.com:12508/ucastrackLogin.jsp")
{
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage('Invalid Login Details');
a.show();
}
else
{
var win = Titanium.UI.createWindow({url: 'track.html'});
win.open({animated:true});
Titanium.UI.currentWindow.close();
}
};
xhr.open("POST","https://track.ucas.com/ucastrack/login?ac=2427581&bc=1261433620877");
xhr.send("appNo="+uPersonalId+"&username="+uUsername+"&appPassword="+uPassword+"&action=login");

}


};
Reply 24
I forgot to mention the reason I actually wrote this app! Basically, I went through UCAS already and the 'track addiction' does not stop when everyone's got their offers. On results day it is possible to view your universities decisions (i.e. and if you've met there grades, or they let you in anyway) before you collect your results.

Furthermore, I gave apple my UCAS details when they approved the application and they check stuff to make sure that the application only communicates with UCAS as part of their application procedure to prevent malware reaching the iPhone.
Need blackberry app.
Reply 26
If only I paid for apps. :daydreaming:
binky12
Hi,

I'm the developer for this application and I would like to clear up a few queries regarding this.

1.

The application is 59p to help make back the £59pa that apple charge for developers

2.

The application is only acts as an overlay over the UCAS system and only communicates with UCAS



The application was written using a piece of software called Titanium Mobile which allows you to use javascript to write iphone applications. To show you that the app only communicates with UCAS, I have attached the source code to the login page below.

Regards,

Toby Hughes

window.onload = function()
{
Titanium.App.Properties.setString('cPassword','');
// create controls
var textInstance = Titanium.UI.createTextField({value:Titanium.App.Properties.getString('cPersonalId'),width:
150,keyboardType:Titanium.UI.KEYBOARD_PHONE_PAD});
var textInstance2 = Titanium.UI.createTextField({value:Titanium.App.Properties.getString('cUsername'),width:
150});
var textInstance3 = Titanium.UI.createTextField({value:'',width:
150,passwordMask:true,returnKeyType:Titanium.UI.RETURNKEY_GO});
textInstance.addEventListener('change',function(e){
var tValue = e.value;
tValue = tValue.replace(' ','');
tValue = tValue.replace('-','');
Titanium.App.Properties.setString('cPersonalId',tValue);
});
textInstance2.addEventListener('change',function(e){
var tValue = e.value;
tValue = tValue.replace(' ','');
tValue = tValue.replace('-','');
Titanium.App.Properties.setString('cUsername',tValue);
});
textInstance3.addEventListener('change',function(e){
var tValue = e.value;
Titanium.App.Properties.setString('cPassword',tValue);
});
textInstance3.addEventListener('return',function(e){
validateTicket();
});

var b = Titanium.UI.createButton({
systemButton:Titanium.UI.iPhone.SystemButton.ADD
});
//Titanium.UI.currentWindow.setRightNavButton(b);

b.addEventListener('click',function(e)
{
validateTicket();
});

// create data array
var inputData = [
{title:'ID', input:textInstance},
{title:'Username', input:textInstance2},
{title:'Password', input:textInstance3}
];

// create grouped section
var inputSection = Titanium.UI.iPhone.createGroupedSection({
header:'UCAS Track Login',
footer:'Please do not enter dashes',
type:'input',
data:inputData
});

var buttonData = [
{title:'Login'}
];

var buttonSection = Titanium.UI.iPhone.createGroupedSection({footer:'', header:'', type:'button',data:buttonData});
buttonSection.addEventListener('click',function(e)
{
validateTicket();
});

// create grouped view and add section to view
groupedView = Titanium.UI.iPhone.createGroupedView();
groupedView.addSection(inputSection);
groupedView.addSection(buttonSection);

// add and show view
Titanium.UI.currentWindow.addView(groupedView);
Titanium.UI.currentWindow.showView(groupedView);

function validateTicket(){
var uPersonalId=Titanium.App.Properties.getString('cPersonalId');
var uUsername=Titanium.App.Properties.getString('cUsername');
var uPassword=Titanium.App.Properties.getString('cPassword');
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage("appNo="+uPersonalId+"&username="+uUsername+"&appPassword="+uPassword+"&action=login");
//a.show();

//Now get the events data from the page
var xhr = Titanium.Network.createHTTPClient();
xhr.setRequestHeader("Cookie","");
xhr.onload = function()
{
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage(xhr.getResponseHeader("Content-Location"));
//a.show();
Titanium.App.Properties.setString('cCookie',xhr.getResponseHeader("Set-Cookie"));
if (xhr.getResponseHeader("Content-Location")=="http://track.ucas.com:12508/ucastrackLogin.jsp")
{
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage('Invalid Login Details');
a.show();
}
else
{
var win = Titanium.UI.createWindow({url: 'track.html'});
win.open({animated:true});
Titanium.UI.currentWindow.close();
}
};
xhr.open("POST","https://track.ucas.com/ucastrack/login?ac=2427581&bc=1261433620877");
xhr.send("appNo="+uPersonalId+"&username="+uUsername+"&appPassword="+uPassword+"&action=login");

}


};


(directed at you being the developer, not a person forwarding it on behalf)

Good to know. You must accept that some people will be reluctant to put their details on an 'unofficial app'. I am an iPhone developer myself and absolutely agree with you - you need to make back the money for the SDK and you cant please everyone.

I am sure this post of yours will calm some people down, but I am afraid many wont understand the code. Perhaps your best bet is to herald the sepulcher culture of apple with the security of its apps.

I congratulate you for this app and all the effort you put into it.
Thank god this wasn't available when I was applying.

Another point, 59p, you'll probably save that much or more by not turning your computer on and off if you check as often as I did.
Reply 29
Just got this app - and paid 59p. It is worth the money! It looks professional and is simple to use. A copycat free app probs wouldn't look as good or feel that safe. Even if I don't track my UCAS all the time, I can review my offers etc etc. So looks good to me. And yeah, Apple wouldn't have accepted it if it was dodgy. Such a good idea, wish I'd thought of it !!

PS. I was just reading people's comments about the money and its 59p. Thats not even £1!!! You can't get anything for 59p anymore... You guys are so stingy!!!
becbec :)
I've been so paranoid all night now. Especially when my friend said he wouldn't be surprised if someone logged on and withdrew my application.

Thinking I may ask UCAS to change my details on Monday :s-smilie:

What!? :eyeball:
Why would anybody log into your account and withdraw your offers :lolwut: I think you're more likely to be struck by lightning. Also if it did - by some miracle - happen, it wouldn't be anything that UCAS couldn't sort out if you rang them up soon afterwards.
Any more people got opinions on this? Getting iPhone tomorrow! :smile:
Reply 32
binky12
Hi,

I'm the developer for this application and I would like to clear up a few queries regarding this.

1.

The application is 59p to help make back the £59pa that apple charge for developers

2.

The application is only acts as an overlay over the UCAS system and only communicates with UCAS



The application was written using a piece of software called Titanium Mobile which allows you to use javascript to write iphone applications. To show you that the app only communicates with UCAS, I have attached the source code to the login page below.

Regards,

Toby Hughes

window.onload = function()
{
Titanium.App.Properties.setString('cPassword','');
// create controls
var textInstance = Titanium.UI.createTextField({value:Titanium.App.Properties.getString('cPersonalId'),width:
150,keyboardType:Titanium.UI.KEYBOARD_PHONE_PAD});
var textInstance2 = Titanium.UI.createTextField({value:Titanium.App.Properties.getString('cUsername'),width:
150});
var textInstance3 = Titanium.UI.createTextField({value:'',width:
150,passwordMask:true,returnKeyType:Titanium.UI.RETURNKEY_GO});
textInstance.addEventListener('change',function(e){
var tValue = e.value;
tValue = tValue.replace(' ','');
tValue = tValue.replace('-','');
Titanium.App.Properties.setString('cPersonalId',tValue);
});
textInstance2.addEventListener('change',function(e){
var tValue = e.value;
tValue = tValue.replace(' ','');
tValue = tValue.replace('-','');
Titanium.App.Properties.setString('cUsername',tValue);
});
textInstance3.addEventListener('change',function(e){
var tValue = e.value;
Titanium.App.Properties.setString('cPassword',tValue);
});
textInstance3.addEventListener('return',function(e){
validateTicket();
});

var b = Titanium.UI.createButton({
systemButton:Titanium.UI.iPhone.SystemButton.ADD
});
//Titanium.UI.currentWindow.setRightNavButton(b);

b.addEventListener('click',function(e)
{
validateTicket();
});

// create data array
var inputData = [
{title:'ID', input:textInstance},
{title:'Username', input:textInstance2},
{title:'Password', input:textInstance3}
];

// create grouped section
var inputSection = Titanium.UI.iPhone.createGroupedSection({
header:'UCAS Track Login',
footer:'Please do not enter dashes',
type:'input',
data:inputData
});

var buttonData = [
{title:'Login'}
];

var buttonSection = Titanium.UI.iPhone.createGroupedSection({footer:'', header:'', type:'button',data:buttonData});
buttonSection.addEventListener('click',function(e)
{
validateTicket();
});

// create grouped view and add section to view
groupedView = Titanium.UI.iPhone.createGroupedView();
groupedView.addSection(inputSection);
groupedView.addSection(buttonSection);

// add and show view
Titanium.UI.currentWindow.addView(groupedView);
Titanium.UI.currentWindow.showView(groupedView);

function validateTicket(){
var uPersonalId=Titanium.App.Properties.getString('cPersonalId');
var uUsername=Titanium.App.Properties.getString('cUsername');
var uPassword=Titanium.App.Properties.getString('cPassword');
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage("appNo="+uPersonalId+"&username="+uUsername+"&appPassword="+uPassword+"&action=login");
//a.show();

//Now get the events data from the page
var xhr = Titanium.Network.createHTTPClient();
xhr.setRequestHeader("Cookie","");
xhr.onload = function()
{
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage(xhr.getResponseHeader("Content-Location"));
//a.show();
Titanium.App.Properties.setString('cCookie',xhr.getResponseHeader("Set-Cookie"));
if (xhr.getResponseHeader("Content-Location")=="http://track.ucas.com:12508/ucastrackLogin.jsp")
{
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage('Invalid Login Details');
a.show();
}
else
{
var win = Titanium.UI.createWindow({url: 'track.html'});
win.open({animated:true});
Titanium.UI.currentWindow.close();
}
};
xhr.open("POST","https://track.ucas.com/ucastrack/login?ac=2427581&bc=1261433620877");
xhr.send("appNo="+uPersonalId+"&username="+uUsername+"&appPassword="+uPassword+"&action=login");

}


};


wow that's cool
do you want to teach me how to make iphone apps?
Reply 33
binky12
Hi,

I'm the developer for this application and I would like to clear up a few queries regarding this.

1.

The application is 59p to help make back the £59pa that apple charge for developers

2.

The application is only acts as an overlay over the UCAS system and only communicates with UCAS



The application was written using a piece of software called Titanium Mobile which allows you to use javascript to write iphone applications. To show you that the app only communicates with UCAS, I have attached the source code to the login page below.

Regards,

Toby Hughes

window.onload = function()
{
Titanium.App.Properties.setString('cPassword','');
// create controls
var textInstance = Titanium.UI.createTextField({value:Titanium.App.Properties.getString('cPersonalId'),width:
150,keyboardType:Titanium.UI.KEYBOARD_PHONE_PAD});
var textInstance2 = Titanium.UI.createTextField({value:Titanium.App.Properties.getString('cUsername'),width:
150});
var textInstance3 = Titanium.UI.createTextField({value:'',width:
150,passwordMask:true,returnKeyType:Titanium.UI.RETURNKEY_GO});
textInstance.addEventListener('change',function(e){
var tValue = e.value;
tValue = tValue.replace(' ','');
tValue = tValue.replace('-','');
Titanium.App.Properties.setString('cPersonalId',tValue);
});
textInstance2.addEventListener('change',function(e){
var tValue = e.value;
tValue = tValue.replace(' ','');
tValue = tValue.replace('-','');
Titanium.App.Properties.setString('cUsername',tValue);
});
textInstance3.addEventListener('change',function(e){
var tValue = e.value;
Titanium.App.Properties.setString('cPassword',tValue);
});
textInstance3.addEventListener('return',function(e){
validateTicket();
});

var b = Titanium.UI.createButton({
systemButton:Titanium.UI.iPhone.SystemButton.ADD
});
//Titanium.UI.currentWindow.setRightNavButton(b);

b.addEventListener('click',function(e)
{
validateTicket();
});

// create data array
var inputData = [
{title:'ID', input:textInstance},
{title:'Username', input:textInstance2},
{title:'Password', input:textInstance3}
];

// create grouped section
var inputSection = Titanium.UI.iPhone.createGroupedSection({
header:'UCAS Track Login',
footer:'Please do not enter dashes',
type:'input',
data:inputData
});

var buttonData = [
{title:'Login'}
];

var buttonSection = Titanium.UI.iPhone.createGroupedSection({footer:'', header:'', type:'button',data:buttonData});
buttonSection.addEventListener('click',function(e)
{
validateTicket();
});

// create grouped view and add section to view
groupedView = Titanium.UI.iPhone.createGroupedView();
groupedView.addSection(inputSection);
groupedView.addSection(buttonSection);

// add and show view
Titanium.UI.currentWindow.addView(groupedView);
Titanium.UI.currentWindow.showView(groupedView);

function validateTicket(){
var uPersonalId=Titanium.App.Properties.getString('cPersonalId');
var uUsername=Titanium.App.Properties.getString('cUsername');
var uPassword=Titanium.App.Properties.getString('cPassword');
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage("appNo="+uPersonalId+"&username="+uUsername+"&appPassword="+uPassword+"&action=login");
//a.show();

//Now get the events data from the page
var xhr = Titanium.Network.createHTTPClient();
xhr.setRequestHeader("Cookie","");
xhr.onload = function()
{
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage(xhr.getResponseHeader("Content-Location"));
//a.show();
Titanium.App.Properties.setString('cCookie',xhr.getResponseHeader("Set-Cookie"));
if (xhr.getResponseHeader("Content-Location")=="http://track.ucas.com:12508/ucastrackLogin.jsp")
{
var a = Titanium.UI.createAlertDialog();
a.setTitle('Login');
a.setButtonNames(['OK']);
a.setMessage('Invalid Login Details');
a.show();
}
else
{
var win = Titanium.UI.createWindow({url: 'track.html'});
win.open({animated:true});
Titanium.UI.currentWindow.close();
}
};
xhr.open("POST","https://track.ucas.com/ucastrack/login?ac=2427581&bc=1261433620877");
xhr.send("appNo="+uPersonalId+"&username="+uUsername+"&appPassword="+uPassword+"&action=login");

}


};

why does it not work anymore then? rip off
Reply 34
thecdon
why does it not work anymore then? rip off


Mine works fine!
Oh, this is brilliant. :laugh:
Guys just use the official UCAS app now.
Reply 37
you need to have updated to iOS4
Reply 38
thecdon
why does it not work anymore then? rip off


i guess it isn't working because UCAS are updating everyone's offers and track on the web is froze. It wasn't working before the scottish results either.
Reply 39
tarwe
i guess it isn't working because UCAS are updating everyone's offers and track on the web is froze. It wasn't working before the scottish results either.

nah this happened about 2 months ago to both me and my friend. The app wouldn't load, just crashed and then like the next day it was deleted from our iphones!

My iphones broken now anyways so im using a rubbish nokia! will just have to use the ucas track on a pc like normal people :biggrin:

Latest