This Week in Tometo (#04)

Thu Apr 9 2020 Written by  aun

I hope none of you are losing track of time like me, because I completely forgot that it's more than about time for another one of these!

The biggest thing is that rewriting the frontend (what I wrote about last time) is finally done and merged (via D15)! This took a bit longer than expected, mainly because I needed to get some logistical things done in real life, which delayed working on this. But now we're on something that will almost certainly pay big dividends in the future! Honestly, it kind of almost has, since it feels like the frontend codebase has shrunk by maybe 30%.

What also happened is that we redesigned Tometo, the web app to look more like Tometo, the website (https://tometo.org). I'm pretty proud of our website design, so I worked on updating the web app to look like it too. Here's some screenshots:

this still needs a better distinction between comments and non-comments as you can very obviously see

As you may be able to divine from these screenshots, the frontend work for our question and answer system is complete! This definitely took much longer than I expected, not for technical reasons, but simply because sitting at home pretty much 100% of the time requires you to readjust your life a little bit in order to figure out how to regain your productivity.

In fact, shortly before I've written this, I've merged my work into our master branch, so it's now officially in existence. Hurrah!

With this, there's now only one piece left in the Q/A story, which is to figure out a way to create inboxes at scale. To elaborate a bit, internally we treat the thing that pops up in your question inbox an "inbox" because it's an intermediary state between a question and an answer (that doesn't exist yet). The point of an inbox is the notify the user that there is a question that they can create an answer to. A user can directly create an answer, but they can't create an inbox, because an inbox is also used for access control over which users can answer which questions. If you don't have an inbox for a question, you can't answer that question.

Inboxes should be created by the system whenever a question is created. However, this presents a problem: Currently, every user gets an inbox if a question is created. That means that potentially, there would be a lot of inboxes that need to be created. The goal is to find out a way to do just that without throttling the backend too much. There exist applications or libraries that provide functionality called job queues, which are likely what we'll end up looking into.

I don't think this should take too long, so we'll likely still hit the April 2020 estimate for the Q/A stuff, which is good! That means that we can respect deadlines!

For now, though, that's it. I hope you're all safe in isolation and continue to stay safe!

© 2019-2020 The Tometo Core team. Source