GithubHelp home page GithubHelp logo

ss2016-group2's Introduction

Digitale Dörfer logo

Digitale Dörfer - mobile people’s bus system

Branch Build status Test coverage
Develop Build Status Coverage Status
Master Build Status Coverage Status

Welcome to the Digitale Dörfer!

This project deals with the development of a mobile people’s bus system. The system consists of a mobile app that serves as the people’s bus host system and another mobile app for citizens to use the different people’s busses. It is intended, that the system will be used within the project Digitale Dörfer

Citizen Mobile APP

This repository contains the source code of the CitizenApplication, used by the citizens of the rural areas.

This app is used to get information of buses, like current location and potential delay times, in a given town/village and provide this information to the user of the app. Location of a bus is used to precisely calculate the time of arrival at a given stop.

The application is written in TypeScript utilizes the beta version of the cross-platform development framework Ionic. There is a generated documentation available.

Documents

Can I build this application myself?

Sure, feel free to clone this repository and try to build it locally. To achieve this, you need to do following:

  1. Install the Node.js, the LTS version is fine.

  2. Open a command-line (or shell).

  3. Install the Ionic CLI tools:

    npm install -g ionic@beta (on the Mac OSX use sudo)

  4. Go to the CitizenApp directory.

  5. Install the NPM dependencies:

    npm install

  6. Start the integrated web server:

    ionic serve

  7. You might get a warning to install/upgrade some tools. Use the shown command/s to continue.

  8. The app will open in a browser.

In order to see some data in the application, you'll need to start our mock server. Please follow these steps:

  1. Go to RestServer directory.

  2. Install the NPM dependencies:

    npm install

  3. Start the server:

    node index.js

  4. Have fun!

ss2016-group2's People

Contributors

skaldo avatar captain-red-baron avatar tim284 avatar patrickmuessig avatar joheihannz avatar maybeec avatar themetalone avatar may-bee avatar

Stargazers

 avatar  avatar

Watchers

 avatar James Cloos avatar  avatar  avatar Christian avatar  avatar  avatar  avatar  avatar  avatar  avatar

ss2016-group2's Issues

Data Logic

  • Interface for the application
  • Server access #11
  • local storage
  • update of data sets
  • Connect the DS to the UI @skaldo

Static analysis of the code

As it happens quite often, that we check in code that does not work, a lint setup is needed for the further development.

  • Add lint gulp task
  • Create tslint.json file
  • Adjust the files to fulfill the tslint.json specification

Application structure & developer guide

At the beginning of the code phase, the following tasks needs to be done:

  • Prepare efficient project structure.
  • Write a brief documentation for other developers how to get started with the project.

Weird behaviour of the map component

Reproduction steps:

  1. Open the CitizenApplication
  2. Click on where is my bus
  3. Click on position - the map is displayed correctly
  4. Click on Navigator - the map is not rendered properly, see attached screenshot

Please, strictly follow the reproduction steps.

Please, @mmueller301 try to fix it. If you'll face any difficulties, come over to me.
ScreenshotOK

Rework of the data logic

Due to some issues, we need to adjust the internal architecture of the CitizenDataService and the underlying providers. This issue tracks the the required steps.

To make sure that we keep our group on track, follow these steps:

  1. Develop the working version for one entity
  2. Reuse the code for other entities
  3. Write the test cases (unfortunately we do not have enough experience for TDD)
  4. After all the steps are done, think of generalisation - as we have the tests from the 3rd point, we can quickly find out if it all works even after the optimizations.
  • Prepare new architecture based on the experience gained in the early development stage. @themetalone, @skaldo
  • Prepare an example implementation for one of the entities. @skaldo
  • Extend the implementation for other entities. @themetalone
  • Write the tests. @themetalone (@skaldo)
  • extract interface from ./model objects
  • remove interfaces from CitizenDataService, RestApiProvider and PersistentDataProvider
    #8 #11

Complete code documentation

There are still many methods and classes that need documentation (e.g. PersistentDataProvider.getXY()) . For a nice documentation this missing docs should be added

Your first example bug

This bug is the first example of a bug to work on.
It consists of the following tasks

  • Read the tutorial
  • Add a new wiki entry for the issue
  • Assign the issue to one of your colleguages
  • Change the wiki entry for this issue
  • Leave a comment in the issue tracker that you changed the wiki

Go on with #2

Documentation of the requirements in the mConcAppt document.

Parts of the documents (Only the persons of the parts that are related to the CitizenApp are mentioned here)

  • Stakeholders and Goals | Author: @mmueller301 | Reviewer: @skaldo
  • Personas | Author: @themetalone | Reviewer: (@mmueller301)
  • As-Is Situation | Author: @skaldo | Reviewer: (@mmueller301)
  • System Functions | Author: @skaldo, @themetalone | Reviewer: @mmueller301
  • Interaction Cases | Author: @skaldo, @mmueller301
  • Screen flow | Author: @skaldo | Reviewer: @GSE-Project/group2
  • Mockups | Author: @skaldo | Reviewer: @GSE-Project/group2

Part of the #3

Add more functionality to the map component

Add some methods to

  • add a marker to the map - make it customisable (e.g. color, icon,...)
  • remove a marker
  • move the marker
  • think of other possible functions
  • Document the component (add a UML Class diagram to the document and describe the functionality briefly) I think here can @A0b10 help you.

Map component should be aware of the currently displayed markers, so that we can add e.g. some animations if the marker moves,..
#9

System Tests Iteration 1

Perform the system tests with respect to the wiki.

Document the tests with platform specs, date, time, execution details, expectations and errors in a new wiki page.

Errors should be reported as bugs here asap! (Since we want to be prepared for tomorrow's attestation)

Assigned: @patrickmuessig and @tim284

Related to this one: #45

PersistentDataProvider: Allow Timestamps to be stored

At the moment the PDP is initialized with a timestamp where each entry is set to -2. This would be fine but there is no access to the storage to fetch the last stored timestamp. There isn't even a putTimeStamp method.

  • Add putTimestamp(data: UpdateData):void to PDP
  • Rework the getTimestamps(): UpdateData in PDP
  • Integrate into CitizenDataService without changing the interfaces

Create a config service

At the moment a lot of data is hard coded into your application. We should create a configuration file and an injectable service to read those data.

Update of the Readme

  • Add brief description of the application
  • Describe how to start the application

Testing setup

  • Prepare Gulp Tasks
  • Add missing typings
  • Prepare Karma config file

Part of #3

Review #1

  • Christian will review your first solved issue #1
  • Set the first issue to be fixed in the corresponding milestone.

Injectable Storage Wrapper

The Storage interface and it's subclasses from ionic aren't injectable for some reasons unknown.

But it would be awesome to swap them on demand. So I propose to create some injectable Wrapper classes or an Storage implementation that works as an delegate

Check documents and link them to readme

Please check to have the following documents as well as link them in the readme.

  • component diagram
  • traceability matrix from system functions to component diagram
  • system test specification
  • traceability matrix from system functions to system tests

Switch to the native GoogleMaps

Due to the fact that the application is going to be used in areas with weak cellular reception, we'll have to use the native maps.

Develop equivalent of the map component with following methods:

  • createMap
  • addMarker
  • moveMarker
  • removeMarker

It would be also great to have an interface specified, so that we could swap the native map component with the javascript one. Anyway, we'd need to discuss this point, as it might be just waste of time for our purpose.

@mmueller301 and @skaldo are going to work on this one.

Data Model

Creation of the data objects

  • Bus
  • Line
  • Stop
  • Route

Android/iOS builds

As discussed after the meeting, please try to build the application for Android and perform the system test:

If you encounter any problems on the device, please open new bug issues. If you face any troubles during the build process, describe these here as comments.

Please note, this issue has high priority, so that we can fix the possible issues before the release.

Testing of the Data Logic

This issue was created to track the test relevant commits

Unit Tests

  • CitizenDataService (Representative tests) @themetalone
  • CitizenDataService (Complete Test Suite)
  • RestApiProvider (R) @themetalone
  • RestApiProvider (C)
  • PersistentDataProvider (R) @themetalone
  • PersistentDataProvider (C)

Integration Tests

Undelayed Rest/Storage Api

Delayed Rest/Storage Api

GUI Improvements, presentation layer

  • Implement and improve the UI from mockups.
  • Add the GUI assets from Steffen Hess to the project.
  • Prepare overall style (global colours & other scss variables).
  • Create an icon font from the Steffen's SVG assets.

Part of #3

Bug Detail Page seems to be broken on Android

Used Device: Sony Xperia Z3C with Android 6.0.1

screenshot_20160523-122801 screenshot_20160523-122807

The Stops-List is rendered as aspected but on accessing the Bus-Detail Page only a blank page is displayed. The Map on the Position tab is also missing

Localization of the App

At the moment the CitizenApp is presented in english due to the international development team of the project. The end user will be german seniors.

Task

  • Introduce a localization framework and document the choice
  • Discuss the choice with the team
  • Integrate the framework into the app
  • Create translation files for the german and english languages
  • Review of the approach

Responsible: @tim284 @patrickmuessig
Review: @skaldo, done

Server Access

Subissue of #8

Implement the Interface RestApiServiceProviderInterface

  • Implementation
  • Testing

UML diagram

It would be great to have a overview diagram containing all our classes and their interactions.

Diagram should contain:

  • CDS PDP RDP
  • Models
  • UI (BusDetailPage, StopsPage,...) here include just the most critical ones

See this as an example:
https://github.com/GSE-Project/SS2016-group3/blob/master/Doc/Architecture/Architecture%20-%20Component%20Diagram.pdf
https://github.com/GSE-Project/SS2016-group3/blob/master/Doc/Architecture/
Here is a raw PowerPoint overview:
overall_architecture_overview_v3.pdf

@A0b10 feel free to request help from the developers of the components. If it is too much work, we can split this between other team members.

CI setup

  • Create and adjust .travis.yml for the automated builds.

Enable Traceability

The to-be scenarios in the requirements document should be traceable to your system functions.

So you might add a row in the table of the to-be-scenario:
Refined in system functions: SF_C1, SF_C3

In the SF function table you should have two row like:
Used in To-be-Scenarios: TBS_1, TBS_4
Implemented in Components: Gui, BusPosition

Maps Integration

  • Evaluate different solutions
  • Add Example to Repository
  • Get the example ready to get into the CitizenApp

Travis build for unit tests does not fail

Possibly, you already have seen, that currently the unit-test build is running and although no test are running, you do not get any failing build. Might be worth to have a look at it to gain consistent build results :)

SUMMARY:
✔ 0 tests completed

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.