Category Archives: Sprint-1

Sprint 1 – Retrospective

Our first sprint was less productive that I had hoped it would be. I feel that during the sprint planning phase we should have made sure that everyone was assigned a task to get done working towards a clear goal. For most of the sprint I think most of us were unsure what we should be doing and weren’t sure what we were doing was leading in the right direction. This is something we should have discussed with the product owner (Professor Wurst) set up clear goals. Tomorrow during our sprint planning meeting we should definitely not leave until everyone understands exactly what they need to be doing. If we’re still confused about the requirements we should open up a discussion with the product owner. I feel the team would benefit greatly with a team lead who could potentially answer any questions the team has by handling communication with the product owner. That being said, I’m not sure that anyone would be comfortable with and/or willing to take on that role. There’s definitely a lot to improve on from the first sprint. If we don’t, then we may end up continuing to use our time unproductively. I think everyone wants to do a good job on this project, but may need a bit of direction on what they should be doing.

During this sprint, we spent some time on getting everything set up, such as GitLab, Slack, Trello, etc. We have yet to set up the project itself, however. I think because of uncertainty, most of us spent our time researching by doing tutorials rather than diving into the project blind. Although, we should have confirmed with the product owner everyone’s responsibilities for the week in order to keep the project on track. I took a look at the JSON file to understand the structure of the data, which I think was a source of confusion for many members of the team given that it wasn’t formatted for space reasons. I spent most of my time for the sprint working with GSON to convert the JSON file containing the FoodKeeper Data into objects representing the data in Java. I’m not certain that this is a necessary step for making a REST API interface for this data as I hadn’t done the proper research beforehand, so there’s no guarantee that the work that I did this sprint was necessary. That’s something that can hopefully be resolved next sprint. Also, I spent a little time following through some example REST API tutorials to get a better understanding of what our project may end up looking like. Java 11 seems to have incorporated HTTP APIs directly into the Java SE API (found at java.net.HTTP.*), so this may be worth looking into. It may be beneficial to take a look at the repository put up by the team at Western New England University to see how they’ve set up their project.

Link to the repository for the JSON converter that I worked on for this sprint: https://gitlab.com/worcester/cs/cs-448-01-02-spring-2019/team-fig/food-pantry-json-converter

From the blog CS@Worcester – Andy Pham by apham1 and used with permission of the author. All other rights reserved by the author.

Sprint 1 Review

Our very first sprint went successfully by our measurement of done. We had five objectives to accomplish in the week long sprint; creating a trello board for our product and sprint backlogs, creating a github organization for our group, forking and cloning the AMPATH repository, setting up our environments to run the project, and learning about testing frameworks Karma and Protractor.

As it was our first sprint ever, we all learned about setting up and organizing the foundation of a group project, particularly through the lens of Scrum. We familiarized ourselves with the tools and processes Scrum uses that keep our team on track, such as the trello board and standups.

Also, we learned the value of inter-group communication, as our success is in large part due to the help of the entire class when it came to resolving errors. The organization skills and teamwork we have been practicing will definitely set the tone for how we will approach our goals in the future.

The beginning objectives of our sprint were straightforward and we accomplished them in a short amount of time. By the end of the first class we had set up our trello and github groups, forked and cloned the APMATH repository, and prepared to set up our environments to build the project.

That is where we ran into problems. When initiating nodejs to build and run the application, we all had completely different errors from each other. In my case, the first problem I had was building some of the modules. Thankfully,  Professor Wurst was able to help me solve the issue with the node –rebuild command, which drastically reduced the amount of errors I was getting.

Still though I had a few more issues. I knew we were getting close to being able to build the project because every member of our team was getting the exact same error messages. Sam, collaborating with others in different groups, was able to solve the issues by using the combination of ng build –prod and npm start commands. I admit I’m not entirely sure why that solved the problem, and it would be wise for me in the future to take a closer look into what these commands exactly do, will help me avoid errors in the future.

After a few more troubleshooting attempts, everyone in our team was able to build the project on our own computers. I was relieved at this because we were at the end of the sprint, and I was concerned that solving the errors would take all the time we had, and not allow us to learn about the testing frameworks.

Thankfully, Sam was able to help me with my remaining errors, so I had some extra time before the end of the sprint, so I did research and compiled summary notes for testing in Karma and Protractor. That really worked out well for us because we were able to essentially split the job and kill two birds with one stone. If possible I would like to apply this process in the future. While we definitely need to get more hands on and technical about learning the testing frameworks, I am satisfied to say that we realistically accomplished all of our goals in this sprint.

From the blog CS@Worcester – Bit by Bit by rdentremont58 and used with permission of the author. All other rights reserved by the author.

Sprint 1 Retrospective

In this blog, I will be talking about our first sprint retrospective. My team is working on making free food pantry software.  In the first few days of class, we were doing research on different food pantry software. There was not much we could find that is open source and free which kinda sucks since food pantries are not for profit. Since these softwares are not free, we could not even demo them, therefore it was hard to get an idea on what this software should look like and what functionalities it should have.

After getting assigned into teams, our first sprint started. The first day we all sat together, there was some initial set up that we had to do so that we could communicate with each other and have tasks assigned to each of the members. We set up a task board using trello, joined the slack group for our team, and shared everyone’s contacts and git usernames. In our second meeting, we were trying to figure out where to start. We know that we were working on a food pantry software but we were not sure as to what we should actually be doing since other colleges are working on the same software as well. Then I saw on the slack channel that the other channel that they needed a REST API. So we started planning.

The first thing that we talked about is what functionality this REST API would have. The only thing we know is that we need this API to read a JSON file from the USDA’s website. After looking through the file, there was a lot of information about food and their expiration and some other stuff like tips on cooking or if they need to be refrigerated. Since we know that we are gonna be hosting this API we discussed on where to host it. There were a couple of options but we settled with Heroku since there is a free tier option although it might be a slower service since it has a thirty seconds time out when your API is not being used. Then we talked about which language we are gonna use. Researching about reading a JSON file, most of the tutorials were in Java and since we all have experience using Java, we have settled on it. The next thing was setting up an initial commit on gitlab for our project. Most of it was done by Sean and he was handling most of the task board as well. While the others work on figuring out how to host our API on Heroku.

To host a Java application on Heroku you need three things:

  1. Java 8* 
  2. Maven 3*
  3. Heroku CLI and an Account

After that, we researched how to read and write a JSON file. We are using JSON.simple to parse the foodkeeper.json file.

Steps I took:

  1. Download JSON.simple jar file
  2. Import the jar file into Eclipse by adding it to your project’s build path
  3. Added json.simple dependency into the pom.xml file
    1. <dependency>
          <groupId>com.googlecode.json-simple</groupId>
          <artifactId>json-simple</artifactId>
          <version>1.1.1</version>
      </dependency>

There are a few tips on reading the JSON file.  JSON file consists of array and objects so you just have to create an object or an array depending on what you are trying to get.

ex. Array [], Object {}

A JSON file might have something like this:

“sheets”: [
{
“name”: “Version”,

“data”: [

That means that there is an array called sheets, and an object inside the array called “name”. You can get to it by creating a JSON object first and then creating a JSON array like this:

Object obj = new JSONParser().parse(new FileReader(“foodkeeper.json”));

JSONObject jo = (JSONObject) obj;
JSONArray sheets = (JSONArray) jo.get(“sheets”);

We still have a lot to do, so hopefully, on the next sprint we could implement and get all the necessary information from the JSON file and have methods to return them as an object or as a JSON file.

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

Sprint 1 Retrospective

This past week has been about trying to get the ng2-amrs environment working, and trying to get through the errors that show up when running the npm start command. I have learned a lot of the steps to take in order to approach this problem, although I am still not finished with it. I am not sure that I would proceed differently, I just think it would have been better if these problems were already known, since everyone is having them, and it would have been better if there were more instructions to deal with these expected problems. Most of the approach involves googling error messages, which can definitely be applied in other situations.

Most of the week was spent looking up different npm, ng and node commands, googling error messages, and trying different combinations of the commands and re-installing things after nothing worked. The reason that I took these steps is because I really do not know what I am doing and running through permutations of commands seems to be the only way to move forward to get the program to run without errors. A lot of the process involved referring to the slack channels, where teammates and other teams have run into the same problems and found solutions.

The ng2-amrs readme on the github page says to run the ng serve command for a dev server. What it does not say is what to do when this does not work. A guess at the problem involves version issues with angular, npm and node. Different versions were attempted to try to solve errors. Most of the steps involve googling the error message, which leads to a stackoverflow post that says to install a certain thing that solves the problem. When it does not solve the problem, it becomes very unclear what to do next. Changing versions and re-installing things has not seemed to work.

I have deleted and re-cloned the ng2-amrs folder from github. When I run the ng serve command, I currently see an error Could not find module “@angular-devkit/build-angular”. I google this and stackoverflow tells me to run npm install –save-dev @angular-devkit/build-angular. After I do this and re-try ng serve, a few more errors show up that do not seem to be as easy to deal with. One teammate found npm-check that will list missing things and things that are out of date, so I installed and ran that and had it automatically install everything it found using npm-check -y. After that finished, I re-tried ng serve, and it came back with a new error about styles.scss. I searched the error and found a command npm rebuild node-sass to deal with it. Running ng serve again, now I get some typescript errors. I check the group slack channel and see the command npm start, so I try that, and the next error I see is Error: Can’t resolve ‘pouchdb/dist/pouchdb’. I try running npm install and that brings back the scss error, but this time the same command that fixed it before does not fix it anymore, and it complains that I use a 64-bit operating system. I downgraded to node 8.12.0 and re-tried fixing styles.scss and running npm start. It actually seems to be working now. It says compiled with warnings, I open localhost:3000 in my browser and the ampath page comes up.

From the blog cs-wsu – klapointe blog by klapointe2 and used with permission of the author. All other rights reserved by the author.

WSU x AMPATH || Sprint 1 Retrospective

Sams Ships (5).pngFor my first sprint retrospective, I wanted to start off by introducing what kind of project my team is working on and what we are hoping to do with it before I move onto the description of what is happening.

The project I will be working on for the rest of the semester has to do with AMPATH (Academic Model Providing Access to Healthcare); if you have not yet heard of it, it is a healthcare partnership based in Kenya made up of different organizations. Part of my sprint was getting more familiar with who they are and what we could potentially do to help them. It looks like they are mostly trying to ease or log more operations technology-wise to help people.

Our main tasks for this sprint were of course getting to know my team (classroom-wise) and getting our set-up tasks sorted. It is my first time using Trello for something and as a visual learner or visual person in general, I found it very convenient being able to see our “Product Backlog | Sprint Backlog | In Progress | Done” lined up. We decided to start by organizing because of course that is usually how projects are best done and kept on track. Along with setup tasks, we began by cloning the project and then installed Karma and Protractor.

So far, I cannot say anything failed (and hope I will not have to report that anytime this semester for the sake of us progressing) but I hope we will have more concrete plans for what is coming up next for Sprint 2. I think it also has to do with me as a person being so used to always working moving forward or on with the “next thing” and it’s just different not having that yet. That way there will be things to continuously progress on and track more efficiently.

However, if I were to proceed any differently; I would have gone back and gotten a little more background knowledge because I feel like we tend to tell ourselves “I’ll just go back later and review” but of course that doesn’t always happen. It’s just a fact when you’re a highly involved student who works on the side; but when you plan or set some time for yourself you will be able to do what you need to.

A majority of what was done during this current sprint consisted of trying to understand and introduce ourselves to Karma; which is a test runner for JavaScript.

If someone else were to follow these steps; I would recommend going in this order: Getting to know your teammates, making sure the team has a solid enough understanding of what project we will be contributing to this semester, beginning setup tasks, and then setting goals for when you should check certain things out.

Overall, I enjoyed this first Sprint as I did not feel too much pressure in terms of what needs to happen yet so we can ease into producing software that will help benefit AMPATH.

 

From the blog CS@Worcester by samanthatran and used with permission of the author. All other rights reserved by the author.

Sprint Reflection 1

Our first sprint was rather difficult and unproductive. We did not start off with many clear goals, so we weren’t able to move forward much and had no clear direction. This is definitely a huge hurdle and one I hope we can get over soon. Our group would definitely benefit from clear, tangible goals and perhaps a little more structure. Other than that, we had many productive and insightful conversations about the needs and features necessary to the application we are trying to develop for the food pantry.

One of the things I worked on a little bit was trying to find a way to interpret the a data set so that we can further search and manipulate it. The data source was provided from our professor and our goal was to find a way to display that information in a way that could interact with a REST API interface. A great help to this end was an article found by group member Andy Pham. Using the exact code by the provided article works to some degree, although the field headers need to be changed to appropriately handle the data set for the food pantry project. This doesn’t seem like it will be too difficult moving forwards, although there is still a little work to be done in this department to finish it up. Overall, in this task I think we are headed in the right direction and nearly complete. However, I question how useful this work will be, as we may find out that a lot of this beginning work is already complete by another group or another university.

Another big goal of ours is to set up a server that can run this REST API so we can use it across the network. My team members have been doing research into what resources we can use and what would be best, however it is a choice that is hard to make when we cant consider any of the other needs of the project (yet). This server doesn’t need to be big or complicated, as with what we have we would only need to host a small data set as well as a pretty simple REST API interface to interpret said data set. However, we are unsure where this server will be hosted or who will front any potential costs.

It is challenging having no practical or finished work to show, as it highlights a lack of progress and means we have no reference for how we are performing. However, I think as the ball gets rolling and our project goals become clear we can build up momentum and reach our goals as they come to us. In the meantime, Team FIG has been using our time to discuss what we could potentially need to work on and other elements of the project. We have looked up different universities and food banks solutions and what programs they used to maintain their databases, and are considering what might work for our University.

From the blog CS@Worcester – Let&#039;s Get TechNICKal by technickal4 and used with permission of the author. All other rights reserved by the author.

Sprint 1

This week was sprint 1. Sprint 1 was a rather simple and basic sprint that started with getting into teams and diving into the workload. The most work that was done for sprint 1 was done before getting into teams. Getting setup for the sprint required a lot of work, like filling out the CATME survey and getting your availability schedule together. Once we finished our prep work for the team formation, we got into our groups. Once we got our assigned groups we began sprint 1. Our first assignment was given to us by Professor Wurst. We had two tasks, one being to prepare a REST API for the food pantry and the other being finding a way to host a json file from a government organization. I took the lead on finding out how to host a server for our json file while other members of the group worked on researching REST APIs and figuring out more information on our project. Professor Wurst suggested a few options for hosting our server for free, digital ocean and heroku. I looked at digital ocean first but quickly found out that it actually costs money (a per month subscription) for us to host a server to store our json file on. After finding this out I looked into heroku. Heroku is a free service that lets you host a server for free (albeit they do limit you to a certain amount of server size/space as to avoid people from abusing the system by hosting large applications for no cost). I took on the task of doing a tutorial on heroku, which was rather simple. I went through the windows powershell to follow along with the survey. I learned a few of the heroku Java application specific commands, such as preparing the app (this was a simple process that uses the git commands to clone/pull/fork projects from github/gitlab), launching the app (heroku create), viewing heroku build logs, and scaling dynos. Dynos are specific to heroku, and are basically small containers that live within the heroku server that run your applicaiton. You can scale the amount of dynos per application to affect its performance (however you are limited to a certain number of dynos per application), and I learned that scaling down to 0 dynos does not allow it to launch the application. I feel like heroku is very similar to angular in the sense that there are commands to build/launch/diagnose applications, however angular is more of a “coding” application because you can edit code and run it all within the angular platform. Another large difference between angular and heroku is the language used to host the servers. We as a group settled on heroku for Java because we are all most comfortable using Java as it is our primary programming language. After completing the heroku tutorial I looked at the git repository that was shared with our group by Professor Wurst. I think that as a group we are unsure where to go from this point, as we have not been assigned any solid tasks yet. My hope is that for sprint 2 we can dive into the project more and will be assigned tangible tasks that we can complete for our end users.

From the blog CS@Worcester – The Average CS Student by Nathan Posterro and used with permission of the author. All other rights reserved by the author.

Sprint-1

Getting started with our first sprint, we were tasked with a few familiar tasks which included:

– Creating a GitHub repo for our team so that we could fork the AMPATH/ng2-amrs repositories
– Cloning the repos onto our local computers so we could edit/build the code
– And lastly set up our development environment to be ready so that when we have the back-end server up and running we could start immediately.

The first two tasks were pretty straight forward but when it came to setting up our environment we had many difficulties.
– The first of many difficulties was getting an error that stated we were missing some style.css packages. Since half of our team got this error we dedicated a large part of our time to figuring out what was wrong. James figured out that we had to install the missing packages, specifically ng2-ion-range-slider which got rid of this error. Starting npm was not an issue after this case.
– The second main issue we had to learn to work through were missing environments which I and Gulshan had. I found that since we never ran npm start, we wouldn’t have the environment. This fix took quite some time to figure out also but now most of us are on the same page; waiting for the back-end server to get set up.

There were many steps we tried that failed, some of which ate up a chunk of our time working as a team. We tried deleting and recloning the repos which did not work. We tried installing npm numerous times over and over but the result was the same. I believe most of our successes came from trial and error. We constantly tried updating all of our working environments, researched on stackoverflow, and worked collectively as a team helping one another to figure out our problems. Throughout the week whenever one of us made progress towards ridding one error we would post in our 404 slack channel for others to see; keeping constant communication.

If I were to instruct another individual who wishes to start working on this project I would be sure to have them follow a series of steps as well as solutions to errors that they might encounter. Before beginning anything I would suggest updating all versions of node and npm to the latest. From there, the first command to try and run is to be npm start in the working directory. If there are no errors then localhost:3000 should be all set, else if there are missing packages I suggest installing the ion package that was missing for most of us. We did not encounter any other sort of errors so I don’t know what else could go wrong.

Onto Sprint-2!

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.

Sprint Review Blog # 1

          We learned quite a bit in our first sprint for the AMPATH project which ranged from troubleshooting compiling errors to understanding team dynamics. After some reflection, I found that the mutual troubleshooting that our team did allowed us to bypass any icebreakers that were needed. We were able to professionally and respectfully look into each other’s problems while making sure that no one was left in the dark. After learning about our team dynamic, I will proceed to do more involved communication through slack rather than other private forms of communication. We had begun to use texting a form of communication but quickly changed to slack to ensure that everything was able to be pulled up easier in the future for documentation and blogs. We learned to better troubleshoot using sites such as stackoverflow and GitHub to find information on node as well as npm versions. The start of our first sprint consisted of working on the front end of the project to make sure it was able to run and look into the server side as well to gain more information on how it worked. We had many problems when trying to make the ng2-amrs repository to work when we cloned them on to our own computers. We consulted each other and the various other teams to understand the common problems everyone was having and fix them together. After cloning the proper files onto our computers, we immediate ran into problems when trying to run the project. We were met with various errors that we were able to fix by updating our versions of npm and nodeJS. The npm version was easy to update through commands in the terminal but various team members were having issues with updating node through the terminal, so a manual reinstallation was necessary. During the installation, we found that we must check a box that allowed node to install packages that may be needed as a project is built to ensure that the project could continue to compile. After this error, I happened to get a windows x64 compatibility error for certain files within the project, specifically a file named style.scss. Fortunately, our professor was able to locate a solution to the error and explained that we should type the command “npm rebuild node-sass” to rebuild that node so that it would work with our version of windows. After trying to build the project once more, we ran into another error when running the command “ng build –prod” which would have let us build the project and figure out any other errors we were having. The error said that the javascript process ran out of memory which seemed quite odd. Our teammate Harry was able to troubleshoot this error from stackoverflow using google and emailing people from AMPATH. We were able to change some of the memory restrictions on the javascript process and ran the command npm start which allowed us to fully compile the project and get an interface running. We currently are still facing issues because the project says that it was compiled with warnings which we have not delved into yet as we are awaiting more information from AMPATH. Our troubleshooting methods were mainly using our resources from the internet to find out why the project was running into issues until we were able to properly compile it into a workable interface.

 

References:

Node JS manual update

https://nodejs.org/en/

Style.scss error

https://github.com/sass/node-sass/issues/1918

JavaScript out of memory error

https://stackoverflow.com/questions/50621043/fatal-error-call-and-retry-last-allocation-failed-javascript-heap-out-of-memo

From the blog CS@Worcester – Student To Scholar by kumarcomputerscience and used with permission of the author. All other rights reserved by the author.

Sprint Retrospective 1

 

For this sprint retrospective there isn’t much to talk about because we were just going over the basics of how we are going to work together and setting up the server for our team to work on. During the sprint meeting we talked about the little things that we would like to change. Such as how we can change how our trello board works such as we put up all of the things we need to do and then put our names on the corresponding things we had done and did. Next, we talked about how we are going to push any of the code that we will be doing ourselves onto the git hub and when we should do it. We all decided to push it whenever we meet at least for now since we are still getting to know how each other works as a team. Finally, we went onto the google doc at the end of the meeting and just talked a reviewed the stories for ng-amrs. Just trying to keep ourselves ahead of the curve and started talking about how we can do this project. Throughout the week I just worked on the assignment leading up to setting up the server and getting to know my team more. Some of the things that did help me out throughout the sprints are the slack board and my teammates. For now I don’t see any issues working  with my team they are all great people and we are testing the waters of how we should be coordinating how we work and what we should do.

From the blog CS@Worcester – The Road of CS by Henry_Tang_blog and used with permission of the author. All other rights reserved by the author.