Dec. 11, 2018, 9:25 p.m.
Almost a week ago I wrote about not being able to start coding. Luckily those days are far gone. After that post, I have been more productive than ever. Possibly. Well, I've been productive.
I talked about developing a couple new features and by the time I'm writing this I'm almost done with those. One is ready (for now) and the other is ready-ish. The one that is ready was a feature to allow users to create PDF files from their planned day. The PDFs are generated completely on front-end from the HTML. Before you get too excited, no, I did not write it myself but used libraries for that. I found these awesome libraries called "jsPDF" and "jsPDF-autotable" which made creating PDFs a breeze. Sort of. Of course, there were a couple of hiccups during the development process but it went smoothly enough for me to call it a breeze. At first, I was planning to generate the PDFs in the backend but decided against it. I'll rather use the computing power the user has instead of my rented one. This way it won't affect other users and no need to transfer files over HTTP. So it's a win-win.
The other new feature that I am currently in the process of developing is called articles. It is meant for users to write articles related to food and fitness. I'm trying to build an active social community around Makro and for that, I need ways for users to post content and interact with each other.
I tackled a new concept, so to speak, with this new service and that was uploading / downloading images for those written images. So far I have managed to get the header image to be uploaded (and downloaded) but I want my users to be able to add pictures into the article itself. I think I can use the current rich text editor, "angular2-tinymce", which I have for that. But first I need to figure how to allow file uploads for only one editor and not for all the places where the editor is used. For storing the images to the database I am using "multer", "multer-gridfs-storage" and "gridfs-stream". After I figure out a way to allow image upload for one editor only, I need to create another new service which I am going to use for virus scanning. And for virus scanning, I was planning to use ClamAV.
After I am done with those, Makro would have a backend which consists of five microservices. And I am going to do at least two more after done with these. I want to separate QA to its own microservice and have one service which handles the likes.
Oh, and still no TypeScript in the backend. Maybe someday.