Today was an important milestone – I finally deployed the app to Heroku and today’s standup meeting was logged using the app. Emails went out to both developers and non-developers and it was beautiful to see the app working so smoothly.

But of course the deployment didn’t go without hiccups. I was trying to deploy it using gunicorn and by following the official flask documentation on deploying to gunicorn, my Procfile was supposed to be

web: gunicorn nillu:app

But even after many combinations I couldn’t get it to work as gunicorn kept complaining about not able to import nillu.app.

Finally I had to create a wsgi.py file which had these lines:

from nillu import app as application

if __name__ == '__main__':
    application.run()

And my Procfile had just

web: gunicorn wsgi

This is the combination that worked.

When I received the emails today morning, I noticed that the user names were sorted in a different order than the /entry/ page. I wanted to maintain an alphabetical order for the names and managed to do it in the templates by sending a user order variable.

For the emails I used the default random ordering of the dict which caused this inconsistency. I had to pass the same user order to the email template generation program and the bug was fixed.

But I did find a few more bugs like if I don’t fill in any entry for a user, it still creates three empty entry rows. This should not happen. And the email should also not include users with empty entries. I will try to fix it later maybe.

But tomorrow I do want to beautify the entries a little bit by allowing markdown text (a subset of markdown).