A couple of my friends and me are planning to make a time tracking web application. Between us we have experience in Java, C++, Django and Backbone.js, though we have never made any full fledged commercial application. This is our first real project and we wanted a bit more clarity before learning nodejs.
More about the app:
So we want the app to have high Performance. We also foresee making native mobile applications (ios & Android) in the future, which can work with the same API used for the web. JSON and javascript are very appealing due to this. We also don't want to re-write code on the client and server.
I have already checked out this answer: How to decide when to use NodeJS? but would really like some more clarity.
Is node.js a good fit for this scenario? What advantages would it have over, say Django+Backbone.js?
Implementing your application logic in the same tier which processes the HTTP requests is a rather dangerous approach, particularly when you're dealing with an event based server where behaviour of a single handler can affect the entire server - not to mention the complexities of asynchronous I/O (really this needs a relational DB backend - hence requiring spawned threads). You could simply use node.js as the webserver or webcache and seperate the application logic out into a FastCGI process.
There's no compelling reason from your description for using Node.js but a lot of complications.
You could use Node.JS to serve and handle the application logic, with a database behind. You may spawn several processes or deploy in several locations in the end, as long as there is a common database or session store.
Personally, I don't see that many complications. If it can get things done in an orderly fashion manner, Node.JS is ok.
You should actually use Node.JS + Backbone.js.
A little off topic: The way you are describing the application reminds me of TinyPM. You might want to check it out before hitting the road :)