Week 2 - The end of the first Milestone!
A lot of things were made this week, and i'm super excited to share some details with you in this post!
What did you do this week?
This week we've worked on the migration of all of the old APIs to typescript, including the fixes and enhancements. Most of enhancements were focusing on making the code more contribution welcome and maintainable, by splitting the files to understandable structure, making the code more simple, cleaner and commented. Special thanks to all the contributors who contributed to the old APIs, I've just refactored a bit, most of the functionality code were written by them, thank you!.
What is coming up next?
For the next three weeks, I will be working on adding a MongoDB layer, where all icons will be stored there and we will then depend on that layer to retrieve the svg code of the icons them making the needed conversions or customizations. This addition will require some changes to the process of updating the icons, mainly we will depend on gitlab hooks to fetch the newly added icons, I will explain the process it in detail in the upcoming posts.
And two minutes ago before writing this post, I've created the last PR in this milestone, which's the configuration of Github CI to make a linting check, and testing the APIs for each push or pull request. I've learned a lot from playing with Github CI/CD docs, It took time, but I've enjoyed it.
Did you get stuck anywhere?
Not totally stuck, but I've spent a lot of time this week, thinking about the best decisions and the best approaches to approach some tasks, enjoyed and learned a lot.
View Blog Post
Weekly Blog (1)
Hey! First week is almost done! we've worked on a lot of great things. In this blog I will give you a brief about the 7 Pull requests I've made last week.
We started by initializing the project using typescript, and separating the server code from the application code. After that I've configured the main application configurations, routing settings, and error handlers.
We've focused on making everything simple, efficient, and clean. And this couldn't be achieved without separating everything and creating pure functions. Later, I've migrated some of the utilities that were used before, with some enhancements,.
The main change that I want to mention is, that we've changed all promise style functions to async and await functions for a better readability, and a consistent way, since it was used in some places in the code, the second most important change we've made is, converting some of the synchronous calls, to asynchronous calls and awaiting on them, this would help us not blocking the entire event-loop, by using async + await, only the context at which the await is called, will be blocked.
We’ve also introduced a logger functionality to log the errors in the console and in a log file, this week included a lot of design decisions, which was the hardest part.
Those are the main changes that we’ve introduced last week.
View Blog Post
Initial Week - Community Bounding
Hi, my name is Fawzi Abdulfattah and I will be working on EOS-ICONS APIs, the backend system that do all the magic behind https://eos-icons.com/
In the last couple of weeks (Community Bounding) We were discussing, planning and deciding what aspects should be improved during the
first milestone (first two weeks) and what technologies or services will be involved in other milestones, like what search engine should we use? what's the most appropriate translation
API? and so fourth, also I've helped in the migration of a Repository from gitlab to github.
In the next couple of weeks, we'll be working on refactoring the current codebase, migrating it to typescript, and adding some enhancements as well.
That's it for now!
Stay tuned, wish us luck.
View Blog Post