Category Archives: Sprint-1

The IncreEdibles Sprint 1 Retrospective

For our project Software Development Capstone course, we got assign to working on food pantry. After we got to know our group members, we started to research about food pantry. We looked at how the data stored, what kind of software there are and what steps we need to take. At first, we meet our first problem, our project still in the early stage we didn’t know what customer are looking for. We took one by one step to set up our operation. We set up slack for our communication, we also have channel to communicate to other schools and food pantry owner. For planning and assign job to team members, we use Trello. We set up different stage of development “Product Backlog”, “Sprint Backlog”, “To Do”, “Doing”, “Review” and “Done”. We agreed on this setup is best for our operation, this way we know how doing what job and what been done and coming up. Next, we looked at what software and technique that require for this task. We know that we are using JSON file from USDA’s website as data base. We need to set up API able to read and get the information we need from JSON file. In order to get specific information as customer want such as what type of food, their expiration date and create report. We agreed using java for this project. Since most of us comfortable with it. That is most of back-end data that we are working with. ( https://catalog.data.gov/dataset/fsis-foodkeeper-data )

We need to host API where can be access online, there are a few options with paid and free. We chose Heroku since it is free, and we feel comfortable with it. To setup Heroku we need an account and set up app on our computer. They have good information on their Documentation Page. ( https://devcenter.heroku.com/ ) We are planning to set up mock-up test for JSON parsing and front end, where we can test and see how our project work. We figure since we still at early stage, we don’t know how other set up their front end. We can set up our own and make sure it would work.

Although at the beginning we didn’t know where we supposed to do, we weren’t used to project in early stage. I feel much better now that we got more ideas about what to do. This has been interesting, we learned about how the team set up in software development. We have good members that take on the job, I am still learning and trying to help. It is excited and fun to figure it out, next at the food pantry meeting with customers. We will have better idea of what they are looking for.

From the blog CS@Worcester – Nhat's Blog by Nhat Truong Le and used with permission of the author. All other rights reserved by the author.

Sprint 1 Blog Post

For this week, I have finished up Sprint 1 and I would glad to be talking about it.

What I wish I could done throughout this sprint was to know what was figuring out my laptop

 

 

 

 

 

 

 

 

Link:

From the blog CS@Worcester – Onwards to becoming an expert developer by dtran365 and used with permission of the author. All other rights reserved by the author.

Sprint-1 Retrospective Blog Posts

Hello everyone and welcome to the first sprint retrospective blog posts. Today I’m going to go over what had happened during the first sprint. During the first sprint, we first got familiar with each other because we just had form groups. We then decided on a team name which was 3m2g which stands for 3 mud kips and 2 goats. This team name was combined with two of the most voted names that were considered. We made a list of what had to be done in the product backlog and discussed with each other on what can be done in a certain amount of time. Here were the objectives that we had to complete. First, as a team developing software for AMPATH, we need a GitHub group so we can fork the AMPATH/ng2-amrs repository. Second, as a developer working on AMPATH/ng2-amrs, I need to clone ng2-amrs to my computer (every team member). Third, as a developer working on ng2-amrs, I need to set up my development environment so I can build/run ng2-amrs. Fourth, as a developer working on ng2-amrs, I need to learn about testing in Angular so I can write tests for our new code. When setting up the environment, it was easy because most of the needed software so already installed from the previous CS course. I had the following software and applications was already installed like Insomnia, Gradle, and some sort of Typescript IDE which I had Visual Studio Code installed. Some of the members of my group didn’t have some the development environment installed so the members that finished help provide information when needed. We also had to learn more about these testing tools which are karma and protractor. During the process, the of cloning the AMPATH/ng2-amrs project, Me and my fellow’s group members didn’t come across an issue. The only problem we had to was attempting to run the project which was unsuccessful. I then decided to follow one of the apprentice patterns which had to advise me to ask the help when needed. So, I call my friend Khoa which I and he went over the error and then figure out the solution. I then posted the solution into slack and notify my group of my fix. I learn more about understand certain errors and how to fix them on the day. Some of the software and application that I had installed on my previous class work fine but just need to be updated. When working on the first sprint I became more familiar with SCRUM and really understanding the importance of it. Also, when looking for information about testing in angular I came across many informative sites when inputting angular test on google. I missed the last day of the sprint, but the members of my team were very helpful in informing me of the information that I missed during that day. All in all, this first sprint was simply because the product backlog was a familiar assignment that was accomplished before and I enjoy working with the members of my group.

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

My First Sprint: A Retrospective

Good day my fellow readers. Today I will be writing a retrospective on my first Sprint. For this Sprint, we were tasked with mainly setup tasks from our Product Manager. The first task we as a group decided to conquer was the simple task of reviewing the README for the AMPATH software we would be editing. It appears that, from the last time our Product Manager worked with AMPATH, there was a contributing section that was removed in the current iteration. The next task tackled was to create a Github organization, fork the ng2-amrs software to the organization, and clone the software our machines. We then needed to ensure that npm, Insomnia, and a Typescript compatible IDE were all installed on our machines. I believe that we will need to install Gradle as well for some of the testing packages but, due to the pains that come with installing Gradle, as a group we decided that we can put off installing Gradle until it is determined that Gradle is actually needed. With all that situated, we then installed and played around in OpenMRS, a demo of an EMR, or electronic medical record system. The point of this was to gain a feel for an EMR first hand and it was neat to play around with one. The next task was to actually get ng2-amrs running on our units. This was the troublesome part of this sprint. During this part of the Sprint, I got sick and regrettably, did little towards getting it running on my unit at first. During that time, however, others in both my group and the other AMPATH groups did solve many of the issues that would crop up. This created a wealth of troubleshooting resources and made it much easier for everyone to get their ng2-amrs software working. At the end of the Sprint, our group did have a couple tasks left that we did not accomplish and had to push to our next Sprint. These tasks were to install both Karma and Protractor and learn more about both of them. They are both testing software that we will eventually be used for testing our changes to the AMPATH ng2-amrs software. We also pushed having everyone up and running with ng2-amrs due to some members, including myself still having issues getting it running. Thankfully, two members of our group have the software fully up and running.

This Sprint has forced me to dive back into some work from a previous class to remember how to work with npm and Insomnia. While I did not need Insomnia, in particular, this sprint, it was collateral learning. I also got a chance to learn about electronic medicals records as well and get a, “peek behind the curtain” as it were. We not only had to mess around with the OpenMRS software, but we also had to listen to an article called, “Why Doctors hate Their Computers”. This article, in summary, told the story of doctors struggling with their new EMR software and investigating the cause of this hatred. In the end, I came to the conclusion that the cause of the pain of doctors was that the EMR software was directed to the patient as the customer, rather than the doctors who actually use the software. This did put a thought into my mind that while working on the AMPATH software I should not only keep the doctors in mind but keep the patients in mind as well.

That is what happened, and what I learned on my first of many sprints to come. See you next time readers!

From the blog CS@Worcester – Computer Science Discovery at WSU by mesitecsblog and used with permission of the author. All other rights reserved by the author.

Software Development Capstone – Sprint 1 Retrospective

Over the course of this sprint, I have started to understand more about various aspects of software development that don’t necessarily include coding. Between getting to know the other members of my team and troubleshooting the errors upon errors that I encountered while setting up my development environment, there was plenty to learn about and work on each day. These skills are definitely applicable to countless other scenarios – for example, troubleshooting is necessary on a daily, if not hourly, basis. If I had a chance to go back and redo this sprint, I would probably have distributed my time more evenly for the task that took the longest to complete (troubleshooting the provided Angular project so that it built and ran successfully), rather than working on it somewhat irregularly, which was during working class sessions and occasionally outside of class.

For the past couple of weeks that made up the sprint, we have been spending time completing various set-up tasks related to the user stories given during our sprint planning session. Our team is collaborating with AMPATH (more information about their organization here), working with their medical record software. The tasks completed this week included cloning their “ng2-amrs” project repository onto our own local machines, successfully running the project, and downloading any additional programs to prepare for writing and testing code. Using a Trello board, we organized these tasks (and will continue to do so throughout the semester) into “Doing” and “Done” columns, with the user stories either staying in the overall Product Backlog or the latest Sprint Backlog if we wanted to get those completed during this sprint.

In order to clone the project, we first created a GitHub organization, adding each team member to the group. Then, one of us forked the project from the AMPATH repository to our organization repository. Finally, each team member cloned the project to our computers. None of us had any issues with this task. When we were downloading other programs that may come in handy later (like a TypeScript IDE, as well as Insomnia for work with REST APIs), there didn’t seem to be any issue with this either.

The vast majority of problems arose when it was time to build and run the ng2-amrs Angular project. When I initially ran the build command (“ng build –prod”), a bunch of errors popped up, preventing compilation and building of the project. Fortunately, several classmates have been posting discussions and solutions to many of these errors on our Slack channel, and these were so helpful when I was trying to troubleshoot my project. These discussions combined with frantic Google searches got me through this process of fixing my project.

One of the errors had to do with inadequate memory allocation when running the build. This was solved using the commands presented in Reference #1, which adjusted the memory used to extend its limit. Another error had to do with a package (“ngx-openmrs-formentry”) used in some of the many TypeScript files not being imported or recognized properly in the program. I spent a lot of time trying to fix this issue, even going so far as to re-clone the project twice to no avail. Finally, once I realized that the error messages were coming from the same reappearing package present in the files, I simply reinstalled that package (with the installation command in Reference #2), and that fixed the problem. A third error that I encountered involved the Angular Dev-Kit not being recognized when attempting to run the build. Using the command from Reference #3, this issue was easily resolved.

As of yesterday, using the command “npm start,” I FINALLY got the project to run! This was great timing, as it is now the end of the first sprint and the beginning of the second. I’m looking forward to the upcoming sprint, especially once our team is all up and running!

References

  1. https://stackoverflow.com/questions/50621043/fatal-error-call-and-retry-last-allocation-failed-javascript-heap-out-of-memo – used to fix the memory allocation error
  2. https://npm.taobao.org/package/ngx-openmrs-formentry – installed to ensure that the specified “ngx-openmrs-formentry” package is being imported properly
  3. https://www.npmjs.com/package/@angular-devkit/build-angular – installed to have the Angular Dev-Kit on my local computer to build the project

From the blog CS@Worcester – Hi, I'm Kat. by Kat Law and used with permission of the author. All other rights reserved by the author.

Sprint-1 Retrospective Blog Post

This semester for my Software Development Capstone course we are working on a AMPATH project working on a point of system by Ampaths Clinic. For this semester I will be working on this with a team. This blog is actually Sprint-1 Retrospective blog post. As part of our assignment we are assigned to complete a Sprint Retrospective blog post at the end of each sprint. As of Today, February 20th, 2019, we have completed Sprint-1. This first sprint was a pretty good sprint where we got a lot of work we needed to do done. However,  there were a few bumps on the road where we didn’t get to do everything we intended to get done during this first sprint cycle. For sprint-1 we had a total of 8 task we were hoping to get done. These task were:

  1. Come up with a name for our team.
  2. Set-up a sprint-kanban board to keep track of our “Product Backlog”, “Sprint Backlog(stories)”, “Sprint Backlog(task)”, “Doing” and “Done”.
  3. Set-up our development environment by installing insomnia, gradle, and a typescript IDE.
  4. Create an organization for our team on github
  5. Fork ng2-amrs and etl-rest-server repository to our organization and then clone the ng2-amrs and etl-rest-server repository from our organization into our computers.
  6. We had to read the readme.md section for instructions.
  7. build and run ng2-amrs.
  8. Learn about testing in Angular to be able to write tests for our new code.

From the list above I was able to complete all the task except for the last 2. When it came down to trying to build and running ng2-amrs I ran right into a wall. Trying to build or run it feels nearly impossible. I have been trying to do everything possible, and just when I feel I got it going I have more errors appear. Trying to get this going is pretty important since, the purpose of doing this is to make sure the system is running correctly and have it ready for you to modify and update it with your code. For the next sprint I am hoping I am able to build/run the system.

From this sprint and activities I have learned that if I am stuck on something to make sure that I do not wait until last minute to ask for help. I have also learned that if your stuck on something try working on the next task and come back to it when your done with that new task. With that in mind going forward I will make sure that I ask for help after struggling for 3-4 days or less. Going forward I will also make sure that if I am stuck. I will take a break from that, move on to the next task, and return the old task after completing the new task. That way I am not wasting too much time on something I am stuck on for too long. Come to think about it these are actually good idea that can be applied in other situations.

For this sprint I did not find any useful information or help. I did manage to go on the slack channel where my team mate kat was successful  and she gave me a few good suggestions I will work on the next sprint to try and get the system build/running. I am certain that for the next sprint I will have better luck!

Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.

From the blog cs@Worcester – YessyMer In the world of Computer Science by yesmercedes and used with permission of the author. All other rights reserved by the author.

Sprint Retrospective – Round One

            A reflection on what I learned form this week’s activities is that everything is easier said then done. We are given a sprint board and should strive to meet the objectives by the end of the sprint. However, it is not surprising there is issues to be accounted for during the first sprint. As expected, the amount of communication outside of class is lacking than when we are interacting with one another during class. In regard to this, the solution is to make sure that everyone is fully aware that our only source of communication, Slack, is important to check every day. As it also affects our course grade due to our attendance with the sprint standups. This is solution is also applicable to any problems regarding communication in the future as it’s simple to address but execution requires effort.

At the start of the sprint, our
backlog started with two items to complete. The first item is summarized to
speaking with other university professors about what information is valuable.
The steps taken to ensure we have contact with the other professor was to join
the appropriate slack channel. In this case, I joined the LibreFoodPantry slack
channel with my respective group members and under the “food-saver” channel.
Our group got information indirectly from another team’s question regarding the
REST API addressed to the other university’s professor. In response, we learned
that they would like to know how long an item can be eaten opposed to its
actual expiration date, and possibly a way of filtering by food categories.
This is the first step but there is a roadblock, even if we know what is needed
from the client, if we don’t have a place to begin then it seems pointless to
know what they need.

            The road
block is what leads to our second item in the sprint backlog, which is to
develop the REST API interface to manipulate a JSON file. From the Department
of Agriculture’s Food Safety and Inspection Service, we are provided a public
JSON file to work with.

The first step is to figure out
where to start, and my approach was to tackle a small issue that was mentioned
beforehand, which is a place to store, and pull the JSON file from. In which, I
spent about an hour looking up information about DigitalOcean and there was a
way of getting 12 months of access to DigitalOcean for free from GitHubs
Student Developer Pack. However, I put this information on the back of my mind
since another member was looking into Heraku.

In response, I chose to get started
on researching about REST API. The first site visited is restfulapi.net which
introduced the concepts of REST. Next, since the group unanimously decided to
work with JAVA as the preferred language, I decided to revisit my favorite java
IDE, IntelliJ IDEA. On the JetBrains site, it provided a tutorial to REST API
web services which I read and got introduced to the JAX RS library. Lastly,
after completing that tutorial, I learned that it was not the place to begin
this journey and found the “Building a RESTful Web Service” with spring
tutorial. In conclusion, I’m still working on the spring tutorial and that is
where this sprint ended for me.

What I produced this sprint:

https://gitlab.com/irresoluteduck/spring-boot-tutorial-example

References:

https://catalog.data.gov/dataset/fsis-foodkeeper-data

https://www.digitalocean.com/

https://education.github.com/pack

https://restfulapi.net/

https://www.jetbrains.com/help/idea/restful-webservices.html

https://jersey.github.io/

https://spring.io/guides/gs/rest-service/

From the blog CS@Worcester – Progression through Computer Science and Beyond… by Johnny To and used with permission of the author. All other rights reserved by the author.

Sprint 1 Retrospective

My software development class is structured to feel more like a real work environment. In this way, we practice completing tasks on schedule in a “sprint” format. This means each student is assigned a development group and communication is emphasized heavily. We began the semester by signing up and downloading the required tools.

We made sure everybody joined the same slack channel, so we could share information and update each other as we continue the project. On this slack channel, we are required to periodically enter what we have done, what we are doing, and any roadblocks we encounter in order to keep the rest of the team informed on our progress. Various slack channels are also set up so that we can ask questions to other groups who may have similar obstacles. Interestingly, we found that collaborating through the other channels was the most effective way to solve our recent issues.

We also used a website named trello.com to organize our project and condense it into workable tasks. This includes a product backlog for general goals, a sprint backlog for tasks and stories we aim to finish before the end of the sprint, a “doing” column for tasks that are currently underway, and finally a “done” column for completed tasks. We spent some time making sure the organization was set up correctly and that everybody was joined in on it. In class today, we prepared new objectives for the next sprint and archived old completed tasks.

In the first few days of this sprint, we also made a repository following the project we will be contributing to this semester, AMPATH/ng2-amrs. Everybody in our group cloned the project from the repository, so we each have the ability to view a local copy. Looking further into the README file, we gained an understanding of how to build, test, and access the server associated with the project.

Next we had to make sure we had a proper development environment to run the project. This included getting everybody the latest version of NPM, Gradle, Insomnia, open MRS, and an IDE of choice that runs typescript, for that I chose Jetbrains Webstorm with a student license. This task took us the most time and still is not finished, only one group member so far is able to run the project successfully. Some of the software we installed, namely Gradle and Insomnia, we may not end up using, so ultimately I think we can get better at limiting redundancies by further defining what is required to complete a task.

By the time our next sprint is over, we aim to have every member able to run the project, then we can start contributing to it. It seems that each group member has their own issues with starting the project, which will slow us down since we may have to work through new problems for each member. We also have sprint backlogs set up to become familiar with the programs Karma and Protractor to help us test the new angular code.

From the blog CS@Worcester – CS Mikes Way by CSmikesway and used with permission of the author. All other rights reserved by the author.

Capstone Retrospective 1

Up until this point, it has felt like we have mostly been trying to simply get our project to run.
I am not sure if the other teammates have felt this way, but I am anxious to contribute. It would be nice to have something to show for our efforts. It has been slightly frustrating, but I should have expected this slight speed bump.

In light of this, I have not been able to do some of the less important tasks that I wanted to get done. I wanted to research about testing in angular. In addition, I have been wanting to complete a tutorial to refresh my knowledge on Angular. I feel that this is one area that I would really like to round out my knowledge on because I feel it is somewhat lacking.

The bright side is that I was able to get my code to build and run without as much trouble that many of my teammates and other teams have experienced. Also, by the end of yesterday (2/19/19), with some input from me and some of the other teams, it looked like all of us got it to build and run.

A takeaway from this is that I should dedicate at least a sliver of my time everyday to dedicate to this class and project. In the apprenticeship patterns textbook, there was a quote by CS Lewis that I particularly enjoyed, which said “The only people who achieve much are those who want knowledge so badly that they seek it while the conditions are still unfavourable.”

I should apply this to learning this information. Even dedicating half an hour a day is better than nothing. I’m going to be a realist and say that on some days this class might be put on the back burner because of looming deadlines and exams from other classes, but I should never let that interfere with doing even a small amount every day.

In class yesterday, the code did not build and run right away, so I decided to go through step by step the commands that I got it to run the first time. You can imagine how nervous I felt when it did not start right away. I thought that since it had already been built, I could just run the last command to start it. It turns out that I had to go through them in order to get it to run the second time around.

The following is a list of commands that I used to get it to run, in this order:

(1) ng serve
(2) ng build —prod
(3) npm start

Note that this is run from the command line in the top layer of the directory that you have designated for the project. After these commands are prompted, go to your web browser, and type the following:

http://localhost:3000/#/login

For node or module problems, I found the solution was to do the following command:

npm rebuild

I experienced this when I was trying to rebuild it yesterday. I breathed a sigh of relief when it was such an easy fix.

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

Sprint 1 Retrospective

I think the most important lesson I learned this past week was that front end development can be extremely annoyi– ahem. Particular. Yeah, that’s the word.

In all seriousness, for our sprint this past week we were given 5 tasks. We needed to create an organization for our team in capstone, fork & clone the ng2-amrs repository from AMPATH’s GitHub account, read through its’ README.md file, set up the development environment, and then learn about testing with Angular. As it turns out, this was a whole lot more frustrating than we originally anticipated. When setting up the development environment using the ng2-amrs repo, the entire class got errors. People had issues with sass, issues with CSS packages, issues with typescript and issues with javascript memory management. Thankfully having the slack was an extremely helpful tool because not only could we offer catered help to our individual team channels, but the entire class was working together in order to get things up and running. As it turns out, there are a lot of ways that an angular/node project can encounter errors purely based on the environment that you’re running it in.

By FAR the most difficult thing was getting the development environment set up for everyone in our team. I was running on Mac and everyone else was running on Windows. The common issue amongst us was an issue with the styles.css or styles.scss file in the /src folder in the project. For the windows users, the specific error they got was “Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime (57).” Professor Wurst found that it was a problem with sass, which required them to run npm rebuild node-sass. After this, it seemed to fix that issue. Since I was the only one who had a mac, that was not an error that I got. When I got my error, it included “Can’t resolve ‘ion-rangeslider/css/……’. After a big of digging, it seemed as though there may have been a package I was missing regarding the ion-rangeslider, and so I found the tool npm-check, which allows you to check what packages you have installed in your project and what version is the most recent one. From there, I discovered that I didn’t have the ng2-ion-range-slider package, and after I installed that, my styles.css issue was resolved.

Once past the styles.css issue, it seemed like everyone encountered an issue when trying to resolve a .ts file. My teammate Harry emailed AMPATH directly about this, and they told him that he needed to run ng build –prod in order to get the production build of the server, as opposed to just running ng build. This worked perfectly and solved that typescript issue for everyone who encountered it. However, the very final error that most people were getting was an issue with the javascript heap running out of memory while building the server. Upon a little bit of googling, Harry also found the solution to that issue on this Stack Overflow post. Finally, the server ran and built as it was intended to — but not after much trial and error.

Along the way, there were constant issues with angular and npm versions that needed to be resolved. I can’t even tell you how many times I ran npm clean cache –force, rm -rf node_modules, rm -rf package_lock.json, and npm install@x.x.x just trying to figure out if the issues were a version or installation problem. I actually do feel like I learned a lot about the environment that Angular and Node need in order to run, just from digging through files and trying to see if all that was necessary was a small change to a .json file. There was a lot of reading, exploring, and self-development involved in finding changes for the issues, especially since we haven’t had a tremendous amount of front end development experience yet.

Currently, we’re all working on understanding testing in Angular a bit better and we still have one group member encountering technical difficulties. His seems to be partially related to his actual physical laptop which is hindering his progress, so that will likely get sorted out with time. Overall I think this sprint was really great way to kick off the projects. I enjoy my team and think we all work well together. Excited to continue onwards!

From the blog CS@Worcester – James Blash by jwblash and used with permission of the author. All other rights reserved by the author.