Coder Social home page Coder Social logo

wildaid / o-fish-ios Goto Github PK

View Code? Open in Web Editor NEW
32.0 4.0 15.0 1.26 MB

iOS app for the Officer's Fishery Information Sharing Hub (O-FISH). The mobile app allows fisheries officers to document and share critical information gathered during a routine vessel inspection.

License: Apache License 2.0

Ruby 0.34% Swift 99.66%
swift hacktoberfest hacktoberfest2020 swiftui ios ios-app ios-swift iphone-app mongodb mongodb-database

o-fish-ios's Introduction

WildAid O-FISH iOS App

The WildAid Marine Program works to protect vulnerable marine environments.

O-FISH (Officer Fishery Information Sharing Hub) is a multi-platform application that enables officers to browse and record boarding report data from their mobile devices.

This repo implements the iOS O-FISH app.

Details on installing all applications making up the solution can be found here.

The details behind the data architecture, schema, and partitioning strategy are described in Realm Data and Partitioning Strategy Behind the WildAid O-FISH Mobile Apps.

Prerequisites

This is the iOS Mobile app for O-FISH. To build and use the app, you must first create and configure your serverless backend application using the WildAid O-FISH MongoDB Realm repo. Or you can easily get a login to the existing sandbox environment.

Building and running the app

To build:

  • Find the Realm Application ID (through the MongoDB Realm UI) for your Realm app.
  • Copy o-fish-ios/LocalConstants.swift.tmpl to o-fish-ios/LocalConstants.swift
  • Set the realm_app_id in o-fish-ios/LocalConstants.swift
  • pod install
    • Note: you may need to resolve dependencies by doing pod install --repo-update
  • Build/run in Xcode
    • Select the "Product" menu, then the "Destination" item and choose either:
      • Your physical device, if you have it connected
      • The simulator you want to run the code on (e.g. iPhone 11), from the "iOS Simulators" submenu
    • Select the "Product" menu and then the "Run" item to build and run the application on the destination you just chose.
      • If you do not see your changes in the application, make sure to uninstall the application and try building again.

To be able to login to the app once it is built, you need to create a user in your instance of the O-FISH Realm App.

o-fish-ios's People

Contributors

akaktus avatar am-mongodb avatar artemkutasevych avatar bladebunny avatar czuria1 avatar dependabot[bot] avatar dmitriy-holovnia avatar dmitriyholovnia avatar evnik avatar jkreller avatar jsflax avatar mrlynn avatar mykytakiriushyn avatar nugmanoff avatar o-fish-wildaid avatar sheeri avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

o-fish-ios's Issues

Remove agency from Realm Objects

The agency name was only included in the model Objects as it was required by Realm Sync. Realm no longer has this restriction and so the agency attribute can be removed from the Realm Objects.

Top Bar for searching

For Find Records and New Boardings search: Search should live in the same container as the status bar and navigation; background should be white; When the user taps 'find records' the keyboard should come up with the search field active. Users shouldn’t have to tap the search field again after tapping it on the homepage.

Currently it looks like this:
Screen Shot 2020-10-01 at 4 58 55 PM

It should look like this:
Screen Shot 2020-10-01 at 4 59 15 PM

iOS: MPA functionality proof-of-concept

Have a hard-coded square overlaying some of the map area to represent a Marine Protected Area. This should show up in the map screens, so the officer can see if they are within the borders of the MPA. There is no additional functionality associated with this (e.g. they are still allowed to board a vessel outside the MPA)

Catch weight - default for US

The default should be kilograms for everyone, then next on the list tonnes, then pounds and then metric tons. If the user is in the US (either by location, or they're part of a US agency?) then the default should be pounds

iOS: Offline login on app

It would be great if we could login offline - would have to figure out security implications - but options are: 0) don't actually login, just store credentials (or hashed credentials?) to submit when online.

  1. actual login info is in Realm db - for everyone, for last logged in user, for last 3 logged in users on device.

Review TODOs

As a programmer, I want to see actual state of the code, so need to review and check the TODOs notes in code time after time.

Pre-Boarding search results

When a user clicks 'Board Vessel' and then does a search; if there are no records they get 'No results'. There should also be an option to 'Add new vessel' on that search results page as the first item - whether or not search results have been returned. This way if there are no results - or the desired result is not in the list - the user does not have to go back to the previous page.

Add CI/CD

As a reviewer and contributor I want to see the code build status (builds or not) on PRs and main branch.
Platform: Github Actions.

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.