MEAN Stack Demo App

UPDATE: For information about the Angular 4 version of the timesheet demo app, check here.

I recently created a simple timesheet app using the MEAN stack (MongoDB, Express, AngularJS, and Node.js).  If you want to try it out, you can create a new account using the register form, or you can login to a pre-existing demo account using Username: demouser and Password: demo1234.

I wanted to get some experience with these technologies, none of which have I used before.  My goal was to create something more complex than hello world, but small enough that it wouldn’t take too much time to get something meaningful up and running, and this is what I came up with.  I also made the code available on GitHub in case you’re interested.

Most of my web development experience is with ASP.NET, but in recent years, I’ve found myself writing more and more code on the client-side using JavaScript and making AJAX calls to pull JSON from the server so that I can provide a more seamless user experience.  One strength of the MEAN stack is that you use JavaScript on both the client and server, so you don’t have to mentally “context-switch” between languages as you work between the two.

Another strength is being able to persist JSON objects directly to the database without having to use (or create) an Object-Relational Mapping translation layer.  For many web applications, storing data like this just makes a lot of sense.  I’ve always been a big fan of relational databases, and I don’t see myself abandoning them, but I will be taking a look at using NoSQL databases such as MongoDB in the future when I create apps that are document-centric.

1 Comment

  • Hey Brian,

    followed this example with interest. I downloaded it from github and built it locally. However, although the express server seems to run it is not really instantiated. The port is not occupied and the NG app cannot call the url. Something is off. Could you provide a hint, so that I can look futher into your ideas?

    Thanks,
    Mathias

1 Trackback

Leave a Reply

Your email address will not be published. Required fields are marked *