Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

PROJECT SEMESTER REPORT

Digital Grain Commerce Platform

by

Vidhi Gupta
(102003324)

Under the Guidance of

Mr. Soham Parab

(Software Developer)

Dr. Anamika Sharma

(Assistant Professor)

Submitted to the

Computer Science & Engineering Department


Thapar Institute of Engineering & Technology, Patiala

In Partial Fulfilment of the Requirements for the Degree of


Bachelor of Engineering in Computer Engineering
at
Thapar Institute of Engineering & Technology, Patiala
May 2024
DIGITAL GRAIN COMMERCE PLATFORM

by Vidhi Gupta
Place of work: Aryatech Platforms Private Limited.

Submitted to the Computer Science & Engineering Department, Thapar Institute of Engineering &
Technology
May, 2024

In Partial Fulfilment of the Requirements for the Degree of Bachelor of Engineering in Computer
Engineering

Author: Vidhi Gupta

Certified by

Mr. Soham Parab, Software Developer

Certified by

Dr. Anamika Sharma, Assistant Professor

i
CERTIFICATE

ii
ABSTRACT
During my industrial internship at Arya.ag, an AgriTech enterprise, I was integrated into
AryaTech Platforms Pvt Ltd, one of its subsidiaries. Arya.ag extends a comprehensive array
of services to farmers, FPOs, banks, and traders, encompassing trading, e-auction, crop yield
optimization leveraging technology, and financial solutions such as commodity-backed loans.

As an Associate Software Development Engineer Intern, my primary focus encompassed


participation in two pivotal projects: 'Arya 4.0,' dedicated to refining the user interface of
their digital grain commerce platform, and the development and design of a new microservice
named 'Invoice and Order Management Service.' This immersive experience endowed me
with invaluable insights into the fusion of technology and agriculture, significantly
contributing to my professional evolution and comprehension of industry dynamics.

Additionally, I was involved in the Selenium testing of builds to ensure the reliability and
functionality of the software. Selenium, an open-source tool, was instrumental in automating
web application testing, thereby enabling efficient identification and rectification of bugs and
performance issues. This process ensured that the digital grain commerce platform operated
seamlessly across different browsers and devices.

iii
LIST OF FIGURES

Fig No. Figure Caption Page No.


1.1 Company logo 1
1.2 Company achievements 2
1.3 Company clients 2
2.1 Revamped Features of Arya.ag 9
5.1 Testing flowchart 14
6.1 Java 16
6.2 GitHub 17
6.3 Grafana 18
6.4 React 19
6.5 Selenium 20
6.6 Cucumber 21
6.7 Prometheus 22
6.8 Jenkins 23
6.9 Contract Listing 24
6.10 Usage of React 25
6.11 Automation in Arya.ag 25
6.12 Feature File 26
6.13 Step Definition File 26
6.14 Object File 27
6.15 Test Runner File 27
6.16 Jenkins Integration 28
6.17 Monitoring Metrices 28
6.18 Grafana Dashboard 29

iv
TABLE OF CONTENTS

Certificate ii

Abstract iii

1. Aryatech platform private limited 1

1.1. Overview 1

1.2. Key achievements 1

1.3. Service 3

2. Introduction 5

2.1. Product overview 5

2.2. Nature and scope of project 6

2.3. Background and relevance 6

2.4. Objectives 7

2.5. Main contribution 7

2.5.1. Front end development using react 7

2.5.2. Automated testing with cucumber and selenium 8

2.5.3. Code instrumentation 8

3. Background 10

4. Objectives 11

4.1. Arya 4.0 upgrade overview 11

4.2. React component-based architecture 11

4.3. Selenium testing Framework 11

4.4. Enhanced Performance and User Experience 12

4.5. Enhancing Observability 12

v
5. Methodology 13

5.1. Requirements gathering 13

5.2. System design 13

5.3. Development 13

5.4. Testing 14

5.5. Instrumentation and monitoring 14

5.6. Performance and Behaviour monitoring 14

5.7. Agile methodology 15

6. Tools and technology 16

6.1. Java 16
6.2. GitHub 17
6.3. Grafana 17
6.4. React 18
6.5. Selenium 19
6.6. Cucumber 20
6.7. Prometheus 22
6.8. Jenkins 23
7. Observation and findings 30

8. Limitations 33

9. Future Work 34

10. References 35

11. Peer review 36

vi
1.ARYATECH PLATFORMS PRIVATE LIMITED
.

1.1 Overview
Arya.ag is a leading innovator in the agricultural technology sector, delivering a
comprehensive range of solutions tailored to the specific requirements of farmers, FPOs,
banks, and traders. Committed to revolutionizing agriculture, Arya.ag offers state-of-the-art
services spanning trading and e-auction platforms to advanced crop yield optimization
solutions.

Fig 1.1 company logo

With an unwavering dedication to empowering stakeholders across the agricultural value


chain, Arya.ag extends financial services like loans against commodities, solidifying its
position as a single destination for all agricultural needs. Through its subsidiaries such as
AryaTech Platforms Pvt Ltd, Arya Collateral Warehousing Services, and Aryadhan Financial
Solutions Pvt Ltd, Arya.ag is at the forefront of innovation, driving significant changes in the
agricultural industry.

1.2 Key achievements

Arya.ag has achieved remarkable milestones, including the listing of 11,659 warehouses,
managing 2,833 warehouses, and actively storing 2.99 crore metric tons. This fiscal year
alone, Arya.ag has disbursed ₹157.77 crore through Aryadhan and facilitated a total trade

volume of 75,783.98 metric tons across various agricultural commodities. Arya.ag has

1
achieved significant milestones, including listing 11,000 near-farm storage points and
managing USD 2.5 billion in stored produce. They have provided digital identities to over
10% of agri-warehouses and implemented IoT-enabled hermetic storage. The company
utilizes AI-enabled surveillance and quality assurance, ML-enabled auto decisioning, and
integrated seamless payments for transaction integration. They employ intelligent demand-
supply matching, satellite-based traceability, and offer seamless embedded finance against
inventory. Arya.ag has partnered with 25 banks, facilitating USD 1.3 billion in annual finance
with zero NPAs. The company ensures digital matching of supply to demand, structured
finance, full payment assurance, and boasts a commerce ARR of USD 600 million.

Fig 1.2 company achievements

Fig 1.3 Company clients

2
1.3 Service

Arya.ag is a leading agricultural service platform that offers a comprehensive suite of


solutions designed to streamline operations, improve efficiency, and enhance profitability for
all stakeholders within the agricultural value chain. Their services encompass three core
pillars: Storage, Trade, and Finance.

Streamlined Storage Solutions:

• Extensive Network: Arya.ag boasts over 10,000 listings of well-maintained and


strategically located warehouses, providing users with convenient and secure storage
options for their commodities.

• E-store Creation: The platform empowers users to establish certified e-stores, facilitating
easier online visibility and marketing of their produce.

• Simplified Management: Users can efficiently manage their storage needs through the
platform, including booking warehouse space, storing and releasing commodities, and
accessing invoices.

Facilitating Seamless Trade:

• Demand & Supply Matching: Arya.ag acts as a bridge between buyers and sellers,
allowing users to view current demands and connect with potential partners who share their
needs.

• Market Price Transparency: Real-time access to mandi bhav (market prices) empowers
informed decision-making for both buyers and sellers.

Financial Empowerment:

• Loan Disbursement: Arya.ag simplifies access to credit for farmers and other stakeholders
by enabling loan disbursements against stored commodities.

• Secure Payment Platform: The platform ensures secure and hassle-free transactions
through a user-friendly payment system.

3
Arya.ag also boasts a range of innovative apps, including Aryashakti, a weather monitoring,
analysis, and reporting app; Prakshep, an agri-intelligence solution maximizing crop yield
through real-time monitoring and analysis; and Arjun, an integrated procurement
management platform providing a comprehensive solution for procurement needs. Through
these initiatives, Arya.ag continues to redefine the agricultural landscape, driving efficiency
and sustainability in the industry.

4
2. INTRODUCTION

2.1 Product Overview

Initially, I dedicated the first two weeks to familiarize myself with the project's codebase and
the work environment. This foundational period was crucial for understanding the existing
framework. Following this, I delved into 'Arya 4.0,' a significant UI update for the Arya.ag
website and mobile applications aimed at enhancing the user experience.

• My primary focus has been on 'Arya 4.0,' where I engage in frontend development using
React, JavaScript, Redux, and CSS. This hands-on experience has allowed me to apply
theoretical knowledge in practical scenarios and collaborate with the design team to ensure
a functional and aesthetically pleasing UI.

• The development and integration of a robust monitoring system for Arya 4.0, an advanced
frontend application, ensures optimal user experience. Leveraging Prometheus and
Grafana, the system tracks Core Web Vitals and additional performance metrics
comprehensively. Using the web-vitals library and the performance API, critical metrics
are captured and visualized through Grafana dashboards for real-time insights and historical
analysis. Alerting rules are configured to promptly identify and address performance
degradations and errors. This setup contributes to the application's continuous
improvement.

• In addition to frontend development, I have been heavily involved in testing frontend builds
using Java Selenium in conjunction with the Cucumber framework. Selenium is a powerful
tool for automating web applications for testing purposes, and integrating it with Cucumber
allows for behaviour-driven development (BDD). This combination enables us to write
clear, understandable tests that mimic real user scenarios. I have been writing and executing
test cases to ensure the reliability.

5
2.2 Nature and Scope of Project

Arya 4.0 is a significant upgrade to Arya.ag's frontend, enhancing user retention and trading
activity through a complete UI overhaul for Trade Services, Long Term Procurement (LTP)
customers, Sell Stock, Stock Ledger, and improved account settings functionality. A key
feature involves implementing automation scripts using Cucumber and Selenium, which
ensure robust testing by automating user interactions and validating expected behaviors.
Additionally, Arya 4.0 integrates Prometheus for observability metrics, collecting real-time
performance data to monitor latency, throughput, and error rates. This setup, combined with
thorough local testing, aims to create a seamless user experience, empowering users with
enhanced functionalities and contributing to a more efficient digital grain commerce
ecosystem.

2.3 Background and Relevance

In the dynamic landscape of digital commerce, Arya.ag recognizes the critical importance of
continually enhancing its user interface to remain competitive and meet the evolving needs of
its stakeholders. With Arya 4.0, the company acknowledges the significance of user
experience in driving user retention and engagement. The project's background lies in
Arya.ag's commitment to revolutionizing agricultural technology and providing cutting-edge
solutions tailored to farmers, FPOs, banks, and traders. By prioritizing the overhaul of UI
design for Trade Services and improving account settings functionality, Arya 4.0 aims to
streamline user interactions, facilitate easier data management, and ultimately foster greater
user satisfaction. The relevance of this project extends beyond mere aesthetic enhancements;
it directly impacts user engagement, trading activity, and overall platform usability. As
Arya.ag continues to expand its footprint in the agricultural sector, Arya 4.0 represents a
pivotal step towards creating a more efficient and user-centric digital grain commerce
ecosystem.

6
2.4 Objectives

• Enhance user retention rates on Arya.ag's frontend website and applications.

• Stimulate increased trading activity through the platform's apps.

• Deliver a more intuitive and user-friendly experience.

• Ensure proper functioning of the updated UI through rigorous Selenium testing of builds.

• Improve overall usability and user satisfaction with strategic UI enhancements.

• Foster greater engagement with the Arya.ag platform through improved functionalities.

• Contribute to a more efficient and effective digital grain commerce ecosystem.

2.5 Main contributions

2.5.1 Frontend Development Using React

Arya 4.0 is a major upgrade to Arya.ag's website and apps, aiming to boost user retention,
trading activity, and user experience. The project includes a comprehensive UI redesign for
Trade Services, tailored for Long Term Procurement (LTP) customers, and enhanced account
settings for easier data management.

Utilizing Reacts component-based architecture, Arya 4.0 ensures efficient updates and
scalability. These improvements create a more engaging, seamless user experience, driving
higher user satisfaction and engagement. By refining the UI and optimizing account settings,
Arya 4.0 enhances the efficiency and effectiveness of the digital grain commerce ecosystem.

Tools and technology used:

Type Name
Text Editor Visual Studio Code
Design Platform Figma
Version Control Git, Bitbucket
Libraries React JS, Axios

State Management Redux

7
2.5.2 Automated Testing with Selenium and Cucumber

As we develop new features for Arya.ag's frontend, builds are made and rigorously tested
using Selenium with Java and the Cucumber framework. This involves writing scripts for
automation testing to ensure that new UI components and functionalities work seamlessly
across different browsers and devices. Selenium is employed to automate web application
testing, providing comprehensive coverage and consistent test execution. Integrating
Selenium with Cucumber allows us to use behavior-driven development (BDD) principles,
making test scenarios more readable and maintainable. By automating tests, we can quickly
identify and rectify issues, ensuring a robust and user-friendly interface for all users. This
process enhances the overall reliability and performance of Arya.ag's digital grain commerce
platform.

Tools and technology used:

Type Name
Testing Framework Selenium
Programming Language Java
BDD Framework Cucumber
Test Runner JUnit
Build Tool Maven
Continuous Integration Jenkins

2.5.3 Code Instrumentation

For Arya 4.0, our advanced frontend application, we integrate Prometheus and Grafana to
monitor key performance metrics and ensure optimal user experience. Using the `web-vitals`
library, we capture Core Web Vitals like Largest Contentful Paint (LCP), First Input Delay
(FID), and Cumulative Layout Shift (CLS) to assess loading performance, interactivity, and
visual stability. Additional metrics such as Time to First Byte (TTFB), First Contentful Paint
(FCP), Time to Interactive (TTI), and Total Blocking Time (TBT) are collected via the
`performance` API, providing insights into application responsiveness. Error tracking is
managed by a global error handler that logs JavaScript errors and intercepts network requests
to monitor API call failures, enabling swift issue identification and resolution. Metrics are

8
sent from the React app to Prometheus for aggregation and analysis. Grafana, connected to
Prometheus, visualizes these metrics through custom dashboards, offering real-time insights
and historical trends. Dashboards highlight key performance indicators, error rates, and
network metrics, facilitating proactive performance management and issue resolution.
Alerting rules in both Prometheus and Grafana notify us of significant performance
degradations or error spikes, ensuring immediate response. This comprehensive monitoring
ensures Arya 4.0 delivers a seamless, high-performance user experience, driving continuous
improvement and operational efficiency.

Tools and technology used:

Type Name
Code Instrumentation Tool Prom-react
Monitoring Tool Prometheus
Data Visualization Tool Grafana

Fig 2.1 Revamped Features of Arya.ag

9
3. BACKGROUND: ARYA 4.0 INITIATIVE

• In the dynamic landscape of digital commerce, Arya.ag acknowledges the critical


importance of continually enhancing its user interface (UI) to remain competitive.

• Recognizing the significance of user experience (UX) in driving user retention and
engagement, Arya 4.0 aims to improve the overall usability of Arya.ag's platform.

• Arya.ag's commitment to revolutionizing agricultural technology and providing cutting-


edge solutions underscores the background of the Arya 4.0 project.

• Tailored solutions for farmers, Farmer Producer Organizations (FPOs), banks, and traders
demonstrate the company's dedication to transforming the agricultural sector.

• Arya 4.0 represents a pivotal step toward creating a more efficient and user-centric digital
grain commerce ecosystem.

• Utilizing automation with Java Selenium for testing and integrating Prometheus and
Grafana for metrics observability strengthens Arya 4.0's capabilities in ensuring seamless
user experiences and optimizing platform performance.

10
4.OBJECTIVES

4.1 Arya 4.0 Major Upgrade Overview

Enhance user retention, trading activity, and overall user experience on Arya.ag's
website and apps.

Arya 4.0 is a significant upgrade to Arya.ag, focusing on a comprehensive UI redesign for


Trade Services, specifically tailored for Long Term Procurement (LTP) customers.
Enhancements to account settings for easier data management are also included. These
refinements aim to create a more engaging and seamless user experience, driving higher user
satisfaction and increased trading activity.

4.2 React Component-Based Architecture

Ensure efficient updates and scalability of the Arya 4.0 platform.

Arya 4.0 utilizes React's component-based architecture to achieve efficient updates and
scalability. This modular approach allows for quick, isolated updates, ensuring the platform
remains scalable and maintainable as new features are developed and integrated.

4.3 Selenium Java Cucumber Testing Framework

Implement rigorous testing to ensure seamless functionality across browsers and


devices.

Arya.ag's frontend builds undergo rigorous testing using Selenium with Java and the
Cucumber framework. Automation testing scripts verify that new UI components and
functionalities perform seamlessly across different browsers and devices. Selenium's
automation capabilities provide comprehensive coverage and consistent test execution, while
integrating Selenium with Cucumber facilitates the use of behavior-driven development
(BDD) principles, making test scenarios more readable and maintainable.

11
4.4 Enhancing Observability

Enhance observability of website performance and behaviour.

My role in Arya 4.0 involved fortifying observability by instrumenting code on Arya.ag. This
comprehensive approach enables meticulous tracking of performance metrics, including
loading times, interactivity, and visual stability. Critical Core Web Vitals like LCP, FID, and
CLS, along with metrics like TTFB, FCP, TTI, and TBT, are monitored. We've integrated
error tracking mechanisms to log JavaScript errors and monitor API call failures. Leveraging
visualization tools such as Prometheus and Grafana, real-time insights empower proactive
issue resolution. This meticulous instrumentation reflects our commitment to elevating Arya
4.0's performance and user experience.

4.5 Enhanced Performance and User Experience

Monitoring Key Metrics

Continuous monitoring of crucial metrics such as Largest Contentful Paint (LCP), First Input
Delay (FID), and Cumulative Layout Shift (CLS) is imperative for enhancing the
performance and user experience of our React application. These metrics provide valuable
insights into the loading speed, interactivity, and visual stability of our application, allowing
us to identify and address performance bottlenecks effectively.

By closely tracking LCP, FID, and CLS, we can pinpoint areas for optimization and
implement strategies to improve load times, responsiveness, and visual rendering. This
proactive approach enables us to deliver a seamless and engaging user experience, ultimately
leading to increased user satisfaction and retention.

12
5. METHODOLOGY

5.1 Requirements Gathering

• Conducted detailed meetings with stakeholders to understand the business objectives and
user needs for Arya 4.0.

• Gathered requirements for UI redesign and new features tailored to Long Term
Procurement (LTP) customers.

• Documented all functional and non-functional requirements to ensure clarity and


alignment.

5.2 System Design

• Designed a comprehensive UI/UX plan focusing on improving user retention, trading


activity, and overall user experience.

• Utilized wireframes and prototypes created with Figma for iterative feedback and approvals
from stakeholders.

• Architected the frontend using React’s component-based architecture to ensure modularity


and scalability.

5.3 Development

• Implemented new UI components and enhanced account settings using React and Redux
for state management.

• Developed efficient and scalable code, ensuring adherence to best practices and coding
standards.

• Integrated version control with Git and Bitbucket to manage and track code changes.

13
5.4 Testing

• Wrote automation test scripts using Selenium with Java and the Cucumber framework to
ensure cross-browser and cross-device compatibility.

• Utilized behaviour-driven development (BDD) principles to make test scenarios more


readable and maintainable.

• Conducted rigorous testing to identify and rectify issues promptly, ensuring a robust and
user-friendly interface.

Fig 5.1 Testing flowchart

5.5 Instrumentation for Monitoring

• Prom-React Integration: The React application was instrumented using the Prom-React
library. This library facilitates the collection of performance metrics directly within the
application code. These metrics can provide valuable insights into various aspects of the
application's behavior, such as component rendering times and API call durations.

5.6 Performance and Behavior Monitoring

• Prometheus for Data Collection: Prometheus, a time-series database, was used to collect
the metrics instrumented within the application using Prom-React. Prometheus periodically
scrapes these metrics from the application, enabling the storage and analysis of historical
data.

14
• Grafana for Visualization: Grafana, a data visualization tool, was leveraged to create
dashboards that effectively visualize the collected metrics. These dashboards allow for real-
time monitoring of various application performance aspects, enabling quick identification
of potential issues.

5.7 Agile Methodology

• Adopted Agile practices to manage the project, ensuring iterative development and
continuous feedback.

• Conducted regular sprint planning, daily stand-ups, and retrospective meetings to track
progress and address challenges.

• Ensured flexibility and responsiveness to changing requirements and stakeholder feedback


throughout the development cycle.

This structured approach ensured that Arya 4.0 not only met the project goals but also
delivered a high-quality, user-friendly digital grain commerce platform.

15
6. TOOLS AND TECHNOLOGY

6.1 Java
Java is a highly versatile and widely-used programming language known for its platform
independence, performance, and robustness. It was central to backend development in my
projects due to its capability to handle large-scale, high-performance applications. Key
features of Java include:
• Object-Oriented Programming (OOP): Java's OOP principles enable modularity,
reusability, and ease of maintenance, making it ideal for developing complex backend
systems.
• JVM (Java Virtual Machine): The JVM allows Java applications to run on any device or
operating system, enhancing flexibility and scalability.
• Rich Standard Library: Java’s extensive standard library supports a wide range of
functionalities, from data structures and algorithms to networking and concurrency,
streamlining development processes.
• Performance and Efficiency: Java’s Just-In-Time (JIT) compiler and garbage collection
mechanisms optimize runtime performance and memory management, crucial for handling
heavy loads and real-time operations.
• Ecosystem and Tools: Java’s mature ecosystem includes numerous libraries and
frameworks, such as Spring, Hibernate, and Apache Commons, which expedite
development and ensure robustness.

Fig 6.1 Java

16
6.2 GitHub
GitHub is a comprehensive platform for version control and collaboration. In the project,
GitHub was used for:
• Source Code Management: GitLab repositories managed the project's source code,
facilitating collaboration and version control.
• CI/CD Pipelines: GitHub’s integrated CI/CD pipelines automated the testing and
deployment processes, ensuring code quality and accelerating delivery.
• Pull Requests: GitHub’s pull request functionality enabled code reviews, fostering
collaboration and ensuring code quality before integration.
• Issue Tracking: GitHub’s issue tracking system allowed the team to manage tasks, bugs,
and feature requests efficiently.
• Container Registry: GitHub’s built-in container registry streamlined the management of
Docker images, essential for deploying applications

Fig 6.2 GitHub

..
6.3 Grafana
Grafana is an open-source platform for monitoring and observability, used in the project for:
• Data Visualization: Grafana’s rich visualization capabilities allowed the creation of
interactive and informative dashboards, presenting real-time data insights.
• Alerting: Configurable alerts based on predefined thresholds notified the team of critical
issues, enabling proactive management and response.

17
• Integration: Grafana integrates with various data sources, including Prometheus,
InfluxDB, and Elasticsearch, providing a unified view of system metrics.
• Custom Dashboards: The ability to create custom dashboards tailored to specific needs
helped in monitoring different aspects of the application and infrastructure.
• Performance Monitoring: Grafana’s visualizations helped track key performance
indicators (KPIs), ensuring that the system met its performance and reliability goals.

Fig 6.3 Grafana.


.

6.4 React

• Component-Based Architecture: React is built around the concept of reusable


components. These components encapsulate both the UI and the logic required to render
that UI, promoting a modular and scalable approach to building user interfaces.

• Virtual DOM: React utilizes a virtual DOM to efficiently update the UI. Instead of directly
manipulating the browser's DOM, react creates a lightweight representation of the DOM in
memory. When the state of a component changes, react calculates the most efficient way to
update the actual DOM and applies those changes, resulting in better performance.

• Declarative Syntax: React allows developers to describe the desired state of the UI, and
React takes care of updating the DOM to match that state. This declarative approach to
building UIs makes code more predictable, easier to understand, and less error-prone
compared to imperative approaches.

18
• Unidirectional Data Flow: React follows a unidirectional data flow, also known as one-
way data binding. Data flows from parent components to child components via props, and
child components can communicate with parent components through callbacks. This pattern
makes it easier to understand how data changes propagate through the application, leading
to more predictable behaviour.

• Ecosystem and Community: React has a vast ecosystem of libraries, tools, and resources
that complement its core functionality. This includes state management solutions like
Redux and MobX, routing libraries like React Router, and UI component libraries like
Material-UI and Ant Design. Additionally, react has a large and active community of
developers who contribute to its development, share best practices, and provide support
through forums, meetups, and online communities.

Fig 6.4 React

6.5 Selenium

• Cross-Browser Testing: Selenium allows for automated testing of web applications across
multiple browsers, including Chrome, Firefox, Safari, and Internet Explorer. This ensures
that the application behaves consistently across different browsers and helps identify any
browser-specific issues.

• Support for Multiple Programming Languages: Selenium supports multiple


programming languages such as Java, Python, C#, Ruby, and JavaScript. This flexibility

19
allows testers to write automated tests using their preferred programming language, making
it accessible to a wide range of developers and QA engineers.

• Integration with Testing Frameworks: Selenium can be integrated with popular testing
frameworks such as JUnit, TestNG, NUnit, and Mocha. This enables testers to organize and
execute their automated tests more efficiently, leveraging the features provided by these
frameworks such as test case management, assertions, and reporting.

• Dynamic Element Interaction: Selenium provides robust mechanisms for interacting with
dynamic elements on web pages, such as dropdown menus, pop-up windows, and AJAX-
based components. This allows testers to simulate user interactions more accurately and
effectively, leading to more comprehensive test coverage.

• Scalability with Selenium Grid: Selenium Grid is a powerful component of the Selenium
ecosystem that allows for distributed testing across multiple machines and browsers
simultaneously. This enables testers to execute tests in parallel, reducing overall testing
time and increasing efficiency, particularly for large-scale web applications or complex test
suites. Additionally, Selenium Grid supports configuration for different environments,
making it a valuable tool for teams working on projects with diverse testing requirements.

Fig 6.5 Selenium


..
6.6 Cucumber

• Behaviour-Driven Development (BDD) Approach: Cucumber is a BDD tool that


facilitates collaboration between stakeholders (such as business analysts, developers, and
testers) by allowing them to describe the desired behaviour of the system in plain text. This

20
approach helps ensure that everyone involved has a shared understanding of the
requirements and encourages a focus on business value.

• Feature Files: Cucumber tests are written in plain-text feature files using a Gherkin syntax,
which is easy to understand even for non-technical stakeholders. Feature files contain
scenarios written in a human-readable format, describing various use cases and expected
outcomes of the system's behaviour.

• Step Definitions: Cucumber step definitions are written in programming languages such as
Java, Ruby, JavaScript, or Python. These step definitions map the plain-text steps from
feature files to executable code, allowing testers to automate the validation of each step's
behaviour against the application.

• Reusable Step Definitions and Scenario Outlines: Cucumber encourages the creation of
reusable step definitions to avoid duplication and promote maintainability. Additionally,
scenario outlines enable testers to define scenarios with placeholders for parameters,
allowing for more efficient testing of similar scenarios with different inputs.

• Integration with Testing Frameworks: Cucumber integrates seamlessly with popular


testing frameworks such as JUnit, TestNG, NUnit, and others. This integration enables
testers to leverage the features provided by these frameworks, such as test case
management, assertions, and reporting, while using Cucumber for defining and executing
behavior-driven tests.

Fig 6.6 Cucumber

21
6.7 Prometheus

Prometheus excels in collecting metrics from diverse sources, including application


instrumentation, custom scripts, and third-party exporters. This ensures comprehensive
monitoring of both application-specific and system-level metrics.

• Advanced Querying with PromQL: With its powerful query language, PromQL,
Prometheus allows for complex and precise querying of time-series data. Users can
aggregate, filter, and analyse metrics in real-time, aiding in sophisticated performance
troubleshooting.

• Robust Alerting System: Prometheus features an integrated alerting mechanism, enabling


the definition of alert rules based on metric thresholds. Alerts can be sent to various
channels like email and Slack, ensuring immediate notification of potential issues for timely
resolution.

• Seamless Integration with Grafana: Prometheus integrates seamlessly with Grafana, a


leading visualization tool. This combination facilitates the creation of rich, interactive
dashboards for real-time metrics visualization and analysis, enhancing monitoring
capabilities.

• Scalability with Federation Model: Designed for horizontal scalability, Prometheus uses a
federation model to support large-scale, distributed systems. Multiple Prometheus servers
can scrape and aggregate data centrally, accommodating extensive and complex
monitoring needs.

Fig 6.7 Prometheus

22
6.8 Jenkins

Jenkins is a widely-used open-source automation server that enables continuous integration


and continuous delivery (CI/CD). Its benefits in the project include:

Pipeline Automation: Jenkins pipelines automate the building, testing, and deployment of
code, ensuring consistent and repeatable processes.

Integration with VCS: Jenkins integrates seamlessly with version control systems like
GitLab, triggering builds automatically on code commits.

Plugins Ecosystem: Jenkins boasts a vast plugin ecosystem, allowing for the integration of
various tools and customization of the CI/CD process.

Parallel Execution: Jenkins supports parallel execution of tasks, reducing build times and
increasing efficiency.

Monitoring and Notifications: Jenkins provides extensive monitoring and notification


capabilities, keeping the team informed about build statuses and issues in real-time.

Fig 6.8 Jenkins

23
Fig 6.9 Contract Listing

24
Fig 6.10 Usage of React

Fig 6.11 Automation in Arya.ag

25
Fig 6.12 Feature File

Fig 6.13 Step Definition File

26
Fig 6.14 Object File

Fig 6.15 Test Runner File

27
Fig 6.16 Jenkins Integration

Fig 6.17 Monitoring Metrices

28
Fig 6.18 Grafana Dashboard

29
7. OBSERVATIONS AND FINDINGS
.

Positive Impact of UI Redesign

The comprehensive UI redesign for Trade Services, specifically for Long Term Procurement
(LTP) customers, resulted in significantly enhanced user engagement. Users found the
updated interface more intuitive and visually appealing, which increased their interaction
with the platform. Simplified navigation structures and clearer visual cues made accessing
key features easier, improving the overall user experience. Positive feedback from users
highlighted notable enhancements in both aesthetics and usability.

Benefits of React Component-Based Architecture

The adoption of Reacts component-based architecture allowed for efficient updates and
scalability of the Arya 4.0 platform. This modular approach enabled quick, isolated updates,
ensuring new features could be integrated seamlessly without disrupting existing
functionality. The architecture's scalability supported the system’s growth as user needs
evolved. Additionally, the use of reusable components ensured a consistent look and feel
across the platform, contributing to an improved user experience.

Effectiveness of Automated Testing

Using Selenium with Java and the Cucumber framework for automated testing ensured cross-
browser compatibility, verifying that new UI components and functionalities worked
seamlessly across different browsers and devices. Integrating Selenium with Cucumber
facilitated the use of behavior-driven development (BDD) principles, making test scenarios
more readable and maintainable. Automation testing scripts allowed for the quick
identification and rectification of issues, ensuring a robust and user-friendly interface.

30
Enhanced Observability with OpenTelemetry

Implementing OpenTelemetry significantly improved the observability of the Arya.ag


website’s performance and behavior by tracing requests, logging events, and collecting
metrics. Real-time monitoring capabilities provided valuable insights into potential
bottlenecks and system issues, enabling proactive issue resolution. The comprehensive
collection of metrics offered a deeper understanding of system performance and user
interactions, aiding in

Streamlined CI/CD Pipeline

The integration of Jenkins into the project established a robust Continuous Integration and
Continuous Deployment (CI/CD) pipeline. Jenkins automated the building, testing, and
deployment processes, ensuring that code changes were consistently integrated and deployed
with minimal manual intervention. This automation enhanced the development workflow,
reduced the likelihood of errors, and accelerated the release cycle, ultimately leading to more
reliable and efficient software delivery.

Improved User Experience and Account Management

The combination of a comprehensive UI redesign and optimized account settings created a


more engaging and seamless user experience, increasing user satisfaction and engagement.
Enhanced account settings facilitated easier data management, making the platform more
user-friendly. Users reported an overall improved experience, appreciating the intuitive
design and efficient functionality of the platform.

Proactive Issue Detection and Resolution

Enhanced observability and comprehensive testing enabled the team to quickly detect and
resolve issues, minimizing disruptions to the user experience. The proactive issue resolution
strategies improved the system’s reliability, ensuring consistent performance and user
satisfaction.

31
Enhanced Frontend Observability

By leveraging Prometheus and Grafana, the observability of the frontend application is


significantly enhanced. Prometheus collects detailed performance metrics such as page load
times, API call durations, and user interaction events, while Grafana visualizes this data
through intuitive dashboards. This combination provides deep insights into the frontend
performance and user experience, enabling proactive issue detection and informed decision-
making for continuous improvement.

32
8. LIMITATIONS

• Limited Browser Compatibility: While automated testing ensured broad compatibility,

some edge cases on less common browsers or older versions may still experience issues.

• Performance Overhead: Implementing comprehensive code instrumentation with


OpenTelemetry introduced some performance overhead, potentially impacting response
times in high-traffic scenarios.

• Complexity in Maintenance: The integration of multiple tools and frameworks, such as

Selenium, Cucumber, and OpenTelemetry, increased the complexity of the codebase,


requiring specialized knowledge for maintenance.

• Scalability Constraints: Although Reacts architecture supports scalability, certain parts of

the legacy codebase posed challenges, requiring significant refactoring to fully leverage
Reacts capabilities.

• User Adaptation Period: The extensive UI redesign, while improving overall user

experience, required a period of adaptation for existing users familiar with the previous
interface.

• Initial Setup Time: Setting up the automated testing framework and code instrumentation

tools required significant initial time investment, delaying the immediate availability of
these features.

• Dependency Management: Managing scenarios dependencies across various tools and

frameworks, particularly with frequent updates, posed ongoing challenges in maintaining


compatibility and stability.

• Test Coverage Gaps: Despite rigorous testing, certain complex user interactions and rare

edge cases might not have been fully covered, potentially leading to undetected issues.

33
9. FUTURE WORK

• Expand Test Coverage: Increase the scope of automated tests to cover more

functionalities and edge cases, ensuring even greater reliability and stability across all
aspects of the platform.

• Enhance User Personalization: Develop and integrate features that offer personalized

user experiences based on individual user behavior and preferences, further improving
user engagement and satisfaction.

• Integrate Advanced Analytics: Implement advanced analytics tools to gain deeper

insights into user interactions and platform performance, enabling more informed
decision-making and targeted improvements.

• Optimize Mobile Experience: Focus on optimizing the mobile version of the platform,

ensuring a seamless and intuitive user experience across all mobile devices and operating
systems.

• Strengthen Security Measures: Continuously review and enhance security protocols to

protect user data and maintain the integrity of the platform, addressing emerging threats
and vulnerabilities proactively.

34
10. REFERENCES

1. React Documentation: React. "Getting Started. “Available: https://reactjs.org/docs/getting-


started.html

2. Selenium Documentation: Selenium. "Documentation." Available: https://


www.selenium.dev/documentation/

3. Jenkins Documentation: Jenkins. "Documentation." Available: https://www.jenkins.io/


doc/

4. Oracle Java Documentation, The Java Technology Phenomenon. [Online]. Available:


https://docs.oracle.com/javase/tutorial/getStarted/intro/index.html

5. Grafana Labs. "Reference | Grafana documentation." Available: https://grafana.com/docs/


grafana/latest/alerting/configure-notifications/template-notifications/reference/

6. Official Cucumber Documentation: Cucumber. "Documentation." Available: https://


cucumber.io/docs

7. What is Agile? AgileAlliance [Online]. Available: https://www.agilealliance.org/agile101/

35
11. PEER REVIEW

Name of the Vidhi Gupta Roll no. of the


student:(to be student:
102003324
reviewed)
This form has to be submitted by the student whose roll no. will be mentioned in the boxabove.
Handover this to the panel at the time of final presentation.
Title of the project: Digital Grain Commerce
Platform
Name of the company: Aryatech Platforms Private
Limited
Project report Excellent Good Average
(Tick the appropriate)

Project poster Excellent Good Average


(Tick the appropriate)

Project video Excellent Good Average


(Tick the appropriate)

Rate the work done 0 – 10 points (Provide rating here)


→ 10

Give marks to the 0 -5 marks (Provide marks here)


student on the basis →
of the overall 5
performance

Abstract of the project (max. 100 words):


During my industrial internship at Arya.ag, an AgriTech enterprise, I worked with AryaTech Platforms Pvt
Ltd. Arya.ag offers services to farmers, FPOs, banks, and traders, including trading, e-auctions, crop yield
optimization, and financial solutions like commodity-backed loans. As an Associate Software Development
Engineer Intern, I focused on refining the UI oftheir digital grain commerce platform through the Arya 4.0
project. I also conducted Seleniumtesting to ensure software reliability and functionality, automating web
application tests to efficiently identify and fix bugs, ensuring seamless operation across browsers and
devices.
This experience enhanced my understanding of the tech-agriculture integration.

Mention three strengths of the work done:


- The UI redesign in Arya 4.0 greatly improved user engagement and satisfaction.
- Selenium testing ensured seamless cross-browser functionality and efficient bug fixes.
- OpenTelemetry enhanced system observability and enabled proactive issue resolution.
Provide some useful recommendations (It may be some improvements, some suggestions tofurther raise the
quality of the project):
Leverage Machine Learning: Apply predictive analytics for user behavior insights.Enhance User
Feedback: Integrate tools for real-time user feedback.
Name of the evaluator Charu Bansal Roll no. of the 102003333
student: evaluator student:

Signature of the
Evaluator student:

36
37

You might also like