Very Well.

I’m pleased to report that I have just deployed my first MEAN application to a public website. I’ve still got several core features to implement, but I’m at a good point to assess the project state and set the next requirements.

According to my last post, my immediate goals were:

  • Move the local application data from couch to mongo.
  • Migrate that local mongo data to mongolab
  • Update the application to use the public mongolab DB
  • Deploy the express application to heroku

All of this has been completed. Moving to mongo feels like a good choice. It took a bit longer for me to get mongo set up than couch, but it’s been much easier to work with. I also started using mongoose, a library for working with mongo.

I set up an api in express to communicate with the DB. There wasn’t really a migration. I had so little data set up, that I used the API to seed what little data I needed in mongo.

In addition to the database move, I added several other features to the app.

I didn’t want to set anything public without authentication, so I worked through a few authentication lessons. I highly recommend the book I used, (MEAN Machine)[https://leanpub.com/mean-machine] by Chris Sevilleja and Holly Lloyd. The authentication service is lifed directly from their examples. It was easy to incorporate with my existing angular code.

I refactored the angular directives to all have isolate scope. This makes all the parts of the application much more independent. I still have one $scope dependency on the grid-square directive. I only need it for a watch function, so I should be able to refactor that out soon.

Speaking of scope, I also refactored out all my common $scope objects into factories. With no $scope or controllers in the application I should be in good shape for testing out a 2.0 migration. When that comes.

Since this blog seemed to work well as a check-in, I’ll continue. Here are the items I want to have accomplished before considering the app in beta:

  • Finish ripping out $scope
  • Input handling in new Pallete UI
  • Panel usability upgrade
  • Unit tests
  • Improve draw function performance
  • Wiki documentation
  • Pattern POST, PUT operations
  • Guest read-only logins
  • Image Overlay Mode

That’s a lot of features. But I can at least see a clear path to getting each one done. If I get lost or need some prioritization, I’ll clear out my AgileZen board and task the rest of these out.

When I get that far in another month or so, I’ll be able to call on Holtsford. He’ll be a great help as I try to figure out if I want to scale this for multiple users. I’ll certainly be moving beyond heroku at that point.