Sprint Retrospective 6

During this sprint we actually accomplished more than any of the previous sprints. Together as a group we added in different pieces to the intake form and submitted a pull request with our completed tasks. I personally added the primary household income field as well as worked with Tic to make adjustments to my previous task, household size. Everyone else more or less completed their tasks as well. This sprint showed that given the foundational pieces that took us most of the semester to acquire, we could complete some notable work in a sprint.

In terms of how we divided the work, we simply each took a task on a volunteer basis until everyone had one task. After this point there was still one remaining task that was purdenant to what we expected to get done in this sprint I took on the household size task at the end of the last sprint and then took on the primary income source task as an additional piece of work. This worked out nicely as there was no forced level of responsibility but allowed everyone to work on tasks that varied in difficulty for everyone’s individual level of understanding of the tools being used. If there was anything I would change with this way of working is that I think in a perfect world our tasks wouldn’t all be making changes to the same two files. In a perfect world, we would have had a couple people working on those tasks while we had other people developing another aspect of the final product. Unfortunately, there simply wasn’t enough work established for everyone to have something to do if we wanted to have a clear understanding of what we were developing.

For my personal work, I had to relearn how to do ng-if’s and the basics of angular. I remembered most of the html syntax but there were little things that I forgot but almost all of angular seemed to leave my brain since CS-343. The most difficult part of searching for information on Angular is that while incredibly outdated, many of the top results when searching are for AngularJS instead of Angular 2+. If not properly inspecting the tutorial, it could be relatively easy to miss this important detail. When completing my task regarding the household size, I had to come up with a way to make sure that if a person was a commuter, they were properly entering “1” as the value. I had trouble making this persist upon submission and originally decided on a hard overwrite that would default to 1 regardless of what a person entered for that field. The problem with this method is that a person could still consistently enter non-1 values and never learn that this is not expected. Tic came up with a great idea when developing his task to create a very much visible warning message near the box for the field that needs correction. I “stole” this idea and adjusted it to my field accordingly. When developing my other task for primary income source, it was much easier than the other task as there was no real logic to work into the html other than making sure the data was passed on submission to the model. The only other real logic was that a person could only have one primary income source, but that was fairly simple.

Overall I feel that we are in a good space heading into our final presentation. We had struggles early on and throughout most of the semester, but we finished strong. We finished with by far, our best sprint of the semester and I’m happy with what we got done during this final sprint.

From the blog CS@Worcester – The Road to Software Engineering by Stephen Burke and used with permission of the author. All other rights reserved by the author.

Sprint Retrospective #6

During our last sprint we added some new features to our Tabs component. We were able to include buttons for adding and deleting tabs as well as a checkbox that selects a new tab when it is added. We also added some extra form fields within each tab. I think this was a very successful final sprint. We have a fully functioning tab component that follows the specifications that were outlined by AMPATH. Overall I’m satisfied with the progress we were able to make on this project.

During this sprint we added buttons for adding and deleting tabs. In our tabs.component.ts file we have an addTab() and removeTab() method. The addTab() method simply pushes a tab to the tab array. It also checks if the “select after adding” box is checked. If it is, the newly added tab is set as the selected tab. The removeTab() method calls the splice function on the given index in the tabs array. In our tabs.component.html file, we use the Angular Material mat-raised-button for the add and remove tab buttons. We also use the Angular Material mat-checkbox for the “select after adding” box.

Another thing that we accomplished during this sprint was adding extra form fields within each tab. We previously only had form fields for first name, last name, and address. This sprint we added fields for gender, birth date, and email. The field for gender uses mat-select, which allows the user to select a value from a set of options. For birth date we used MatDatepicker, which brings up a calendar and lets the user select a date. For the email we used Matinput and included an *ngIf statement to check if the email that was entered is invalid. We continued using the Angular Material documentation to help us get this part done.

Besides the add/remove tab buttons and extra form fields, we also started working on the final presentation during this sprint. My team was able to break up the work for the presentation well. I will be explaining most of the code that we have and will also talk about the changes that we made to it. In order to do this I have been reviewing the code that we have to make sure I understand how it all works. I’ve also been looking up information so that I can explain our code well. During this sprint we made a lot of progress towards being prepared for the final presentation.

Overall I think that our final sprint went very well. We were able to add the extra features to our code that we wanted to add. While there is still more that could potentially be added to our component, I’m pleased with what we were able to produce. We have a working tab component that follows the specifications that were given to us by AMPATH. I enjoyed working on this project with my team and learned a lot about Angular development. I would say that our final sprint, as well as this project in general, was very successful.

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

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 6 Retrospective

This week I will be talking about our last sprint. This sprint may not even be done yet since even now, some of us are still trying to work on the issues on git hub. This sprint is unlike the others, I think we actually accomplished more during this sprint. As I have said before, most of our past sprint consists of waiting for the customer to respond or try to plan something for the intake form but then have to change it because the customer does not need it.

During this sprint, I worked on fixing the student ID of the intake form. The student ID field was getting the input as a number but there is a problem with a number as an input. The first problem is that a number can not start with a 0, it will only start at 1 or any number that is not 0. Our actual student ID starts with a 0 so that would not work. The other problem is that we want to capture the student ID after a student swipes their card. After turning the student ID input field into text, I had to then remove all the unnecessary characters that are inputted by swiping their OneCard. This can be done by using the slice method that is from javascript but you can use it in typescript, I think most javascript functions can be used in typescript. The student ID that we get from the card reader is in the format of “;0000111111100?”. The only characters we want is from 5 to 12, which is the actual student ID that you will get from OneCard. Then, I tried using the function slice to get only those characters.

After turning the field into text and slicing the character, I was able to make it work by adding the following code into the onSubmit function since I only want it to happen after they submit the form so that it would look clean on the database.

Code inside onSubmit: this.model.studentId = this.model.studentId.slice(4, –3);

The next thing that I did was to create a way for the food pantry to be able to enter the student ID on their own. Sometimes students might not have their OneCard with them. So, I created an if statement in the onSubmit field, I did not want to do it on the actual form with the ngIf  because it gets messy with the ng-template stuff.

Code: 

if (this.model.studentId.charAt(0) === ‘;‘) {

    this.model.studentId = this.model.studentId.slice(4, –3);

}

This was the final code that I pushed into master. I was actually working on other things, like checking if they entered a letter, if they did, create an alert.

This sprint was very interesting to me. I learned a lot of things. The thing that stuck with me the most is making sure that the field would only take what it is supposed to. After working on it, I would like to add more stuff to check the ID field, like if the length is greater than or less than 8 then it is invalid if it contains other symbols that is not
“; or ?”. There is still a lot of work to do for the intake form but I enjoyed it.

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

Retrospective 6

We entered the last sprint for our capstone class. Everybody was happy because we were two weeks from the end of school and most o us are ready to graduate. But, we still had to work and to deliver some working code and well-implemented components and integration. As I and my team started to work … Continue reading Retrospective 6 →

From the blog cs-wsu – Kristi Pina's Blog by kpina23 and used with permission of the author. All other rights reserved by the author.

Retrospective 5

The AmPath simple application is evolving. We started from scratch and now each team in the class is pushing the components one by one. Even though not everything is fully implemented, we are trying to commit and share with other teams parts of the work. As my team was waiting or other teams to commit … Continue reading Retrospective 5 →

From the blog cs-wsu – Kristi Pina's Blog by kpina23 and used with permission of the author. All other rights reserved by the author.

AMPATH-WSU Sprint 6 Retrospective

Hello dear readers and welcome to my last blog post for the CS 448 class. This blog post will close the chapter of this amazing journey I have had with all the writing and experience with my capstone project.

Recap from last Sprint: we decided to work on the CI/CD of AMPATH project in order to provide productivity and efficiency for all the other teams working on this project. While we were aware of how to set up a regular Java project with Travis CI, the difference here was that here we were dealing with an Angluar project. To be honest I felt a bit discouraged when the professor showed uncertain on how this could be done. However, of course we didn’t give up. We actually (as always) had our best allay, Google to help and figure out how to work with angular projects.

Kristi was able to find a very useful and basic link that showed how to connect a simple angular project with Travis CI. Yayyy we found it. Well half of the job is done. We did our research, we learned the basics and it was time to work on our real project now. Kristi went ahead and tried to make the connected and he was able to, but as the project was added to the Travis account it was failing and not passing the tests. From the tutorial we saw it should be able to at least build the very first time.

I went ahead and tried to find what was missing in the configuration process. I was able to find out that somehow the travis file was not added in the format .travis.yml to the project which is weird as Kristi had added it as a .yml file. However I made the necessary changes and I am waiting at this moment for approval for my professor. I am also going to suggest to the professor the idea of having a dev branch for this project. The fact that there are multiple groups working on the same project at the same time, will probably create conflicts when trying to merge all these changes. Dev branch will have CI/CD and will be deployed within minutes. Efficient, right?

Today is the last day of our class and despite that the presentation of this project is not until May 15th. Therefor we will still be working on this the integration issue and also another part of the team will be working on the other issue we saw in github about figuring out how to store angular components in a library so they can be shared between multiple apps.

This coming week we will be meeting to practice out presentation and also talk about the line up and important points of the presentation.

I would want to say that working on this project was a good experience. However, I wish this is somehow better organized for the next capstone sections next year. What I especially mean by organized is the ability to reach out to the customer. I was aware of the time difference but as we are trying to help them on building their own system, more communication should be provided on their end. I am very happy for my team and what we have achieved and can’t wait to present all our work.

Until the next blog post… Take care you all!

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

Apprenticeship Patterns: Dig Deeper

For the final reflection of my Apprenticeship Patterns series, I’ve decided to choose Dig Deeper from Chapter 6: Construct Your Curriculum. This pattern suggests that you stay conscious of the fact that, as an engineer, you’ll be forced to learn new concepts at a sometimes alarming rate. As a result of this, you’ll likely only learn things at a relatively shallow level of understanding. That is, you’ll only have time to learn what is necessary in order to complete your current task. While this seems like enough, it often can result in issues (bugs and more) in what you’re working on — and it’s limiting your own potential growth at the same time. The solution is to remain vigilant. Put in the work required in order to fully understand a tool. The system, and you, will benefit in the long run if you put in the effort now to learn things properly. Dig into the depths of every concept you’ll be using so you can use it properly.

I’m graduating this month and that means that I’ll be out of formal education for some time. While I do intend to return for a master’s level degree, that won’t be for some time still. And, while I know I’ll be learning a tremendous amount in the workplace, there is still so much more that I want to learn over the next few years that I may not get on the job. It’s the start of my CS career, and I’d like to hit the ground running. I need to make sure that I dedicate time to learning more theoretical concepts at a deep level.

The book draws a distinction between those programmers who have achieved deep understanding over a concept vs. those who haven’t by identifying those who create piles of rubble, and those who create cathedrals. We have a set of tools at our disposal — it’s really easy to use them to create throw things together and construct something that has functionality that is limited to strictly function. However, it’s the true sign of a craftsmen when one can use those same tools in order to create something beautiful. That is exactly what digging deep into each tool you learn can give you, and it’s something I’m going to focus on going forward into my career as a software craftsman.

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

Sprint – Retrospective – 6

this last sprint. we the team covered a lot on the project. Proceeding from the last sprint that we were figuring how to integrate all other teams project to make a whole application, we had some issues. things were not going as planned. we were able to make some of the stuff work but some were not working appropriately and even the testing was kind of not working rightly also. with time pass by, we thought of upgrading our previous project since we were not able to complete the integration of all the sup projects of other teams.
Our previous project was the search bar. which was very easy to do. Because of that we offered to take a bigger problem to solve which is the integration of sub projects of other teams. I specifically handled the search bar and let other handle how to make the integration work.
As I said we were able to integrate some of the other teams sub projects. So we were able to get a web page where the search bar page can be found. So from there I tried to see if I can add more features to it. But seem to have some little issues. When I add a tag or a line of code. all the things on the web page disappear. Not all the tag but when they do not disappear, they do not function properly. But with that, we the team figured it out. We notice we needed to download or install some materials for the tag or line of code to work. Some line of code needed to be added to the module.ts before some of the code can work. while making sure the search area is being upgraded. The rest of the team members figured how to make the integration work perfectly.

Now that everything is working perfectly, we are dealing with all our final project will be handled in the right proportion. This has been fun, working with the team has given me a little comfy, preparing me to the real work

From the blog CS@worcester – Site Title by Derek Odame and used with permission of the author. All other rights reserved by the author.

Practice, Practice, Practice

Hello dear readers. Welcome to my last blog post about the Apprenticeship Patterns. This is the 10th Pattern that I really found interesting and wanted to share with you all.

You are graduating, you probably have a job offer (or a few) in the table, you are ready to start this whole new journey and you think you have a good background to create a successful career. YES you do and Congratulations, but it doesn’t end here. You have worked hard to be here but you still got a lot of work to do.

After you Find your Mentor you will see that the Mentor will be giving you different exercises for you to work on based on your skills and weakness and you will see that every exercise will teach you something better or perfect your skills. When you start working in the company, you will face challenges in every project but don’t stop your exercising outside of work. I feel like in companies you apply a very specific knowledge and you would want to be on top of the new stuff that come out if you want to have a good career.

I really like the title of this pattern ” Practice, Practice, Practice”. I used to have a Math teacher in high school and she was always saying “It’s 99% hard work and 1% talent” and I totally agree with her now. That’s why the practice should never stop, doesn’t matter how far up you have gone in your career.

Also look at the bright side, while you just pick random exercises or small projects to work on, you don’t have to worry about deadlines and no pressure. You will notice at the end how happy you will feel about what you have worked on independently.

So just like the authors of this book suggest, go online and find different problems to work on. If you want to feel more challenged find coding competitions and enter them. Don’t worry if you don’t win. You will definitely learn something out of that experience.  After a while go back to where you started and you will see how you have progressed. my last advice you all of you would be: don’t just settle when you start working in a company. Keep growing outside of it. Practice, Practice, Practice…

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