Giter Club home page Giter Club logo

dream's Introduction

DREAM - Data-dRiven PrEdictive FArMing in Telangana

DREAM is the final project for the Software Engineering 2 course of the Computer Science and Engineering Master in Politecnico di Milano held in the accademic year 2021-2022. The goal of the project is building a platform meant to satisfy the needs of farmers, agronomists and policy makers of Telangana, by sharing knowledge among farmers, tracking farmers’ production, allowing farmers to get help, supporting agronomist work, providing data-driven decision tools to agronomists and policy makers


The project is composed of three parts:

● Requirement Analysis and Specification Document (RASD)
● Design Document (DD)
● Implementation and testing (IT)

It is possible to access the three artifacts in the DeliveryFolder, while in the IT folder it is possible to access all the implementation and testing code.


Requirement Analysis and Specification Document (RASD)

DREAM (Data-dRiven prEdictive fArMing) is an elaboration of an ongoing initiative promoted by Telangana’s government which is the 11th largest state in India, with about 35 million residents living in 33 districts. Telangana’s economy, as the Indian economy, is mainly based on agriculture for the majority conducted by smallholder farmers with less than 2 hectares of farmland. More than a fifth of the smallholder farm households are below poverty and in the following years the situation is going to be worse due to climate change. A 4%-26% loss in net farm income is expected, together with an increase in the food demand as a consequence of the forecasted population growth. What Telangana wants is to prevent hitches on their food supply chain that are likely to occur during critical situations (COVID-19 pandemic is a clear example) by adopting data-driven policy making and optimizing as much as possible the productivity of their fragmented agricultural production. In order to achieve its goal the Telangana’s government needs to assemble as much meaningful data as possible and to be ready to help farmers in distress with ad-hoc initiatives, possibly making farmers aware about forthcoming issues and teaching them how to tackle them

DREAM is meant to satisfy the needs of farmers, agronomists and policy makers of Telangana, reaching the following 5 goals:

● Sharing of knowledge among farmers
● Tracking farmers’ production
● Allowing farmers to get help
● Supporting agronomist work
● Providing data-driven decision tools to agronomists and policy makers

Chapter 1 gives an introduction about the purpose of the document and the goals, with its corresponding specifications such as the definitions and acronyms. Also the scope of the project is described, as well as the world and shared phenomena. Finally, the revision history of the document and the references are also available in this chapter.

Chapter 2 contains the overall description of the project. In the product perspective are included the statecharts of the major functions of the application and the model description through a class diagram, to better describe what the project is meant to be. Product functions are also described, to better understand the functionalities of the system. In the user characteristics section are explained the types of actors that can use the application. Finally, the domain assumptions are included.

Chapter 3 represents the body of the document. It contains the interface requirements, which are hardware interfaces and software interfaces. Then, it lists some scenarios to show how the system acts in real world situations, followed by the description of the functional requirements, using use cases and sequence diagrams. All the requirements necessary in order to reach the goals are given, linked with the related domain assumptions. Lastly, the non-functional requirements are defined through performance requirements, design constraints and software system attributes.

Chapter 4 includes the formal analysis using alloy code, together with some instances of the built model and the explanation of the performed analysis.


Design Document (DD)

DREAM is a system that, from an architectural point of view, works and follows the client-server paradigm. The client is defined as a thin client, because it is totally dependent on the server, due to the fact that the logic of the system is implemented on it. The client is only responsible for managing the interaction between system and users. The server is defined as a fat server, because it is responsible for the data management and the logic of the system, as well as the interaction with external services.

Chapter 1 gives an introduction about the purpose of the document and the goals, with its corresponding specifications such as the definitions and acronyms. Also the scope of the project is described, as well as the world and shared phenomena. Finally, the revision history of the document and the references are also available in this chapter.

Chapter 2 describes the architecture of the system. In particular, this section offers an overview of the system, then it deals more in-depth with descriptions of the components of the system and how they are used in the application. Finally, architecture and design decisions are better explained and justified.

Chapter 3 shows how the system appears to the users (mockups) using laptop or mobile size screens and how the navigation inside the system is organized.

Chapter 4 has the purpose of connecting the RASD and the DD document. It includes a mapping between the requirements and the design components that are used to fulfill them.

Chapter 5 provides implementation, integration and testing details.


Implementation and testing (IT)

The purpose of this document is to describe the implementation and testing of DREAM.

Chapter 1 gives an introduction about the purpose of the document and reports a summary of the structure of the document

Chapter 2 listes the functionalities that are implemented in the software and describes the programming languages and development framework adopted to implement DREAM, analyzing both advantages and disadvantages of such choices.

Chapter 3 describes the source code structure, both for the frontend and the backend.

Chapter 4 is devoted to the testing part, and structure and procedure are explained.

Chapter 5 provides specific details on the installation procedure.


Group Components

Cognome Nome e-mail Codice Persona
La Greca Michele Carlo [email protected]
Careddu Gianmario [email protected]
Zoccheddu Sara [email protected]

dream's People

Contributors

michelelagreca avatar sarazcc avatar gccianmario avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.