Author Archives: mrogers4836

Sprint-6

For this weeks retrospective blog, a lot of the final touches were done. We were able to get our code officially working on all of our computers. We also started working on our final presentation and getting things working on everyone’s end.
The last sprint we had all of the components only working on Dans computer but it was not on a branch. So what we decided to do was to copy all of the code that we had and put it on my computer. I had created a new branch by typing into the terminal ‘git checkout -b Tabs2’. In this new branch we would put all of the code that Dan had working on his computer. When we moved the code over, we realized though that the code was not working. It took us a lot of the time period to figure this out and even after class on our own time til we had this fixed. The biggest issue that we had was that there were dependency statement that’s we were missing. Since I had the code on my end it was my responsibility to fix the code and get it running again. The first thing that I did was look at Dan’s old code that he had done on the Tabs branch that we had originally created. When i looked at the json.package file that we had on the old code, I realized that there were some dependencies that I was missing and different versions. I changed mine to look exactly what Dan’s had looked like. I also realized that in the ampath html file I had something different than what dan had. A lot of these problems I was able to find when I would go into the application, right click and inspect the page. After the application was finally working again, I committed the changes into the new Tabs2 branch. From there since I had time I also added some other form fields that I thought would be fun to add. I added a selection of genders for one of the fields, an email where it will tell you if it doesn’t accept a full email and a date where you can choose from a calendar animation.
After we were able to get all of the components working I pushed up the changes again for everyone to see. From there everyone in the group was able to re clone the project and get the code on all four of our computers. Dan and Sam had found some errors in the code and was able to fix them too. There were some lines that were not in the right place so they were able to move them over into the right spots and get it officially working on their computers.
Since all of the code was finally working we decided to work on our slides and figure out who was working on what. Sam did a rough draft and we decided the sections we would talk about were, the outline, the whole layout of the application, important pieces of the code, major changes that were made, problems encountered (technical and non technical), lessons learned, pointers for future projects and resources. We decided that Ryan would do the explaining of our project as a whole and what our final application looked like. Dan would do all of the major changes that were made to the code, I would do the problems encountered and Sam would do lessons learned what we would do differently. We also talked about how long we would take for each section of the presentation and polished up the slides.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

Sprint-5

There was a lot that was done in this sprint. After we had moved the code that Dan had been working on, onto the Tabs branch we decided to add more code. For our project the main component of course is the tabs component. This tabs component consist of a certain number of pages for a certain form that patient may need to fill out. For example, if a form is about four pages, then that form may need 4 tabs. While in class we as a group first made sure that the new updated code with the simple tab component was on all of our computers. Since Dan had pushed it up, Ryan, Sam and I all had to pull it. Since we all had different amounts of code that was not usable, we decided to start all over again.
The first command we had to do was a git clone https://github.com/cs-worcester-cs-448-sp-2019/amrs-simple-app.git
After that we had to get into the project. So then we did a cd amrs-simple-app and a
cd ampath-simple-app. After we got into the application, we had to do a git checkout Tabs to get into the Tabs branch. After we got into the branch we did a git pull origin Tabs. Since we were starting again, some of us needed to update some of the dependencies we were using. To help fix this on my end I did a ng update –all. After we finally got it running on all of our computers, we decided to start working on the forms component.
Towards the end of that class, we were able to implement a simple forms field with just three fields into our application. We were able to do this with this link: https://material.angular.io/components/form-field/overview. After we were able to get that working we decided to push up our changes again on my computer. To do this I first did a git checkout master to get into the master branch. From there I did a git pull origin master to grab anything that had been added in the master branch. After that I did a git checkout Tabs to get back into the Tabs branch. From there I did a git add . –This added everything that we had added to our code. After I did a git commit -m “Added forms” and committed the changes. From there I did a git push origin Tabs and pushed up our changes into the Tabs branch.
After getting both a simple tabs and form field working we decided to start adding extra things that would better our application.The first component we thought we would add was an add and delete tabs button so the AMPATH developers could add as many tabs as they wanted for each card. This took us a little longer than we expected but Dan was also able to get this working on his end. While we may have gotten in working we did and are facing some issues now. After I had pushed up the changes for the new Form field component, Dan did not pull those changes that were made and immediately started working on the new component. This in hand has messed up where the git is and how up to date it really is. What my team and I are working on now is to just get that working again and for all of us to be on the same page. We are taking the steps to get it on a new clean branch so we can get everything working properly.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

Sprint-4

For this weeks retrospective, I really felt as though my group and I got a lot done. A majority of what we had decided to do was to look up some more skeleton code. Our plan for this Sprint was to finally get started on some code and getting things running. While talking with Professor Wurst we realized as whole for this project that each group with each of their components will make a separate branch for that component and work separately in that branch. From there we would make a pull request to the AMPTH repository where they can other members from other group can view our code and see if it compatible with the rest of the code.
To go in more detail on our specific branch, for Team Rocket I created a branch named ‘Tabs’. I did this by going into the project through the terminal. Then by running ‘git checkout -b Tabs’. From there I needed to create an empty commit – ‘git commit –allow-empty -m”Create a Tabs branch’. This just shows that we created a branch and committed it right away with nothing in it. After the branch was created Professor wurst told us that we will need to install some angular app materials that would be useful in creating our component. Everything that we will be using in our project comes right from angular, so it would be smart to download these tools. We got this information from https://auth0.com/blog/creating-beautiful-apps-with-angular-material/.
The main things i ran in the terminal inside the project was ‘npm install @angular/material @angular/cdk’ and ‘npm install hammerjs’. The second one was from the angular/material tutorial.
After installing these tools, the plan for the weekend was for all four of us to use some of the skeleton code that we had found and implement it into our code to make sure everything was running smoothly. This just ensured that we had the right libraries and dependencies while running the final project. The skeleton code that we decided to use was from https://material.angular.io/components/tabs/overview. After this weekend, Daniel Ryder from our group had created a simple tabs component from the website listed above. The problem that we had with this was just that Daniel had created this inside of a simple angular project that was not connected to the project that we were working on. Ryan also found some useful form skeleton code that we would need for the forms of each tab in the future. We found out that we still do not know what is needed inside of each of the forms, like what the patient needs to fill out but we could include the overall code of a simple form into the code. Samuel Bryan, the other person in the group had worked with James on the website Zeplin which thoroughly explains what Greg Schmidt would like from us and each of the components. It very easy to understand and much more detailed than the videos. That website can be found https://app.zeplin.io/project/5c7fe3c5826def62505ec3b8. Since Daniel needed to put the code into the branch, and the blank angular project I had was from the project, I decided to generate the folders that would be needed for the tabs function. From there Daniel cloned the project from the repository and then started to move the code he had started to working on, into the new cloned project while in the Tabs branch.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

Sprint-3

Compared to last sprint, my group and the other AMPATH groups have gotten a lot more done. At the beginning of the sprint we were fortunate to get some information and feedback from Gregory Schmidt. Greg created videos that pretty much described what he wants from this project. Link: https://www.youtube.com/playlist?list=PL7e8VJ_ZN6eo13AmOMnvXgUEZ38J9pygN) The first video is pretty much an overview of what the layout will be as a whole. Here he explains what he wants for the main components. This included a form page, a patient list, left navigation bar and multiple patient lists. From there he goes in depth on each of the components. The first component is the selection cards and tab rows. This video was especially helpful because Greg mentioned apps that include the tab piece. Along with the other parts, he used Google Mail a lot to reference which helps us have a visual idea of what he wants. The last two videos that were included in the playlist of videos included what he wanted for the navigation elements. After watching all of the videos and figuring out the main components needed for the project we split them up and each was assigned to a team.
The one my group and I decided on was the tab rows. We were thankfully given a link that goes through a demo for mobile angular app development by Kathleen Law. (Link: http://mobileangularui.com/demo/#/tabs) There were a number of different kinds of components and tools that that were listed. Kat also gave us the link to the documentation too. (Link: http://mobileangularui.com/docs/) Of these, a tab component was given, which helped us out greatly. Sam also found a link that pretty much gives us skeleton code for the tab component. (Link: https://material.angular.io/components/tabs/overview) All three of these links will help us out when it comes to actually writing the code.
The last thing that was done during the sprint was kind of a group effort between all of the teams. Professor Wurst created a repository for all of the teams. (Link: https://github.com/cs-worcester-cs-448-sp-2019/amrs-simple-app). In this repository there is the whole entire AMPATH project. Professor Wurst also created all of the teams that are contributing to this project. While getting everything set up we also figured out that we will need to find all of the services that will be needed for each part of the project and mock the services that will be needed for each component. Andrew Finneran created a group on Slack called ‘ampath-server’ and gave us an example which was in the ng2-ams file. In that file you find the src file and then go into it and then find the app file and go into that. From there you look for two kinds of folders, one names etl-api and the other was names openmrs-api. Both of these offer all kinds of services. When you clicked into a server that you needed you will see a bunch of code but specifically a url that goes to the server and then the functions of each of the codes call that url. This is helpful because we will need to in the future mock up these function to return values.
We as a class also decided to created a ampath-frontend slack group which consists of us talking about how we will start the project. We decided that we will push up a blank angular project in the github repository that i listed above. The master branch was set to protected so no one could push it directly and for each story that we work on within our groups we will make a separate branch to work on it.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

Read Constantly

My last blog post for this year will be on the Apprenticeship Pattern ‘Read Constantly’. I felt that this is an area that I need to work on a lot. I was never big on reading growing up, but as I have gotten older, the more I enjoy reading and having some time to read. While I do like reading more as an adult, I am very picky about what I read. I have an even harder time reading things that are assigned to me from school. Especially those that pertain to my major. This pattern emphasized focusing a lot of my thirst for knowledge on the reading material with books instead of blogs. I think that there are some great books out there but personally I have found it very hard to find those that fit best for me. Especially when it comes to the books that are assigned to me for school, I find that they are just very boring. Understanding programming can be really hard and when there is even hard vocabulary that I need to keep looking up that do not even pertain to the information, I find that very unnecessary. I think that as a student it is also very hard to find reading material that does not have anything to do with what I am learning at the moment. If I don’t have time for pleasure reading, I definitely do not have time for learning reading. They also mentioned articles and I think those are extremely important to keep up to date with. Technology as I have said before is changing all of the time and I need to keep up to date with all of that. Staying up to date will make me a better employee in the future. I would like to find books that more up my alley and more of my pace. Books are so useful and I feel as though they really help improve my vocabulary and writing. While on the topic of books I would also just like to point out what a pleasure reading this book was so far. I loved that is was not your typical programming book. With a bunch of code and then information about it. It talked about topics that are not spoken about much when it comes to programming and starting work. The only thing I would have changed was that I would have sourced many more female programming and people in general. I felt that on my journey of reading this, it was heavily male based. Even with quotes that could have been said by a women. Especially now that the COmputer Science field is opening up more, I would have liked to hear from more female programmers. Other than that, I highly recommend this book and the number of patterns it describes.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

Breakable Toys

‘Breakable Toys’ was the title of the Apprenticeship Pattern I decided to write about today. This pattern in a summary is pretty much about success being built on failures. This idea is something that has taken a lot for me to fully understand and even now I still have a hard time understanding it. I have always been bad at school and it seemed like even when I was failing it seemed like it never went anywhere. I had just a bunch of failures stacked on top of each other with no successes. It really wasn’t until I started to do poorly in running that I finally started to realize what that quote meant. When I had failed in a race in Cross Country it only motivated me to do better and learn from my mistakes. The same can be said in the workforce. The first thing that they mention that I completely agree with is to find a safe spot to have those failures. If you are in an environment where you do not feel comfortable in failing and trying to work around those failures, you will never actually learn from them. Only when you are in a comfortable environment can you make true mistakes and really learn from them. Because I still view myself as a novice in programming I feel as though I’m making mistakes all the time. The problem is though, is that when I am with my friends and classmates who I feel are superior than me, I feel more shy and unable to express that I am not understanding something and make mistakes. When I am at home or with my father, I feel a lot more comfortable and able to mistakes without any judgment. This can also go the other way in things that I do excel at. Finding areas and times that you are not doing well, will only help you get better. This pattern is also very similar to wearing the white belt in my opinion. When you are wearing the white belt, you are more open to making mistakes and being yourself. Each mistake that you make, will be a reminder for the next time that are about to make that mistake.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

Practice Practice Practice

For this week’s blog post I thought I would do another one that relates a lot to me and what I worry about as someone in the Computer Science field. The title of this pattern is called ‘Practice, Practice, Practice’. This is something that is always in the back of my head when it comes to new languages and the field in general. I always want to practice and sharpen my skills. One thing that I really liked that they mentioned in this pattern is that they recommend developing software at times in a stress free environment. Where you are having fun and can also learn from your mistakes. When you don’t have due dates, no production issues and interruptions. I think this is extremely important to take note of especially has a get older and the workload gets larger and harder. When you are in a field such as this one, it can be extremely mentally draining. While it can be mentally draining, you don’t want to forget why you decided to major in this in the first place. If you are unhappy with what you are doing, you will never be happy. Taking some time to go back to what started your love for programming can help you calm your nerves and bring back the reasons why you loved it. I also love that they mentioned that practicing makes permanent. That was something I had never thought about before but is very true. If what you are practicing is not right, it can be hard to break from what you had been practicing. That’s why when I do want to practice my skills, I should be careful and make sure I am honing in on the right ideas. While it is important to practice, it is also important to choose what types of things you are practicing. Sometimes it can be hard to move from what you are used to and comfortable with but you will never get anywhere with staying complacent. When you start to gradually improve your skills, the better of an employee you will be

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

Sprint-2

Compared to the last Sprint, this second Sprint was a lot of just setting up and getting ourselves familiar with the materials that we will be using for AMPATH. There were a couple of areas that all three of my team members and I worked on. These included Angular, Typescript, Protractor and Karma. Along with getting familiar with these topics, we were also sent five videos that had a walkthrough and information about what we will need to be doing for the future of this project.
The first part that I spent some time on was Karma. Karma is a tool that spawns a web server that executes source code against test code for each of the browsers connected. This is an easy way to help with developer see what browser tests passed and failed. (http://karma-runner.github.io/3.0/intro/how-it-works.html) After reading about how Karma works altogether, I started to read about the configuration. For Karma to work well with you and your project, it needs to know about the project so it test it. Thi is done by a configuration file. Along with figuring this out, i was able to read all the different kinds of configuration options. (https://karma-runner.github.io/3.0/config/configuration-file.html) The last portion that I read on the Karma website was about capturing browsers, which Karma can automate for you. (https://karma-runner.github.io/3.0/config/browsers.html) Lastly I watched a video that talked about Testacular, which was the original name of Karma. (https://www.youtube.com/watch?v=MVw8N3hTfCI) After reading about Karma, I figured out how to download it. That consisted of ‘npm install karma-jasmine karma-chrome-launcher jasmine-core –save-dev’ & to run it I did ‘./node_modules/karma/bin/karma start’.
The next tool I looked into was Protractor, which is a end-to-end test framework for AngularJS applications. This of course is super important since our whole project will be based off of Angular. It is a Node.js program that supports the Jasmine and Mocha test frameworks. After reading about how it worked, I did a tutorial to get myself more acquainted with the framework. Thi tutorial included how to install it, create test files, set up config files, and run tests. To download I typed ‘npm install -g protractor’ and ‘webdriver-manager update’ into the terminal. After downloading Protractor and going through the tutorial, I read about WebDriverJS, which is a library to ease the pain of working with a purely asynchronous API. (https://github.com/SeleniumHQ/selenium/wiki/WebDriverJs).
The last part I did was do some of the Tour of Heroes Angular Tutorial. The last time I worked with Angular was last Fall semester of 2017, so it has been a while since I have used it. I thought doing this tutorial would help out in the future. (https://angular.io/tutorial).
While these were the main components of what I did during this Sprint, I also did a lot of the same things that were done in the last Sprint. This consisted of doing the Daily Scrum and making sure that everyone else in the group does it. Everything that was explained was exactly what My team members had also done. Although we did not meet up as much as the last Sprint, we seemed to all be on the same page and made sure all of us were up to date on everything.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

Sustainable Motivations

For this week’s blogpost I will be doing another Apprenticeship Pattern from Chapter 3 titled ‘Sustainable Motivations’. Like many of the previous patterns I have read about, this one will also help me when I am faced with the many difficulties of work and their ever changing environments. As I have begun to understand what exactly it is that my parents do, and view them more as just mere adults, I start to question more and more on how they deal with all of the troubles that go along with it. Especially my father who works for the government, always working on new projects with new people. He will come home many a times exhausted and unable to make a breakthrough on a specific project they are working on. I have realized through my dad, friends and this book that the programming that is usually fun you do not get paid for and the programming that is not fun are the ones that you do get paid for. What I feel is one of the main goals of this reading is to find the balance of doing what you love while also making sure that it does pay well enough for financial stability. One of the most important aspects though is doing what you love. I personally feel though, that can be easier said than done. Everyone has their ideal job in their concentration and I believe anyone is capable of getting that but it can take some time to get there. While I do agree that this can be really good advice, I also think that it is always hard for people to say “Do what you love and then rest will come after”. Especially for those who are are not in a stable financial situation, it is not always available for them to want to do what they love right away. As for someone like me who also has her own set of loans to pay off when she graduates, I would love to find what I love but I would also like to pay off my debt. I feel as though this is a common theme I seem to have with a lot of these patterns. I love them and I think they have a lot of good to say in them. They are extremely helpful in a number of ways, but I feel like sometimes they forget the reality of them and the wide range of people there are that exist.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

Craft Over Art

This week’s Apprenticeship Pattern was one that really got me thinking. This week I read ‘Craft over Art’. This pattern talked about exactly what the title says. It was more about focusing on the craftsmanship than the beauty of one’s work. I know that a lot of what I will be doing will not be focused on the arts but when I first started reading this article I thought it was very harsh their way of putting it. I thought that in any job you always want to improve yourself so doing projects that will make your work look better would be the ideal, but after reading their reasoning behind it I got a better understanding for their thought process. One point they had mentioned that I had honestly forgotten about was the feeling of the customer. The goal as the employee is to make the customer happy, and that is the main priority for any company I will be working for. This means that I will always need to place the interest of the customer first before my own needs, and that in hand does make me a better craftsman. This doesn’t mean that what I make has to look awful or unprofessional, but it also needs to be useful to whoever I am helping out. While you may get self satisfaction from something that you have made yourself that may impress your boss or colleagues, making the customer has its own satisfaction in itself. I really like how they mentioned that utility and beauty were interdependent of each other. They say that when a software is more useful there is more pressure and a need for it to be of high quality. I think for myself that this is a very important lesson and pattern to learn about. Everything I do I care a lot about the outer appearance of it. I care a lot about the image and how pretty it looks and sometimes I forget about the utility of the design. When I start working for other people and making products for customers, I will really need to think about how useful my software is and if it will truly make the customer happy. When working in a company, it is not just myself that I working with to make happy and useful, but a whole team of employees and customers.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.