Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a D&D gamer and a developer that has mostly worked with ASP.NET applications professionally. I have written some chat bots in Node.js and I have only played a little with PHP but wrote nothing serious.

I have had inspiration to create a site that allows a person to keep track of characters (aka the character sheet). I am thinking of using this as a learning opportunity to learn noSQL and to write a full javascript front-end.

I want this application to save the value as I change it. So if I edit the armor class, it is saved immediately instead of waiting until I hit the submit button. I think that will make it easier to use while gaming and not losing anything because I forgot to save the change. I have never done anything like this. How do you implement this style of application? Is there a tutorial or howto to get me on the right path? While I would really like to use ASP.NET but I don't have a Windows server to publish on (and I really can't afford to pay for a service). What language that runs on Linux would work well for this type of application?

Note: I feel noSQL would work in this case because of the sheer number of tables required to create something like this in SQL.

share|improve this question

closed as too broad by gnat, MichaelT, Bart van Ingen Schenau, Kilian Foth, GlenH7 Aug 18 at 23:00

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Why reject good old reliable relational-table databases for a NoSQL solution? Because there might be many tables? How many tables are you thinking? –  FrustratedWithFormsDesigner Nov 1 '12 at 17:04
    
About 25 to start with and probably will grow as I add additional features. I know there isn't any database limitation. Really, I want to use NoSQL so I can learn what it can do. –  Mike Wills Nov 1 '12 at 18:22
    
Only 25? If you think that's a lot, you ain't seen nothin'! I'm actually surprised it would be that many but I haven't been into stuff like D&D for ages... If you want to learn NoSQL technologies, does your problem really need a NoSQL solution? Start by reading: en.wikipedia.org/wiki/NoSQL And determine if the data your modelling will fit better in a NoSQL system or a more "traditional" relational system. –  FrustratedWithFormsDesigner Nov 1 '12 at 20:46

2 Answers 2

I don't know if it's considered production ready yet, but Meteor is a pure Javascript client-side framework using MongoDB for its database. It automatically handles things like live page updates and sending data changes back to the server.

And to make things even better, you can deploy your app for free as a subdomain (i.e. charsheet.meteor.com)

share|improve this answer
    
That sounds interesting. I'll take a look into it. The main user will be me and a few of the group may use it as well. –  Mike Wills Nov 1 '12 at 15:11

You should be able to use your language of choice for the backend. Properly written, it will not matter from the client's perspective which one you are using--if you like node.js or PHP, go with one of them. I would probably use knockoutJS, which implements the MVVM pattern in JavaScript along with jQuery. KnockoutJS's nice two-way flow of data tends to make live updates nice and easy when combined with using jQuery for the AJAX calls back to the server.

I do not know of a one-stop tutorial that would really go end-to-end on how to build this and I'm not sure it would be very good if it did. The key concepts you have to understand are:

  • Back-end coding. You sound like you have a pretty good grasp of what you want to do here.
  • Basic HTML & Styling
  • Basic DOM manipulation with JavaScript.
share|improve this answer
    
It's more like what do I send to the server when I update a field? Does the entire form get sent, just the field? –  Mike Wills Nov 1 '12 at 15:34
2  
@MikeWills That's what you'd use AJAX for. You can send back small bits of information using an XMLHttpRequest object. As Michael mentions jQuery simplifies that process. –  axblount Nov 1 '12 at 15:43
1  
I would think the answer is every object that is part of your model that is modified by the contents of the form. If the form only changes an armor object, then I would ship the entire armor object back up to the server for updating. If it could modify the armor object and some properties of the user, I would send them both up. Too much cherry picking is just going to be a waste of development time. –  Michael Nov 1 '12 at 15:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.