#100DaysOfCodeChallenge - Crop Management Information System
Tags: flutter, firebase
Published: 2021-06-23 20:14:39

## Introduction

This is 0 of 100 blogs about my [100DaysOfCode](https://www.100daysofcode.com) Experience. This challenge have two main rules;
1. Code minimum an hour everyday for the next 100 days.
2. Tweet your progress every day with the #100DaysOfCode hashtag.

For the next hundred days I will post an article on my progress.

## Crop Management Information System (CMIS) Project

CMIS is intended to benefit crop farmers and crop extension officers who are responsible for providing technical advice to crop farmers. Features of CMIS includes;
* Farmer Registration
* Farm Registration
* Crop Production Data Collection
* Crop Production Analytics
* Crop Growth Monitoring Notification
* Crop Growth Warning Notification
* Overdue Farm Visit Notification
* Weekly Upcoming Farm Visit Notification

The [Flutter SDK](https://www.flutter.dev) will be used to build the android and web app. [Firebase](https://www.firebase.google.com) will be used as the backend.

At the end of the 100 days, I intend to be proficient enough with firebase and flutter to build real world application within reasonable time and have an application that will be useful to Farmers and Crop Extension Officers.

## Architecture Design

The MVC+S architecture design was chosen for reasons outline in gskinner [Flutter: State Management using an MVC+S Architecture](https://blog.gskinner.com/archives/2020/09/flutter-state-management-with-mvcs.html#comment-404366) blog post. I have also decided to implement gskinner [Flutter: WidgetView – A Simple Separation of Layout and Logic](https://blog.gskinner.com/archives/2020/02/flutter-widgetview-a-simple-separation-of-layout-and-logic.html) for the View of the MVC+S architecture.

## Day 0 of 100

I have already Started this project but only the authentication features have been completed;
* Sign Up
* Sign In
* Sign Out
* Forget Password
* Change Password
* Change Email

## Screenshots

Sign in page.
![Sign in screen](https://drive.google.com/uc?id=15X_z4BOKnNzeKb03mC0Uka-wr38yAsdz)

Sign up Page.
![Sign up screen](https://drive.google.com/uc?id=1oEz7xTaYgN7F4034a8EwD2dbeowXb-ib)

Forgot password dialog.
![Sign up screen](https://drive.google.com/uc?id=1OuveFTuO7x33duY2IQNeBDQYXaKBOuKn)

Password reset notification dialog.
![Sign up screen](https://drive.google.com/uc?id=1sr8QASGxPr6os0VxhirqDQbYAQ7-fx-m)

Change email dialog.
![Sign up screen](https://drive.google.com/uc?id=1IFgqOxZp40MxQbF1pt4srtC64230LFMF)

Change email success dialog
![Sign up screen](https://drive.google.com/uc?id=1J5-wFPy-KalhRsftdE6H0TOLMx59nc6N)

Change Password Dialog.
![Sign up screen](https://drive.google.com/uc?id=1Z55sQ7VjIJ-67YXvLUHnwwbaqRdtKv6s)

Change Password success dialog
![Sign up screen](https://drive.google.com/uc?id=1vACHOVLdMvzXVuIGUgu75kU8VC3w-DSd)

APP Drawer.
![App Drawer](https://drive.google.com/uc?id=1Opkkv9h5Ceid90fOYywXsRTtBck9Wyii)

## Connect with me

Thank you for reading my blog. Feel free to subscribe below to join me on the #100DaysOfCodeChallenge or connect with me on [LinkedIn](https://www.linkedin.com/in/curtlycritchlow/) and [Twitter](https://twitter.com/CritchlowCurtly).