Aqua Connect - Farm Management - Coding Assignment

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

Farm Management System – Coding Assignment

At Aqua Connect, we strive to build high-quality software that has strong aesthetics (readable and
maintainable), has extensive safety nets to safeguard quality, handles errors gracefully and works as
expected, without breaking down, with varying input. We are looking for people who can write code
that has flexibility built-in, by adhering to the principles of Object-Oriented Development, and can deal
with the real-life constraints/trade-offs while designing a system.

Problem Statement
Aquaconnect want to build a farm management system for shrimp farmers to manage their ponds,
aquaculture and culture history across the culture seasons. We are expecting, the new system to work
on web-based browsers, mobile & IoT devices.

Design and develop an API based system to support multiple aqua farmers front ends (like web, mobile
apps, etc.) and web portal. The system should have the following features at least as part of MVP
(minimum viable product)

Module 1: Farmer Management

Farmer can able to register themselves using their mobile number and should collect the following
details at the time of registration.

1.Farmer Name
2.Farm Name
3.Farm Address
4.PIN Code

Module 2: Pond Management

After Login, farmer can able to add new pond, update pond details and delete pond. Each pond will have
the following details

1.Pond Name
2.Pond Size in hectare.

Usually, a farmer will have 5 – 20 ponds on every farm. But, corporate farmers will have hundreds of
ponds in a single farm; so, they will further group ponds into blocks where each block contains 20- 30
ponds. Please provide the provision in the backend to accommodate corporate farmers where they will
create a block, and then they will assign ponds into that block.

It is important to note that we are not looking for completeness of the code. The focus is on the overall
design and how you are applying the software design principles, patterns, clean code, unit tests, and
other best practices.

Review your code with the following code review checklist before you submit your code to us, to ensure
all required attributes applied to your solution.
• Have you applied OOPs principles to your code?
• Have you applied SOLID principles to your code?
• Have you other software principles like YAGNI and KISS, etc.?
• Have your unit tested your code or did TDD?
• Have you looked at basic refactoring to improve the design of your code?
• Finally, and foremost, are the principles applied in a pragmatic way. Simplicity is the strongest of
the trait of a piece of code.

You might also like