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.
- Email and password
- Username, firstname & lastname
- Avatar and bio
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