Giter Site home page Giter Site logo

grisu-noe / mobile-app Goto Github PK

View Code? Open in Web Editor NEW
26.0 15.0 11.0 9.16 MB

This project aims to build a modern mobile web-app based on the framework Ionic to improve the functionality of http://mobile.leitstelle122.at/.

License: MIT License

JavaScript 44.31% HTML 52.31% SCSS 3.38%
feuerwehr fire angular ionic-framework cordova ios-app android-app

mobile-app's Introduction

Grisu NÖ - Mobile App MIT License Build Status Join the chat

Apple App Store Google Play Store

The already existing mobile web-app (http://mobile.leitstelle122.at/) of WASTL - shortened for "Warn- und Alarmstufenliste" in German - is used to display several realtime information of currently running fire brigade incidents in Lower Austria. The incident data is kindly provided by the voluntary fire department "Freiwillige Feuerwehr Krems". WASTL is a project by several public sector entities:

Die Warn- und Alarmstufenliste ist ein gemeinsames Projekt des NÖ Landesfeuerwehrverbandes, der NÖ Landesregierung, des Bundesrechenzentrums, des Bezirksfeuerwehrkommandos Krems, des Magistrates der Stadt Krems sowie der Freiwilligen Feuerwehr Krems.

This project aims to build a modern mobile web-app based on the Ionic framework to improve the functionality of the existing solution. The new resulting mobile app should be available in several app stores for different mobile platforms to have a native look and feel.

Contributing

You want to contribute? Great! Thanks for being awesome! Please see the project related issues before you start coding. Pull requests are always welcome!

Coding guidelines

  • 4 spaces for indentation
  • 140 character max. line length
  • In general, try to make your code blend in with the surrounding code.

Setup of development environment

  • Install node.js (v4.x)
  • npm install -g cordova ionic gulp
  • Optional: Install bower command line utility: npm install -g bower
  • Go to project root folder
  • Install required node dependencies: npm install
  • Run Gulp dependency installation: gulp install
    • If you have problems to execute the Gulp task, try to execute git config url."https://".insteadOf git:// before
  • Add platforms
    • ionic platform --noresources --nosave add ios (works only on Mac OSX)
    • ionic platform --noresources --nosave add android (you need to install the Android SDK before)
  • ENJOY!

Useful commands and hints

  • Show app log in console when debugging app on Android device with USB
    • adb logcat -s CordovaLog:D or adb logcat -s chromium:D
  • Start Google Chrome with disabled web security to retrieve data from remote servers
  • Watch SASS changes and compile / move it immediately
    • gulp sass:watch
  • Start web server and open browser. It also watches for code changes.
    • ionic serve
  • Emulate an iOS device with Mac OSX
    • List available emulators: <PROJECT_ROOT>/platforms/ios/cordova/lib/list-emulator-images
    • Start emulator: ionic emulate ios --target="<TARGET>" e.g.: ionic emulate ios --target="iPad (Retina)"

Licencing

Grisu NÖ is licenced under the MIT License (MIT).

mobile-app's People

Contributors

ajgassner avatar pkolmann 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

Watchers

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

mobile-app's Issues

Settings view

A user should be able to change his settings. Settings are:

  • Functionality to directly jump into users preferred district at startup
  • The use of extended incident data (info screen data)
    -- see #13

Refactor loading error message

When there is no internet connection or a timeout occured the data provider returns http error code with value 0. When code 0 is returned a better error message should be printed out.

Write initial unit and integration tests

Unit and integration tests help to improve stability. We should them for controllers and service providers. We should also try to write tests after each new feature.

Incident participation

When user has activated a token for his district he will be able to see 2 buttons on the incident screen:
"I will participate / I won't participate in incident"

  • All users with token of the app / infoscreen in fire department can see the number of participations
  • We need to set up an own server or even better would be to integrate this functionality at Krems (WASTL server)
  • It's a mapping of Token/Cookie and incident. A token belongs to an incident.
  • Double voting is not allowed

Splashscreen plugin

ios has no hiding feature after some time for the splashscreen. lets take a look at the splashscreen plugin of cordova. ngCordova could also be helpful (look at ionic formulas)

Provide clean task

Create a gulp task which cleans the project. Should run before install script.

Extend gulp install script

Gulp install script should be extended to auto-install Cordova plugins, compile scss files, move platform specific assets and so on. This task should speed up the setup of the development environment. Don't forget tu update the docs.

Optional use of extended incident data

To view extended incident data the user needs to activate a given token provided by the API for verification. Then extended data can be loaded (exact incident position, maps, routes, exact dates and times etc., descriptions)

  • the incidents of user's districts should be marked with special icon to mark "extended data available"
  • incident view needs to be adapted (load different template?!?!)

Cleanup of old existing apps

  • Refactor "AusrückScreen"
  • Use old webapp POST mechanism for voting and set link to App Store of Grisu NÖ
    • With info where users can activate tokens

Create initial infrastructure

To start developing, we need a infrastructure with following (can vary) tasks:

  • ✅ Continuous integration system (for automatic tests etc.): Travis CI
  • ✅ Unit and integration testing framework: Jasmine and Karma
  • ✅ Documentation for developers
    • How to checkout
    • Update coding guidelines
    • Use of Emoticons: e.g. ✅ 🔴
  • ✅ Initial ionic commit (app template)

Implement about dialog

This view should contain following things:

  • App name & icon
  • Current version, format MAJOR.MINOR.HOTFIX
  • A short description about the app
  • Contributors if necessary
  • Words of thanks to FF Krems for REST service

Also update the app description in source files!

Rename FF to FW

There are also "Betriebsfeuerwehren", so the term "FF" and "Freiwillige Feuerwehr" should be renamed to "FW" and "Feuerehr". Also comments and descriptions are affected.

Refactor code: doReresh()

The method doRefresh() is used in many controllers and the code is mostly duplicated there. Find a way to define it abstract. Only the controller specific business logic should be implemented in controllers.

Districts are not shown

The reporter has a Samsung S3 Mini with Android 4.2.2

"Auf meinem derzeitigen Reserve-Androiden (S3mini) gibts aber noch ein paar Bugs. Ich kann die Bezirke nicht anklicken... wenn ich das mache erscheint ein paar cm oberhalb ein Rechteck - sonst tut sich nix"

Split sources files

We should split the source files (controllers, templates etc.) into smaller files.

Add "Powered by"

The app is powered by the voluntary fire department Wolfsgraben. Add this to about dialog.

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.