Author Archives: afarouk1

Sprint Retrospective Blog #3

Hi everyone, my name is Abdullah Farouk, for those who don’t know me by now, and this is going to be my first sprint retrospective of the semester. First, I will start out by saying, considering this whole thing is brand new to us, we did a great job working with this new style and adapted quickly to all the changes. Don’t get me wrong, there is still a lot of room for improvement from everyone in the team, but we successfully passed through this semester. This sprint consisted of us getting more familiar with libre food pantry more and to see how this scrum framework actually go and went more in depth into the actual system. The first thing we did in the beginning of the semester was weighing the different issues and breaking some epics into smaller issues and assigning it to our team. We then organized the issues on which one we wanted to do first and so on. I worked on most of the issues during class time, which worked out nicely because I had my team member there to help me with things just in case, I got stuck, which I did sometimes. I liked meeting in person instead of virtual meetings, as I think we do more work when we see each other instead of behind a computer screen.

One thing that I would say the we massively on was how we weighed the issues in the beginning. Compared to the first sprint, Some of the issues took less than what we had anticipated, and some took way longer, but this sprint we got it spot on and managed to finish all the issues on the board just in time. Another thing that we improved on was communicating outside of class time. I started privately messaging class mates for updates if they haven’t said anything in days. One thing we still didn’t do well was Some of the issues we had made, we didn’t add a description to it, so it was a little harder for me to figure out what they want me to do just from the title, so I had to ask classmate to double check.

Other than that one issues, I think me, and the team did a great job going through these issues and completing them on a timely basis. I worked on multiple issues for this sprint that I will list at the ends, but mostly I was trying to clean up code and made sure anything that I had left unfinished, was either finished or deleted so the next class is not having a headache trying to figure out why it’s there. I also checked a couple of my classmate’s issues that needed to be reviewed in order to merge to main. I also worked on. I also learned a lot about nodemon function and have a basic understanding of how it works and how to properly integrate it.

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem/checkinventoryfrontend/-/issues/29

  • Update CheckInventoryFrontend

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/reportingsystem/reportingapi/-/issues/25

  • Verifying that ReportingAPI has correct extensions and linters

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem/checkinventoryfrontend/-/issues/27

  • Think and write down possible ways to further enhance the CheckInventoryFrontend

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem/checkinventoryfrontend/-/issues/26

  • Examine GuestInfoFrontend with its wireframe to see if there is any helpful code that can be shared

From the blog CS@Worcester – Farouk's blog by afarouk1 and used with permission of the author. All other rights reserved by the author.

Sprint Retrospective Blog #1

Hello everyone, I’m Abdullah Farouk, for those who may not be familiar with me yet, and I’m here to document my second sprint retrospective blog for this semester. Let me begin by saying how impressed I am with our collective efforts in adapting to these issues; we’ve managed to go  through various changes very nicely. While there’s certainly room for improvement across the board, I want to say we have successfully navigated through this long sprint. This sprint went deeper into our project which is the libre food pantry. The first thing we did in the beginning of the sprint was weighing the different issues and breaking some epics into smaller issues and assigning it to our team, just like we did in the last sprint.  Then, we prioritized these tasks and started working on them. Personally, I found class time to be particularly productive, allowing me to get most of the issues done, with the support of my teammates. Obviously, there were moments when there were challenges, but having my teammates by my side proved to be helpful. Additionally, I want to say I prefer in-person meetings over virtual ones; the presence of one another helps me be  more productive, as opposed to interacting only through computer screens. I would definitely say that this sprint went better than sprint-1, everyone was more involved because we knew what we had to do in order to finish the semester. Our work was more evenly spread and we did not have any major hiccups or challenges that we couldn’t figure out as a group.

I feel like we fixed our issue of not knowing how to weigh the issues properly, compared to the first sprint. I downloaded discord on my phone so I was responding more to my classmates outside of class time, which is a BIG improvement from last semester. One thing we still need to put some more work and effort into is adding a description to some of the issues that we created. It was still a little difficult for me to figure out what they wanted me to do just from the title, so I had to ask a classmate to double check. I hate asking people for help on things that should be more clear, so that’s one thing we need to be better at in the next sprint.

Other than those minor issues, I think me, and the team did a great job going through these issues and completing them on a timely basis. To improve as an individual, work on these issues gradually. I took spring break for granted, when I should have finished at least the issue that I was working on so I don’t hold my team back. To improve as a team, I think we should start adding a description of the issue under the title just so we don’t get confused and be more organized I would say.

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/reportingsystem/reportingapi/-/issues/25

  • Verifying that ReportingAPI has correct extensions and linters

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/reportingsystem/reportingbackend/-/issues/68

  • Verifying that ReportingBackend has correct extensions, linters, and pipeline stages

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem/checkinventoryfrontend/-/issues/26

  • Examine GuestInfoFrontend with its wireframe to see if there is any helpful code that can be shared

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/guestinfosystem/guestinfobackend/-/issues/122

  • Research functionality of “nodemon” and how to properly integrate it

From the blog CS@Worcester – Farouk's blog by afarouk1 and used with permission of the author. All other rights reserved by the author.

Week 7 blog

HI everyone, welcome back to my blog. In this post, I will be talking about two patterns from the apprenticeship patterns book that was provided to us in the beginning of the semester. We will be going to go more in depth about how you should reflect as you work and how to record as you work, which I think goes hand in hand in my opinion. First, let’s talk about recording what you learn. There is this saying that my dad always used to tell me was that those who don’t learn from their mistakes are the ones doomed to repeat it. There are a lot of things that you can do to help you with that. For example, you can start recording your journey of what worked and what doesn’t in a sort of blog or personal journal. I know some people who write those things down and never go back and read them ever, what’s the point? Don’t just write it down, try to think about it and review it later, just to freshen up. You never know, you might discover something new or old that will help you and will help you avoid making the same mistakes again. I personally do not write anything down and I have a terrible memory, so I should probably start writing things down, and it will help me get better by giving myself something to look forward to and learn from.

The second pattern I want to go over is the ability to reflect as you work. Ask yourself questions, like how did I get here or how can I improve? It doesn’t have to be questions about yourself, you can say how can we improve as a team? This will make you observe and reflect on things about yourself and the environment around you. I believe that this goes hand in hand with the first pattern because you can observe yourself and ask questions regularly and then write the conclusion down of what you have learned from this experience. Personally, I will start my own daily private journal so I can be constructive with myself and honest to try and improve my everyday life.

From the blog CS@Worcester – Farouk's blog by afarouk1 and used with permission of the author. All other rights reserved by the author.

Sprint Retrospective Blog #1

Hi everyone, my name is Abdullah Farouk, for those who didn’t know, and this is going to be my first sprint retrospective of the semester. First, I will start out by saying, considering this whole thing is brand new to us, we did a great job working with this new style and adapted quickly to all the changes. Don’t get me wrong, there is still a lot of room for improvement from everyone in the team, but we successfully passed through the first sprint. This sprint consisted of us getting familiar with libre food pantry more and to see how this scrum framework actually go. The first thing we did in the beginning of the semester was weighing the different issues and breaking some epics into smaller issues and assigning it to our team. We then organized the issues on which one we wanted to do first and so on. I worked on most of the issues during class time, which worked out nicely because I had my teammates there to help me with things just in case, I got stuck, which I did sometimes. I liked meeting in person instead of virtual meetings, as I think we do more work when we see each other instead of behind a computer screen.

One thing that I would say didn’t work out well was how we weighed the issues in the beginning. Some of the issues took less than what we had anticipated, and some took way longer, to the point that we finished only half of the last issue left for the sprint and therefor had to leave the issue to next sprint. Another thing that we were struggling with was communicating outside of class time. I take some of the blame myself as I do not have discord installed on my phone and therefore, I only check it at night time or when I get home from work. Some of the issues we had made, we didn’t add a description to it, so it was a little harder for me to figure out what they want me to do just from the title, so I had to ask classmate to double check.

Other than those minor issues, I think me, and the team did a great job going through these issues and completing them on a timely basis. To improve as an individual, I will try to check discord more often to communicate better with my team. To improve as a team, I think we should start adding a description of the issue under the title just so we don’t get confused and be more organized I would say.

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/reportingsystem/generatewcfbreportfrontend/-/issues/33

  • Moved “commands” to “bin” and added a cspell folder to make sure the spelling are right. Merged and pushed the issue.

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/reportingsystem/generatewcfbreportfrontend/-/issues/32

  • I sat up to work with VS code in Gitpod rather than devcontainer which was a little bit tricky because I didn’t know what gitpod was until that moment.

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem/checkinventoryfrontend/-/issues/27

  • Me and one other classmate looked at the check inventory frontend and examined the code to see what it was missing and what it could get better at.

From the blog CS@Worcester – Farouk's blog by afarouk1 and used with permission of the author. All other rights reserved by the author.

week 5 blog

Individual apprenticeship pattern blog post- Use your title.

Hi all and welcome to my blog where today I will be talking about the pattern “Use your title.” This pattern caught my attention for several reasons that I will go through in this blog post in detail. First, let’s start by explaining the pattern itself and give a little context of where the title comes from. Let’s say you work at a job and they give you a certain title, like “assistant pharmacist”. Some time later they will want to promote you. The title of your position will change but you are still going to get paid the same amount. For example, I was known as “CAD assistant designer” for a little bit in the beginning of my job. I worked hard for like 3 years, then I got “promoted” to “CAD designer” which means I am no longer an assistant designer. My responsibilities changed with it. The pay might be the same but others in the office, or even outside the office, will respect you more because of that title. My responsibilities are much different now.

If the Job title doesn’t match the description of what you see yourself doing, then there are things that you can do to change that. It stated the job description is a distraction and should be kept on the outskirts of your consciousness, but I don’t think I agree with that. For me, a job title is something that you should be proud of. If I am not proud of my job title, that just gives me more fire to try and work harder to get the job title I deserve. To solve this problem, you should write down a description of your job title and make sure it fits the work you do in the office and try to give details as if a stranger is reading your job description. Sometimes your job title does reflect the work you do, you could be indicated into a position of authority on your team but it doesn’t state that in the job description which is fine as long as everyone respects you and sees the work you are putting in.

From the blog CS@Worcester – Farouk's blog by afarouk1 and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns Chapter 1 and Chapter 2-6 Introductions

Hi, my name is Abdullah Farouk and this will be my first blog of the semester and it is based on the readings from chapter 1 and the introductions of chapters two through six.

I did not know what apprenticeship actually means until after reading these chapters. From what I understand, It is basically learning from more “experienced” coders on how to be a better developer. Dave’s story was pretty cool and awesome to read as it gives me more motivation and I can see how good it is to get some help sometimes. From the three stages he provided for us in a developer’s career, I think most people are stuck between an apprentice and a journeyman with very few people in the masters category. An apprentice is someone who still has a lot to learn and wants to improve their way of doing things. I believe I am at this level right now because I still have some areas in my field that I need to upgrade or work on with my team or the professor. This gave me extra motivation because I want to be in the journeyman stage, at the very least by the end of this semester. Our professor would be in the “masters” category because he is very advanced in his area, performs the roles of a journeyman and is focused on moving the industry forward by teaching us and advancing the Worcester state pantry website. I do agree with these roles but I do think that there should be another category because there is a lot of difference between a journeyman and a master and that gap should be filled and made its own category. I like the idea of always wanting to improve and adapting based on the feedback people give you. The author talked about “a belief that it is better to share what we know than to create scarcity by hoarding it.” I found this quote very interesting and I 100% agree with him but I feel like this only is true in the computer world since people go off each other’s ideas and make changes to improve it. After reading the introduction for chapters two through six, I think I have found what my next blog is going to be about so it is giving me something to look toward and forward too. I will see you on the next blog, hopefully. 

Website: https://www.oreilly.com/library/view/apprenticeship-patterns/9780596806842/ch01.html?_gl=1*2xjvhe*_ga*MjYwNDQ1ODc5LjE3MDY1NTY4MTg.*_ga_092EL089CH*MTcwNjU1NjgxNy4xLjAuMTcwNjU1NjgyMy41NC4wLjA.#introduction

From the blog CS@Worcester – Farouk's blog by afarouk1 and used with permission of the author. All other rights reserved by the author.

BLOG #3

Hello everyone, my name is Abdullah Farouk, and this is my third blog so far this semester (hoping I can get to 6 before the semester ends). I am going to be talking about comments in this blog because I saw this interesting article about it, and I just wanted to learn more and be better educated on the topic. When I started out with coding, I always ignored typing comments in my code because I didn’t really get the point of it other than wasting my time. But as things got more advanced, and I kept getting errors in my code and I knew what the error was, but I just didn’t know where the methods were in my code and what their function was. That’s when I started thinking about comments, I told myself comments would been helpful here instead of reading every line of the method to see what it does. In the article that I tagged down below, the author explains the importance of software technical documentation and how it should be used, with some examples to show you.

I have learned a lot about software technical documentation from this article including what are some examples of unnecessary comments. You don’t need to write an English translation of your software code; you just need a high-level overview of your method or an explanation to a complex logic. Back when I started with coding, I used to comment out some of my code that I didn’t need anymore, and I just kept it there, but I learned quickly that it wasn’t good because it just makes my code look messy. Don’t put comments like “fix this bug” but instead put something more useful like what needs to be fixed. I also learned that there is a lot of redundant and excessive comments. For example, you don’t need to write a comment explaining what i++ does because that is unnecessary as the code is self-explanatory.  Add comments that add value to your code, not make it useless and just clutter the code.

Some people say that a good code should not need comments to explain it, but I just disagree because I like reading information about the method before I start reading each line of it. If you don’t like to put comments on your code, then at least make a schema for your code so others can understand the relationship between codes better. The author shows plenty of example diagrams that show you what a code schema looks like.

Reference article : https://medium.com/@VincentOliveira/how-to-write-good-software-technical-documentation-41880a0e7814

From the blog CS@Worcester – Farouk's blog by afarouk1 and used with permission of the author. All other rights reserved by the author.

BLOG #2

hey everyone,

My name is Abdullah Farouk, as I stated before, and this is going to be my second blog for this semester. We have been using this website called Gitlab and I remember last year using Github, So I wanted to do my own research to see what these sites are about and why the professors are using it. I know a little bit, the basics, of what the sites do and how they function, but this will get me more in depth information on the sites. Both of these sites have Git in their name so let’s start by explaining that. Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.  version control means that it has a “history” tap where it can track your changes and even has the ability to go back to those versions. This is helpful to everyone but especially to coders because you can always go back to the version that works if you are stuck. For example, my code was working normally so I saved that version and tried to do extra stuff to my code to make it function with more detail and somehow, somewhere I messed up the code and it broke the whole program. What I did was I pulled the old version of my code that was working before and just went on based off that. So Gitlab / Github allows anyone to create a remote, public repositories on the cloud of free. You can share your projects with your classmates or anyone that you want to have access to your project, and they can pull it to their computer and make changes and it will save on the cloud. You can fork data with the owner’s permission and have a copy of it on your computer. You can also get a copy of someone’s project and build off of it without it changing the owner’s code.  This makes teamwork easier and more efficient, so I see why the professors use this. This also allows multiple people to work on the same project, at the same time and they can just combine their code into one big project at the end. Gitlab also allows you to use third-party tools like slack, and can store and manage docker images, which make its easier to with those applications.                

This is the reference article I used to get the information for my blog: https://blog.hubspot.com/website/what-is-github-used-for#what-github

From the blog CS@Worcester – Farouk's blog by afarouk1 and used with permission of the author. All other rights reserved by the author.

POST #1

Hi, my name is Abdullah Farouk and this is going to be my first blog post for CS343 class. We are learning about Rest API and I was out this week of class so I thought it would be a great idea to read and learn more about it on my own. I am using a post from free code camp that I found online to reference this, I will post it down bellow for you all to give a read. For those of you who don’t know much about Rest API, I will explain must of what you need to know about it in this post. The word REST stands for representational state transfer and API stands for Application programming interface and if you don’t know what that means, it basically find a connection between programs so they can transfer data. Rest is a software architecture that sets constraints and conditions to how the API is supposed to be used. This lets us interact with the data that is stored on the webservers. Companies love to use REST API for a lot of reasons like it’s effectiveness and how it makes client-server interactions better. The REST API make it easy for us to communicate with the servers by giving us HTTP request methods to use. request methods including GET, POST, PATCH, and DELETE which we saw in our classwork assignments that the professor wrote. GET lets us get the information and read the data. POST is used to create a data, like creating a new client. PATCH lets us update the data that is on the server while DELETE obviously deletes the data. The post that I read, that I will have the link to down below, gives us an example on how to actually use these methods. It is really helpful and I suggest everyone to give a read.

reference article: https://www.freecodecamp.org/news/what-is-rest-rest-api-definition-for-beginners/

From the blog CS@Worcester – Farouk's blog by afarouk1 and used with permission of the author. All other rights reserved by the author.

Hello World!

Hi, my name is Abdullah Farouk, I’m a senior at Worcester State University and I am studying Computer Science. My concentration is in Big Data Analytics. This is my first post of many. let’s see how this semester goes.

From the blog CS@Worcester – Farouk's blog by afarouk1 and used with permission of the author. All other rights reserved by the author.