GithubHelp home page GithubHelp logo

open-source-agriculture / soil_logr Goto Github PK

View Code? Open in Web Editor NEW
16.0 3.0 0.0 1.77 MB

The soil mate app provides a simple and convenient way to collect soil data at sample locations in the field. The Soil Mate app is targeted across multiple industries, including agriculture, environmental science, geology, and mining. The current version of the app collects soil texture data.

Home Page: https://open-source-agriculture.github.io/2021-01-09-soil-mate-texture-app/

License: GNU General Public License v3.0

Kotlin 0.17% Swift 0.47% Objective-C 0.04% Dart 99.31%
soil soil-science soil-properties soil-mapping agriculture geology environmental-science

soil_logr's Introduction

Open-Source-Agriculture

soil_logr's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

soil_logr's Issues

[Feature Request] Sync with FarmOS server

Problem

Data Structures

We believe that farm data is precious and that the user should have full control over their data. The default method the export the data is to attach a .csv to an email (or app of your choosing); no server required.

These are, however, limitations to this; including:

not being able to change the device
not being able to share data between users
limitations on the size of the data (no hi-res images)

Solution

I want to give the user the option to add a FarmOS server by simply adding in the settings. Something like:

Sync with a FarmOS server
URL:
Username
Password

And as a bonus, they can use the FarmOS UI to manage their data.

Make logo assets instead of links

Screenshot from 2021-01-26 11-51-55

════════ Exception caught by image resource service ════════════════════════════════════════════════
The following NetworkImageLoadException was thrown resolving an image codec:
HTTP request failed, statusCode: 404, https://images-ext-1.discordapp.net/external/8237GLHWkjvA13Gii2N8rvtXKmHD9AXy61iH8J1goEs/https/lh3.googleusercontent.com/proxy/gUpjlzvXpX3rjvG4gONdObt1P2QTSSU_-g3OmglGlLLvfvQtaTqq-KbNaXp65kaZzZZ9KDV5oW97HC62uNTSQZtyGfDQpVyY2PEiewUXc5-ZIljG43IvCxv7jvdoYHXujgE1QSuDSCJg4LJPVpTtzLvnRC9m?width=428&height=428

When the exception was thrown, this was the stack: 
#0      NetworkImage._loadAsync (package:flutter/src/painting/_network_image_io.dart:99:9)
<asynchronous suspension>
Open-Source-Agriculture/soil_mate_old#1      NetworkImage.load (package:flutter/src/painting/_network_image_io.dart:50:14)
Open-Source-Agriculture/soil_mate_old#2      ImageProvider.resolveStreamForKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:504:13)
Open-Source-Agriculture/soil_mate_old#3      ImageCache.putIfAbsent (package:flutter/src/painting/image_cache.dart:355:22)
...
Image provider: NetworkImage("https://images-ext-1.discordapp.net/external/8237GLHWkjvA13Gii2N8rvtXKmHD9AXy61iH8J1goEs/https/lh3.googleusercontent.com/proxy/gUpjlzvXpX3rjvG4gONdObt1P2QTSSU_-g3OmglGlLLvfvQtaTqq-KbNaXp65kaZzZZ9KDV5oW97HC62uNTSQZtyGfDQpVyY2PEiewUXc5-ZIljG43IvCxv7jvdoYHXujgE1QSuDSCJg4LJPVpTtzLvnRC9m?width=428&height=428", scale: 1.0)
Image key: NetworkImage("https://images-ext-1.discordapp.net/external/8237GLHWkjvA13Gii2N8rvtXKmHD9AXy61iH8J1goEs/https/lh3.googleusercontent.com/proxy/gUpjlzvXpX3rjvG4gONdObt1P2QTSSU_-g3OmglGlLLvfvQtaTqq-KbNaXp65kaZzZZ9KDV5oW97HC62uNTSQZtyGfDQpVyY2PEiewUXc5-ZIljG43IvCxv7jvdoYHXujgE1QSuDSCJg4LJPVpTtzLvnRC9m?width=428&height=428", scale: 1.0)
════════════════════════════════════════════════════════════════════════════════════════════════════

[BUG] image preview

no bugs with app functionality but when testing the previews don't change from before and after deleting all samples

[FEATURE REQUEST] Add an image to the Log

The user should be given the option to add an image to a sample (Log). As we are attaching them to an email (zip file?) they should be low res; but perhaps a high res option should be included in the future - so design for that.

Bug on credits page

════════ Exception caught by rendering library ═════════════════════════════════════════════════════
The following assertion was thrown during layout:
A RenderFlex overflowed by 84 pixels on the bottom.

The relevant error-causing widget was:
Column file:///home/kipling/Programs/soil_mate/lib/screens/credits.dart:33:16
The overflowing RenderFlex has an orientation of Axis.vertical.
The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and black striped pattern. This is usually caused by the contents being too big for the RenderFlex.

Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the RenderFlex to fit within the available space instead of being sized to their natural size.
This is considered an error condition because it indicates that there is content that cannot be seen. If the content is legitimately bigger than the available space, consider clipping it with a ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex, like a ListView.

The specific RenderFlex in question is: RenderFlex#15610 relayoutBoundary=up2 OVERFLOWING
... needs compositing
... parentData: offset=Offset(17.0, 17.0) (can use size)
... constraints: BoxConstraints(0.0<=w<=377.4, 0.0<=h<=378.9)
... size: Size(377.4, 378.9)
... direction: vertical
... mainAxisAlignment: spaceEvenly
... mainAxisSize: max
... crossAxisAlignment: center
... verticalDirection: down
◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤
════════════════════════════════════════════════════════════════════════════════════════════════════

Check if iOS has access to a mailing app

final bool canSend = await FlutterMailer.canSendMail();

  if(!canSend && Platform.isIOS) {
    final url = 'mailto:?body=$body&subject=$subject';
    if (await canLaunch(url)) {
      await launch(url);
    } else {
      print("FlutterMailer");
      createAlertDialog(BuildContext context) {
        return showDialog(context: context, builder: (context) {
          return AlertDialog(
            title: Text('Delete all samples'),
            content: Text('Are you sure you want to delete?'),
            actions: [
              MaterialButton(
                child: Text('Ok'),
                onPressed: () {
                  // Navigator.of(context).pop(SampleList());
                },
              ),

            ],
          );
        });
      }
      throw 'Could not launch $url';
    }
  }

Fixed Text Boxes

The text boxes on the add sample page dont display properly at the moment

Export data

Change it to look like a share button. I also wonder if we should put everything in a zip file, or if we should have some image file compressions because the images are too large at the moment

Custom Widgets, admin, and maintenance.

The current code has too many lines in one file. An enhancement would be to make a widgets folder and then add the custom widgets to that folder, to minimize lines of code in the screens.
Further, logic should be moved so that it is not directly inside the buttons.

[Admin] Soil LogR ad campaign

We should do an ad campaign for the Soil LogR app after the 0.3.1 release.

I think we should focus on Linked in so that we can target industries including:

  • Agriculture
  • GeoScience/geology
  • Environmental science

Content can include:

  • Video
  • Poster
  • Gif
  • ...

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.