blogit

A nice blogging app made on flask and react.

View on GitHub

Tasklist

Thank you for showing interest in contributing to blogit. Here are some planned tasks, that you may work upon, sorted according to their priority.

1. High priority issues

Naturally, these are the tasks that need to be resolved first. View them here.

2. Tests

As of now, the repository doesn’t have any tests, because of lack of time. This makes it harder to fix bugs and to introduce new features. However, now that we are done with a ‘It works’ version of the project, tests are the first problem we want to address.

3. Remove the use of caches in signups

Currently, when a new user signs up, he has to go through 3 steps.

The app uses in-memory cache to remember the info, that user entered in the previous step. And, the user actually gets saved to the databae in the last step. This goes perfectly until we decide to have multiple workers for our app. Let me explain how it is a major threat to our systems.

Case 1: When we have just one worker
In this case signup goes very well as all connections go to the same server instance and the server is able to remember the previous data from the user. But this has another problem: It can't scale up. As it has only one worker, simultaneous requests isn't possible. This isn't tolerable at all.
Case 2: Using multiple workers
This approach fixes the problem presented by single-worker-systems. Good. But this creates another problem for us. The different workers don't share the same memory blocks and thus they don't share caches. Consequently, if different requests of the same user go to different workers, it will fail because that instance won't identify the user.

Thus, this issue needs to be resolved soon.

4. Drop the file uploader

Currently, we use a seperate ts class for uploading class, which splits the file into 100 chunks and then uploads them. Because of reasons similar to hose described above, we need to drop this and rely on browser’s implementation.

5. Docs

As is said, a good software is one that comes with good documentation. So, we need to work on better documentation.

Warning: Draft page