Inspiration

I studied Agricultural Extension and Management and Agricultural Technology, and I served my NYSC year at the Ministry of Agriculture in Abeokuta. I saw how many farming decisions come down to simple numbers: how much fertilizer to buy, how far apart to plant, and whether a season will actually make a profit. Many farmers decide by guesswork because clear tools are hard to find, and they are rarely in the farmer's own language or units. I wanted to put those tools in a farmer's pocket.

What it does

FarmMate is a global farming toolkit for Android. It gives farmers:

  • Crop Intelligence: guides with spacing, fertilizer, growing period, water, soil, temperature and season for [number] crops.
  • Calculators: farm profit, fertilizer needs and plant spacing, in metric or imperial units (hectares or acres, centimetres or inches, kilograms or pounds).
  • Livestock and fish farming guides.
  • History: saved calculations stay on the phone.
  • Languages: English, French, Spanish and Hindi.
  • Accounts are optional: farmers can use the app as a guest or sign up with email.

How I built it

I built FarmMate as a native Android app in Kotlin with Jetpack Compose and Material 3, using Android Studio and Gradle. Firebase Authentication handles sign-up, email verification, login, password reset and account deletion. Google AdMob shows the ads. Saved history, language and unit choices are stored on the device with SharedPreferences and JSON. I drew custom vector icons for the dashboard, and added a side menu and a notification bell. I built the website on Google sites: I used an AI assistant to help me write and debug parts of the code, and I reviewed and tested the result myself.]

Challenges I ran into

  • Going global: the first version was Nigeria-first. Supporting other countries meant adding unit conversion (metric and imperial), a language system, and more currencies.
  • Translating the app: I needed a way to translate every screen without rewriting each one, so I built a small translation layer that falls back to English when a text isn't translated yet.
  • Build errors: a long app file, a memory crash in Gradle, and mismatched data files taught me to read compiler errors carefully and fix them one at a time.
  • Store rules: Google Play requires a privacy policy, an account-deletion page, a Data safety form, an Advertising ID declaration and a testing period for new accounts.
  • Safe ads: test ads in debug builds so I never click my own live ads.

Accomplishments that I'm proud of

  • I took an idea from my agricultural background to a working app with accounts, ads, calculators and guides.
  • The app works in four languages and two unit systems.
  • I prepared it for real release: signed builds, privacy policy, data deletion and store listing.
  • I did it myself as a first-time Android developer.

What I learned

  • How to structure an app in Jetpack Compose: screens, navigation, state and saved data.
  • How Firebase sign-in works end to end, including email verification and deleting an account.
  • How localization and unit conversion work in a real product.
  • How to prepare an app for Google Play: release builds, signing, privacy rules, ads policies and testing tracks.
  • That the work after the code is as big as the code itself.

What's next for FARMMATE

  • Publish on Google Play and collect feedback from real farmers.
  • Translate the crop, livestock and fish guide details, not just the interface.
  • Add more languages such as Hausa, Yoruba, Igbo, Swahili and Portuguese.
  • Sync saved calculations to the cloud so they follow a farmer to a new phone.
  • Add weather, local market prices and planting-calendar reminders.
  • Build an iPhone version and a simple web version.

Built With

Share this project:

Updates