Project Details

Our project’s aim is to create a web application to allow farmers to remotely control the amount of water that is being used to irrigate crops and to observe flow rates, nutrient levels, water levels, and rainfall totals from either a computer, tablet, or smartphone.

The purpose of this project is to allow remote communication between the farmers and their irrigation systems that are mechanically implemented. It will allow more freedom and ease for the farmers to control and monitor water levels in their crops by using a user-intuitive graphical user interface. The web application that will stem from the success of this project will have a low learning curve in order to make it convenient and easy to use. The purpose is also to bridge communication between data sent from the user interface to a server and how that data can be interpreted by the server, and vice-versa.

We aimed to create a functional prototype that represents the web application that would be used to allow the user to retrieve readings from water logger devices, and send control settings to irrigation control devices in the field.


Project Specifications

Functional Requirements:
  • This project needs to allow users to remotely change the settings on an Agri Drain device.
  • The users need to be able to see current and historical sensor data.
Non-Functional Requirements:
  • This project will be a web application, but it needs to be easily usable on mobile devices.
  • We will need to have an intuitive user interface.
  • The historical data should be in a format that is easy to back up.
  • The code should be documented well enough that future developers can add to it.

Project Tools

Node.js - Server-side JavaScript runtime environment
Express.js - Web application framework
React - Design library for creating modular user interfaces
Mocha/Chai - Frameworks for testing our components
Istanbul.js - JavaScript code coverage tool
Semantic UI - UI framework for responsive front end web pages
SASS - CSS extension language
Sinon - Standalone test stubs and mocks
Webpack - Module bundler to consolidate client and server files
MySQL - Database hosted through AWS RDS
WebStorm - JavaScript integrated development environment
GitHub - Online project repository hosting and version control
CircleCI - Continuous integration and delivery platform


Meet the Team

Michael Parker

Senior in Software Engineering
Team Leader

Anne Ore

Senior in Software Engineering
Key Concept Holder

Griffen Clark

Senior in Software Engineering
Communications Liaison

Adam Wolter

Senior in Software Engineering
Key Concept Holder

Rodney Barto

Senior in Software Engineering