/PiSynthesisLog

COMP 3613- Software Engineering 2 Individual Logs

Individual Logs for PiSynthesis

Name: Gabriela Sewdhan
ID: 813001696
Project: Pisynthesis
Github link: PiDronics

General Thoughts about the course.

  • This was a course that I was expecting when I starting my Computer Science Degree. It is a very important course and I am so glad I got to do it. Before, I would think that all I have to do is just code and get the system working and that's it. However, this course taught me that there is so much more to software engineering and programming than that. The business aspects, the scrum structure which is so beneficial when working in teams, the stakeholders, writing abstracted, tested code so that it remains of a high quality. This is one of the courses that is defintely beneficial for my future in software development.
***

Overall Lessons learnt.

  • Do not take on too many things at a time. The internship that ran until the end of October really took away our time from school. I am glad I got to complete the internship, but I also wished it was not the same time as school. Handling both was extremely stressful.

  • Always design before coding. Normally I jump right into the code and the design comes throughout. However, having a design before saves time and improves the structure of the code where you will know exactly what to do, instead of jumping in with no direction.

  • Testing and abstracting code is extremely important for highly maintainable and high quality code.

  • Sleep and physical and mental health is important. Even though I have learnt this lesson so many times, I am still stubborn as I always want to e.g. Ensure my assignment is perfect, even though it gets me sick. However, I am slowly learning to take care of myself and not kill myself over school work.

What went well.

  • I gained so much new programming skills; I learnt React, how to test react components, how to abstract code, the business side of developing a product, communicating with stakeholders, and most importantly, the Scrum structure.

  • Getting the hardware components to work was very tedious and long. There were so many problems. However, Michael and I got it to work at the end.

Challenges

  • The hardware components were extremely hard to obtain. We were so lucky that Kristan had a pH probe. This was a main issue as the main requirement for our project was the monitoring aspect. However, we pulled through and was lucky that the pH sensor also accounted for temperature.

  • I think that having Human Computer Interaction and Software engineeering 2 in the same semester was not a good idea. However, I may just be thinking this as HCI started in the middle of the semester and there was a rush to finish all the project components. It hindered me for my other courses, particularly software engineering since both were projects. Had it started from the beginning of the semester, distributed time for assignments would have been much better and less stressful.

What I can do better or would do differently.

  • I would love to be a Scrum Master again and applied what I learnt from being the Scrum Master previously. Due to so many things going on this semester, I felt as though I did not get to be the Scrum Master I wanted to be. I wanted to have daily meetings for at least 5 minutes to say what we did the day before, and what we planned to do for the current day, sprint retros at the end of the sprint where we all explain and demo what we did etc. However, we still did put what we did for the day on the group logs, and we had multiple sprint retros when we met in person, as well as online. However, there was still more we could've done, and I will apply what I learnt for all my projects in the future as well as for our other sprints for PiDronics.

Iterations


Week Eight - Week Eleven - Iteration 4 (expand for details)

Friday 30th November

Tasks Completed -

  • Using MDBReact, I added the collapsible feature to the FAQ on the Support page, and removed all unused comments and components.

Thoughts -

  • MDBReact is extremely uselful and has so many components that makes developing and designing so easy.

Lessons Learnt -

  • Since I was so new to ReactJS, I had decided to follow Qarun's and Kristan's guidance like gospel and avoid using libraries. However, I soon learnt how much easier and quicker it is to include them, such as for Carousel and Timeline components. I enjoyed using the various react components and the creativity they allowed. I even learnt enough to get a Pro component of MDBReact working :D In order words, experimenting is fun and extremely useful.

Hours worked -

  • 10pm - 1am - 3 Hours

Thursday 29th November

Tasks Completed -

  • Michael and I met with the stakeholder, Ananda Ramlochan to obtain feedback fromt the deployment. We video recorded him and obtained useful and praising comments about our system as well as little changes to be made.
  • I continued working on the Support Page.

Hours worked -

  • 9pm - 11pm - 2 Hours

Wednesday 28th November

Tasks Completed -

  • I cleaned up the css files that I added for the support and about pages and added a timeline for a roadmap for our system.
  • I also added more information to the Support page and made the FAQ look better.

Hours worked -

  • 7pm - 9pm - 2 Hours

Tuesday 27th November

Tasks Completed -

  • Michael and I added the support page to the mobile app and worked on the FAQ.
  • I felt that the login and sign up pages should be seperated, and tried to seperate it. However, it broke something, thus I reverted the changes.
  • Michael and I worked on adding the about page to the mobile app.
  • The about and support pages added were just an initial implementation, we made sure it was working before formatting it, thus, it was badly formatted at first and also produced many warnings.

Thoughts -

  • The login and sign up pages were on one page, which was not pleasing to me. When I tried to seperate them, firebase stopped sending the error messages to the app upon login and sign-up. Therefore, I reverted it and left Kristan to fix it.
  • The code used for the support and about were very bad at first and was not meant to be seen yet. I should have pushed after I completed it.

Lessons Learnt -

  • Don't merge branch to master unless a fully-working and documented feature branch is complete. I understood this from the beginning but our CircleCI was set up to only deploy from Master. We also ran into some problems with conflicts between my feature and Qarun's testing branch where some changes reverted when the test branch was merged. This just means we need to have better communication and Git tracking (probably in Slack where we can retain messages in pin).

Hours worked -

  • 4pm - 8pm - 4 Hours

Thursday 15th November

Tasks Completed -

  • Michael and I had a follow-up meeting with the stakeholder Ananda Ramlochan where we deployed our system so far to his hydroponics farm. We were lucky as he had both a monitor and WiFi to set up the raspberry pi.

Thoughts -

  • Our system is limited in that the user needs to have an internet connection and a monitor to set-up the pi initially. We were so lucky that our first stakeholder had these. However, we will work on getting the pi to work on laptops. It was not a priority, which is why we had not done it yet. Obtaining and getting the sensors to work was more important.

Hours worked -

  • 6pm - 8pm - 2 Hours

Wednesday 14th November

Tasks Completed -

  • Researched optimal ranges and how to use unix timestamp to collect data from Firebase. This research was done to help Michael with the min, max, average and ranges for the sensors.

Monday 12th November

Tasks Completed -

  • I finished abstracted the humidity sensor code!

Hours worked -

  • 10pm - 11pm - 1 Hour

Sunday 11th November

Tasks Completed -

  • I started to abstract the humidity code and ensure that they followed the software engineering principles.

Lessons Learnt -

  • Abstraction is beautiful. Really helped us with testing, and fully understanding the end-to-end system, like how the different components interact. I can see the benefits of focusing on functionality, but it's nothing compared to what we gained by abstraction.

Hours worked -

  • 2pm - 4pm - 2 Hours

Saturday 10th November

Tasks Completed -

  • Michael and I worked on pushing the pH sensor data to firebase for live readings.
  • I unit tested half of the pH sensor code, while Michael did the rest

Hours worked -

  • 3pm - 6pm - 3 Hours

Thursday 8th November

Tasks Completed -

  • We finally obtained female-to-female cables from Electrical Engineering Department.
  • Michael and I connected pH sensor to the raspberry pi and it finally worked! :D

Thoughts -

  • THE pH SENSOR WORKED!!! :D Things are looking good. I cannot wait to deploy our system and get feedback on how to make it better :D It tooka long time due to hardware unavailability and shorts, but it worked out in the end :D

Lessons Learnt -

  • If things are not working out at the moment, do not dismay and keep on trying your best.

Hours worked -

  • 9pm - 12pm - 3 Hours

Wednesday 7th November

Tasks Completed -

  • I designed the support page and Michael and I both planned out the contents for the FAQ.

Hours worked -

  • 6pm - 8pm - 2 Hours

Tuesday 6th November

Tasks Completed -

  • Michael and I had a follow-up meeting with the stakeholder, Ananda Ramlochan. We planned to deploy soon to his hydroponic farm.

Thoughts -

  • I truly hope we get the pH sensor fully working and updating in real-time before we deploy. I was also very excited that we finally got a stakeholder to deploy with :D It has been very hard with the flood occurring and damaging so much of our stakeholders hydroponics farms :( I do hope that they did not lose too much and everything is fixed.

Lessons Learnt -

  • In time, things will work out :D


Week Six - Seven - Iteration 3 (expand for details)

Sunday 28th October

Tasks Completed -

  • Michael and I worked on troubleshooting the pH sensor. Since we did not have any more female-to-female cables, we tried to connect two males to form a female-female cable, but it still did not work. Therefore, we tested the different components of the pH sensor via a voltage tester.

Lessons Learnt -

  • If one is limited in what they have to make a product work, don't stop working and always come up with creative solutions.

Hours worked -

  • 3pm - 6pm - 3 Hours

Saturday 27th October

Tasks Completed -

  • Michael and I did seperate research on how the pH sensor works, as well as the code and how to connect it. We then talked about what we learnt together. We found out that it is quite different from the sensors we were using before. It uses i2c instead of GPIO and involved translating bits.
  • When Michael connected the pH sensors to the raspberry pi, there were a good bit of problems which we both firgured out and fixed. However, there was a short in two of the female-to-female cables which brought our testing to a stop.

Thoughts -

  • The pH probe code and set-up is very different from the DHT11 Temperature and Humidity sensor. We ran into many problems and I was very distressed that it could not work due to the bad female-to-female cables. It was quite stressful, as we only had one more month for the project and did not get to deploy to a stakeholder yet due to hardware troubles :(

Lessons Learnt -

Hours worked -

  • 1pm - 7pm - 6 Hours

Friday 26th October

Tasks Completed -

  • I planned out a design for the about page as well as the contents. I wanted the about page to talk about who our team is, what our team represents, what projects we are working on and about our product PiDronics, as well as a roadmap for what we have planned ahead for Pidronics.
  • Michael and I also went into FFA again, to try to obtain sensors.

Thoughts -

  • FFA was not helpful again :( We went to the dean this time to ask for help, even though we saw her during her office hours she was extremely rude and did not care to help :(

Lessons Learnt -

  • It is not easy to get what you want.

Hours worked -

  • 2 Hours

Thursday 25th October

Tasks Completed -

  • Michael and I got the connectors for the pH sensor from kristan. We could not wait to start implementing the pH code as it is a main sensor for monitoring Hydroponics farms. :D

Thoughts -

  • I could not wait to start working on the pH sensor code and finally get to deploy to a stakeholder!


Week Five - Week Six - Iteration 2 (expand for details)

Monday 22nd October

Tasks Completed -

  • We discussed changing our database from Firebase to a relational database.
  • I conducted some unit tests to test the data types for the sensor code
  • I included try except into my code to test if my libraries, methods and parameters exist
  • I researched the code used and how to setup the Dissolved Oxygen and EC meters

Thoughts -

  • We really wanted to switch over to a relational database. However, given the time frame, and how much code was already done with the database, we decided to stay with Firebase for now for the course and change to a relational database after the course is completed. Firebase gives trouble and is not optimal for the product we want to build.
  • This was my last day as Scrum Master, I felt a bit sad as due to my internship, I did not get to do all the Scrum duties I wanted to do where we did not get to meet everyday and state what we did, and what we plan to do. We did however, always updated the group logs with what we did.

Hours worked -

  • 10pm - 4am - 6 Hours

Sunday 21st October

Tasks Completed -

  • We discussed who would be the scrum master and product owner this week:
  • We discussed what we completed for the week, what's left to do and problems we ran into.

Hours worked -

  • 9 - 11 pm - 2 Hours

Saturday 20th October

Tasks Completed -

  • I worked with Michael to write sensor code to pull data from both the pi2 and pi3.
  • I also unit tested the functions used in the sensor code.

Thoughts -

  • Testing for the sensor code was not too much to do as most of the code are static. Thus we just had to test the if the libraries are being used, if the functions are being called, the parameters and ranges.

Hours worked -

  • 2 - 7 pm - 5 Hours

Friday 19th October

Tasks Completed -

  • Michael and I obtained the pi3 and tested out sensor code on it.
    • Outcome - It works.

Thursday 18th October

Tasks Completed -

  • I worked with Michael to test if the sensors we had could be submerged. It could not as our sensors do not work in a moisture rich environment.
    • We researched ways to coat the sensors and coated them in a shrink-wrap.
    • We also discussed dipping them in thermally conductive epoxy.
    • This outcome had me feeling down as Michael and I worked hard on our code to read sensor values and test them. However, this is just a minor drawback.

Thoughts -

  • Sometimes it is okay to start over from scratch. As long as the product will benefit the stakeholders and users, we will put in as much work as needed! :D However, if we had talked to the stakeholder before starting the product, we would have known to get probes from the beginning. We did try however, but contact was difficult at first as the stakeholders were busy.

Lessons Learnt -

  • I learnt that before jumping into coding a physical component, I should do proper research first and ensure the hardware can be used for what I want it to. However, we only went ahead with those sensors at first as we did not know we were going to submerge the sensors at first. This information only came out to us after our first meeting with our stakeholder.

Hours worked -

  • 8 - 9:30 pm - 1 1/2 Hours

Wednesday 17th October

Tasks Completed -

  • We had a scrum meeting and discussed how to fix the structure of Firebase. We did a code review where Kristan, Michael and I reviewed the code and structure we used for Firebase and ways to improve it. It felt great seeing someone explain their code, I learnt a lot.

Thoughts -

  • We have had regular sprint retros where we show each other what we did and explained it. However, we have not had a proper code review like this where we went through line by line and explained the code. It helped me understand everything a lot better in terms of code and what everyone else is doing.

Hours worked -

  • 9 - 12 pm - 3 Hours

Tuesday 16th October

Tasks Completed -

  • I worked with Michael to pull the sensor values into firebase and into the web app.
  • We worked on Milestone 3: Most of it was done already, we were not sure about the "proof of methodology".

Hours worked -

  • 6 - 11 pm - 5 Hours

Monday 15th October

Tasks Completed -

  • We discussed who would be the scrum master and product owner this week:
  • I planned out and assigned tasks for everyone for this week and made sure that we can finish it in time.

Thoughts -

  • It is my turn to be Scrum Master! I was a bit scared as I would have to be telling the group what to do, and I have a problem with public speaking or saying what I think to other people. However, I am looking forward to eradicating that problem.
  • Planning the tasks was very satisfying for me as I like to make lists of what needs to be done for the day. It keeps me organised and well structured. It is also very satisfying to check of a completed task.

Hours worked -

  • 9 - 12 pm - 3 Hours


Week Four - Iteration 1 (expand for details)

Saturday 13th October

Tasks Completed -

  • I watched tutorials and learnt some React to help out with the front-end.
  • I tried to make the web app responsive and look good on a mobile app, but it was of no use.
  • I discussed with my team, possible designs and ways to make the app look good on mobile while also being readable and neat.

Thoughts -

  • Although React Native would be preferred as you can deploy to both iOS and Android, React was extremely fun to learn. I already had some knowledge from React Native during my internship where I worked on the interface and design for a chatbot and dispute screen. I always feel at ease when developing front-end and I am excited to put in more work to the front-end.

Lessons Learnt -

  • I gained a deeper understand of React and learnt from Qarun how to unit test React components and run the tests.

Hours worked -

  • 10-4pm - 6 Hours

Friday 12th October

Tasks Completed -

  • Today I researched on how to pull data from the raspberry pi into Firebase.
  • I worked on writing the code to read data from the temperature/humidity sensor.

Hours worked -

  • 6-9pm - 3 Hours

Thursday 11th October

Tasks Completed -

  • Today Michael and I went to the doctor and did not get much done.

Wednesday 10th October

Tasks Completed -

  • Today, Michael and I could not attend UWI as he became horribly sick and needed to go to the doctor :(

Thoughts -

  • Michael Ali had overbearing stress of driving to St. James to work for Monday to Wednesday and Friday, as well as driving to UWI for classes on Thursday. The tasks set out was too much for us to handle along with school and it affected Michael's health. However, our health is more important than a job and we should learn to prioritize taking care of ourselves.

Lessons Learnt -

  • Health is our wealth. If we die trying to win a nobel prize, we won't be there to reap the awards.

Tuesday 9th October

Tasks Completed -

  • Today, we met with our first stakeholder and obtained very useful information from 11-12pm.
  • I also worked with Michael to set up the sensors with the raspberry pi and ensure that it is working.

Thoughts -

  • Our first stakeholder was Mr. Rakesh Bhukal, as lecturer and researcher at the Department of Life Sciences. We gained valuable information from him and realised that we were using the wrong sensors the entire time, as our sensors needs to be submerged into a reservoir. Therefore, Michael and I had to find a way to make the sensors submergible.

Lessons Learnt -

  • Even though the sensors we have cannot be submerged, we decided to still work on it for proof of concept and to further our own knowledge when it comes to sensor code and testing.

Hours worked -

  • 6-8pm - 2 Hours

Monday 8th October

Tasks Completed -

  • Today, I researched on the different sensors needed for hydroponics and the most effective way to automatically keep the environment optimal.
  • I did not get to work as much as I wanted to as I overworked for my job and it was really exhausting. I'm still learning to manage my time.

Thoughts -

  • I have a problem of being a perfectionist. I wanted to finish all my tasks fully for my internship to give a good impression. However, since every technology I had to implement was new to me, I spent many hours and days working on the same issue and overworked myself to exhaustion. I know that if I keep this up, I will not be able to focus on my school work as much as I would like to. Thus, I am trying my hardest to change.

Lessons Learnt -

  • I found many different sensors we can use for Hydroponics monitoring. I also found the code to use for some of the relevant sensors - Humidity, Temperature and EC sensors.
  • Management of time and prioritization of tasks that are due first, is extremely important to be successfull in life.

Hours worked -

  • 5-6pm - 1 Hour

Sunday 7th October

Tasks Completed -

  • Today I researched on which technology to use between DigitalOcean and Firebase, made a written Document, documenting the pros and cons, pricing, what they both are and their features. At the end, I decided that using both is best, where DigitalOcean would be used for computing and cloud services, and since it needs a database to be integrated and managed, I decided to integrate Firebase into it since it is the easiest to use and we all have experience with it. It is also much easier to manage.
  • I also created a github organization ‘PiDronics’, created three repos and made develop and feature branches for each of them, pushing the code we had so far.
  • We had a meeting for an hour at 9:30 pm to talk about the tasks we did and discuss the results we came up with from our research.
  • We decided to use real time db for Firebase, Digital Ocean after for computing, React for the app.
  • I learnt how to use git pages and learnt more about Digital Ocean.

Thoughts -

  • Even though we decided to use Firebase for the database for now due to the familiarity and ease of use, we will still use an SQL database after the course for our completed product.

Lessons Learnt -

  • During my internship, I had to do many written reports and research on different technologies before choosing one as I worked with new technologies. This skill helped me to complete a written report for DigitalOcean vs Firebase very quickly.

Hours worked -

  • 1-7pm - 6 Hours (lunch was from 4-5)

Saturday 6th October

Tasks Completed -

  • We had a meeting at 9:30 pm for an hour to discuss the contact of stakeholder, getting a raspberry pi and ensuring that the sensors are working and discussed what we should do for the rest of the week.
  • We discussed who would be the scrum master and product owner for the 1st iteration:

Thoughts -

  • Qarun Bissoondial was chosen as the first scrum master as he had the most leadership like qualities and will ensure we get our tasks done.
  • Michael Ali was chosen as the first product owner as the idea is originally his.
  • I am excited for my chance to be a Scrum Master as I love making and managing tasks and would love to be the leader of my team. However, I am still very shy and find it hard to tell people what to do. This is something I am currently working on and hope to improve throughout the semester.

Hours worked -

  • 1 1/2 Hourss


Week Three (expand for details)

1st to 5th October

Tasks Completed -

  • We completed the user, system, functional and non-functional requirements.
  • We also completed the uml diagrams and specification for the system.
  • We had a meeting on Thursday in person to discuss what went on in class and what Kyle said during the meeting.
  • We discussed stakeholders, getting the sensors and the raspberry pi and we set up other meetings to be held everyday where we would just tell each other what we worked on, our progress, and what we plan to do for that day.

Lessons Learnt -

  • Michael Ali and my ongoing internship came in handy for Scrum as we took what we learnt from doing scrum meetings everyday at work, and applied it to our project. Before I used to think once I get the product completed, that is the most important thing in software development. However, both my classes and work thought me that software development is not only about the code, but also about being professional, meeting deadlines, having sprints and scrum meetings, having or being a leader and organising tasks beforehand.
  • I have also learnt that communication is of utmost importance.

Hours worked -

  • 8 Hours


Week Two (expand for details)

24th to 28th September

Tasks Completed -

  • This week we met in person for a meeting, discussed the milestones to be completed, the user and system requirements.
  • We talked on whatsapp to discuss and complete milestone 1.
  • We discussed how we will be meeting for the rest of the semester and decided to use both slack and whatsapp for messaging, and hangouts for video meetings.
  • We discussed the skills each of us have and how it would fit into the project. Since Michael Ali and I had experience with the raspberry pi and sensors from doing research with Dr. Mohammed, as well as from mentoring for the DCIT Bootcamp, we were choosen for the hardware component of the project.

Thoughts -

  • Since we had most of the tasks completed for milestone from software engineering 1, there was not much to do, which was beneficial to me as work was taking up most of my time.
  • Even though automation was the most important feature for our product, we decided to take it our for the scope of this project as obtaining the equipment as well as time, were constraints.
  • Even though my work would mostly be on the hardware aspect of the project, I have a passion for design and decided that I would also aid with the design and development of the app.

Hours worked -

  • This week we also discussed and gathered information for around 4 hours.


Week One (expand for details)

15th to 19th September

Tasks Completed -

  • This week we discussed on whatsapp, the project we would be doing. We decided to choose the same project that we started working on for Software Engineering 1 and HackAgainstHunger.
  • We talked about:
    • The importance of getting stakeholders
    • Who are the Stakeholders
    • Shared what we did for Software Engineering 1
    • Discussed how to make the project better
    • Discussed the importance of communicating with stakeholders to develop the system.

Thoughts -

  • I am very excited for the course as it is fully practical and involves developing a fully functional product that can be ready for release.
  • I did however wonder how I would be able to handle both work and school as there was already enough pressure at work.
  • I am very glad we continued with the automated hydroponics idea as I hope we can assist the world in providing a steady supply of food
  • I am also very excited to work on more hardware as well as design and development of an app.

Lessons Learnt -

  • User and Stakeholder feedback is of most importance when developing a product for customers. This was learnt in both my work environment and from class. Without stakeholders and users, we, as developers, would never be 100% what the customer wants.

Hours worked -

  • This week we just discussed and gathered information for around 3 hours.