This series of articles loosely documents design choices and implementation issues I met during the making of the tln website. I learnt a few lessons along my improvised 9-week schedule, and I thought I could share them with fellow first-timers. I guess some technical points might also be of interest to more experimented developers.
Interfacing Django with a MongoDB database
Then I installed django-mongoengine to interface between Django and MongoDB. It ran fine even though I was using Django v2.0. What didn't run fine because of this recent version was Haystack, which is used by most Django search engines, so I had to drop it. (Support got merged just a few weeks ago, so maybe I'll be able to add a search field to the Critique navigation bar now!)
Once django-mongoengine was installed, by the end of the fourth day I had written all Critique views and templates. Basically I'd completed serving the right HTML content. I took a minute to digest how crazy fast that went. Maybe it would have gone even faster if I'd known my way around class-based views. I used some of them later in development, but I'm not convinced it's worth taking much time to learn about Django class-based views unless you build websites for a living.
Finding free fonts
Before the end of the week, I could even find several hours to browse for fonts on DaFont and Font Squirrel. Most fonts available are not licensed for redistribution. It particular, this means they must not be served through a CSS
@font-face reference. I'm fine messing with the Google terms of service, but I won't disrespect artists rights. Eventually I was able to make my mind on three main fonts. I'd use Alegreya for personal texts, and AlegreyaSans for more formal purposes. Both fonts were made by Juan Pablo del Peral, who works with a nice studio. Then Abuget, by khurasan, would be used for navigation bars. I also retained Soljik Dambaek, by Yosep Lee, though I ended up only using it for the tln logo of the Critique navigation bar.
Backing up with GitHub
Finally, I set up a Git repository through GitHub, then pushed my Django project online. GitHub is a free and easy way to save personal work, as long as you're okay making it public. Actually, Git is arguably the most useful cross-language tool for programmers. It's well worth taking the time to browse a tutorial if you're not already familiar with its most common features. Once you've understood the system, you can always refer to search engines to find the command you need.