Senior Capstone Update #2

In my last update I talked about the dependency issues my team was having when we tried to run the codebase created last year by students. Since then, we have made very exciting progress getting this code to run. We have been trying all term to get it to run, so it’s a huge relief that it is now working.

We decided to start a new codebase and add the existing code in bit by bit. The team from last year had most of the code separated in four files. We started by trying to add the first file, which loads the map on the main page. I copy and pasted all of the code, then ran it. I would get an error about a dependency not being installed. Then, I would install the dependency and re-run the code. I kept doing this process until everything needed for the code to run was installed. I had to create a Google Maps API key in order for the API calls to work correctly. I also had to handle an error related to the search bar not being there yet. I had to temporally add a line of code to make the map render until the search bar works. I was also able to add the file that makes the search bar work. I did this the same way I added the map code and added the dependencies one by one.

Currently, the homepage is displayed and all features on it work. These features include all of the farms having a pinpoint on the map, the user can click on the pinpoint to view a pop-up about the map, and the user can search for things like crops and farms. My teammate is going to get the individual farm page to render by Wednesday, which is when V0.0.2 is due. For V0.0.2, all of the previous team’s code will be rendered, which puts us in excellent shape to begin expanding and adding new features. My teammate and I are so glad that this approach to solving the problem worked and has gone smoothly so far.

Senior Capstone Update #1

For my senior capstone class, I was assigned the Success Stories of Resilience in the Willamette Valley (Century Farms App) project. This application was started last year by students who were unable to finish it due to a small group size. Unfortunately, the team working on it this year is small too since one of the three group members had to leave the group. So, for the rest of the year I will be finishing the application with one other student.

The project sponsor is Dr. Dominique Bachelet. Mariah Goldbach is a graduate student who is doing her thesis on the Century Farms and Century Ranches in the Willamette Valley. She interviews them to learn more about them. Meetings happen once a week with Dr. Bachelet, Mariah, and all of the team members.

Currently, the application has a main screen that displays a map of all of the Century Farms and Century Ranches in the Willamette Valley. Each farm has a pinpoint on the map. The user is able to search by crop, livestock, township, etc. to filter the maps results. After clicking on a farm, the user is directed to a page that displays all of the farm’s information. This includes historic farm data, current farm data, and climate data. There is two climate graphs. One of them is for temperature and the other one is for precipitation. The graphs go from the year 1980 to 2020. All of this is displayed on a page that the user scrolls through. The team last year made excellent progress on the application given the fact that there was only two of them. However, there are still many important features that are not implemented.

The Requirements

  1. The homepage is missing a time lapse mode. This will allow users to view historic land data and future projected land data.
  2. The map will have a soil overlay feature that will allow users to view how the soil has changed over time.
  3. The UI of the individual farm page will be reworked with tabs so that there isn’t too much information on one page.
  4. The graphs on the individual farm page will be extended to go from the year 1920 to 2050, as requested by the project sponsor.
  5. An API and new database will be created from the current OCFRP database so that missing fields can be filled in and the application can easily communicate with the database.
  6. An automated script that converts a farm’s address into geographic coordinates will be written to allow new farms to be added to the map easier.

The Technology Being Used

  • Google Maps API and Mapbox – these will be used for the map and timelapse mode.
  • OpenLandMap API – this will be used for the soil map overlay.
  • ClimateNA – this will be used to source future climate data.
  • Daymet – this will be used to source previous climate data.
  • MongoDB – the new database and API will be hosted here.
  • React Native – this is the primary language of the current application.
  • Android Studio – this will be used to emulate the application on our computers.

My Primary Responsibilities

My primary responsibilities for the application will be #3, #4, and #5 of the requirements list above. My teammate and I thought it made sense to divide the work like this so that she is mainly working on the map on the home screen and I’m mainly working on the individual farm page. However, a lot of collaboration is expected.

How It Has Been So Far

This term has all been planning so that we can be prepared to start development next term. Planning was been going well and I think my teammate and I have come up with good ways to implement the features that we need to implement. However, we are both brand new to mobile development so there’s a lot for us to learn. We have been trying to get the emulator running, but have been running into package dependency issues. These dependency issues make it so we can’t update or run anything. We may reach out to a technical resource to help us with this, or if anyone reading this knows a fix, please share. The previous team listed a professor at Oregon State (Robin Hess) as a technical resource they used throughout the year. He teaches web and mobile development so he may know how to fix these issues. My team member was also considering contacting the professor she had for web development. I think a good goal would be to have the emulator running and to have a good understanding of the current code before the start of next term.