iifawzi_'s Blog

Weekly Blog - The END!

iifawzi_
Published: 08/24/2021

Hi everyone! Time flew so fast.. we've reached the end...

What did you do this week?

I've worked on completing the missing parts, finishing the documentations, and writing the Work Conduct document.. We do really reached the end, couldn't think that I would write this post that fast. Thank you all for being part of this journey. You can find more details about the project @ GSOC-2021-Project-Report

That's it.. I'd love to say that I've passed the best 10 weeks in my life, being able to fix bugs, introduce new features and contribute daily to open source projects under GSoC, was a lifetime experience for me. Thank you all the mentors, python foundation, and program organizers for giving me such an opportunity. Thank you, couldn't be done without you.
View Blog Post

Week (10) - Weekly check-in

iifawzi_
Published: 08/17/2021

Hi everyone! Time flew so fast.. we've reached the end.
Today, I will share with you what I've been working on, on the last week.

What did you do this week?

This week I've worked on testing all the version 2 APIs, I've used Mocha and Chai for this.. and guess what! everything worked as expected and all the tests passed from the first time.. Yay! Then, I've worked on creating the docker image that should be responsible for building and run all the components we need, out of the box, for easier deployment and development process.


What is coming up next?

Unfortunately, we've reached the end.. there's no any next directly with GSoC! but I will always have an eye on the project, to keep fixing, adding, and contributing.

Did you get stuck anywhere?

Yes, I've faced an issue because we're currently depending on heroku to serve our backend applications, I needed to modify the docker image a little bit to be able to use heroku correctly, since heroku doesn't allow using other services, such as redis, databases and so on. I've gone over it by using heroku.yml file, a file similar to docker-compose, to have some special configuration specifically for heroku. That's it.. I'd love to say that I've passed the best 10 weeks in my life, being able to fix bugs, introduce new features and contributing daily to open source projects under GSoC was a lifetime experience for me. Thank you all the mentors, python foundation, and program organizers for giving me such an opportunity. Thank you, couldn't be done without you.
View Blog Post

Week 9 - Last but not least!

iifawzi_
Published: 08/10/2021

Hi, I hope that you're all doing great!
This week I've been working on adding the searching layer configurations, as I've mentioned before we decided to go with Algolia services, they have a great plans, super easy and efficient control panel to configure everything related to your index, using algolia necessitates adding some sort of synchronization to always keep our Algolia index updated, therefore I've created a method that will always be triggered when ever the main database got updated, to update the Algolia's index. 
2- We've also noticed the importance of adding a validation layer in front of our APIs to ensure that they are going to be used as expected, and to respond with errors as soon as possible, we've used JOI to achieve this and it worked like a charm, Anyway, it's only added to V2 APIs. We've also added an isAdmin middleware to check whether the request is authenticated or not, this will only be used in the suggestions management APIs.

What's next?

Days fly! the next week is the last week, I will work on adding the unit tests to ensure that everything is working as expected, and I will also work on configuring the docker image for easier deployment process. That's it :')

Thank you for reading!
View Blog Post

Week (8) - Weekly check-in

iifawzi_
Published: 08/02/2021

Hi everyone! Today, I will share some info about what I've been working on last week.

What did you do this week?

This week I've worked on introducing the suggestions functionalities, the idea is that we want to get our users involved in the icons improvements, therefore we've decided to introduce the suggestions APIs where the users can suggest tags or categories for any icon.


What is coming up next?

I will be working on finishing the searching layer, we will use Algolia for this, and then I will start working on the last milestone, it will focus on finalizing the work by finishing the documents, adding some unit tests to ensure that everything is working as expected, and creating a docker image for a solid deployment soltuion.

Did you get stuck anywhere?

No, it all went too smooth.
View Blog Post

Week (7) - Introducing the caching layer

iifawzi_
Published: 07/27/2021

Hi, I hope that you're all doing great!
This Week I've worked on introducing the caching layer, previously we were depending on the MongoDB collection to fetch the requested icons, and then perform the requested changes ( icon customizations ), we wanted to make this process faster, thus we introduced the Redis layer, where we cache all the icons in the memory. The redis layer got updated whenever any update occurred to the db, this way our caching layer will always be up to date, and I've decided to cache all the icons because we need to decrease the miss probability ( checking the redis layer and not finding the icon ), and since we're just caching the raw non-customized icons, we don't need to wait until a miss happen to cache the icon.

What's next?

Currently, i'm working on the suggestions APIs, we need to provide the ability of suggesting tags, I've encountered some issues regarding how will we be able to manage the votes, no accounts are involved in this process. We didn't decide how we will manage it yet, stay tuned for the next blog!
View Blog Post
DJDT

Versions

Time

Settings from gsoc.settings

Headers

Request

SQL queries from 1 connection

Static files (2312 found, 3 used)

Templates (28 rendered)

Cache calls from 1 backend

Signals

Log messages