Code Monkey home page Code Monkey logo

worldofpayback's Introduction

PAYBACK Coding Challenge

A new App named WorldOfPAYBACK is planned to be released. One of its first features involves displaying a list of transactions, and a corresponding detail screen for each.

"WorldOfPAYBACK" App - Requirements

Please create a SwiftUI App based on the following User-Stories:

  • As a user of the App, I want to see a list of (mocked) transactions. Each item in the list displays bookingDate, partnerDisplayName, transactionDetail.description, value.amount and value.currency. (see attached JSON File)
  • As a user of the App, I want to have the list of transactions sorted by bookingDate from newest (top) to oldest (bottom).
  • As a user of the App, I want to get feedback when loading of the transactions is ongoing or an Error occurs. (Just delay the mocked server response for 1-2 seconds and randomly fail it)
  • As a user of the App, I want to see an error if the device is offline.
  • As a user of the App, I want to filter the list of transactions by category.
  • As a user of the App, I want to see the sum of filtered transactions somewhere on the Transaction-list view. (Sum of value.amount)
  • As a user of the App, I want to select a transaction and navigate to its details. The details-view should just display partnerDisplayName and transactionDetail.description.
  • As a user of the App, I like to see nice UI in general. However, for this coding challenge fancy UI is not required.

"WorldOfPAYBACK" App - General Information

  • Attached you will find a JSON File (PBTransactions.json) which contains a list of transactions. Just assume that the Backend is not ready yet and the App needs to work with mocked data meanwhile. For now, the Backend-Team has just provided the name of the endpoints for the new Service:

  • The App is planned to be maintained over a long period of time. New Features will be added by a growing Team in the near future.

  • The App is planned to be available worldwide supporting many different languages and region related formatting (e.g. Date and Number formatting).

  • The Feature you are currently working on is the first out of many. Multiple Teams will add more features in the near future (overall Team size is about 8 Developers and growing). The following list of Features (which are not part of this coding challenge) will give you an idea of what's planned for the upcoming releases.

    1. "Feed"-Feature: Displays different, user-targeted content (displayed via webviews, images, ads etc.). Note: It is also planned to display the sum of all Transactions from the "Transaction"-Feature.
    2. "Online Shopping"-Feature: Lists PAYBACK Partners and gives the possibility to jump to their App/Website.
    3. "Settings"-Feature: Gives the possibility to adjust general Settings.

PAYBACK Environment

  • We are currently in a transition phase of moving from UIKit to SwiftUI.
  • We use Reactive programming and are currently moving from a self built Reactive-Library to Combine. For asynchronous code we are moving to Swift Concurrency.
  • We try to keep to as few external dependencies as possible. However, we use Swift Package Manager when we need to add a dependency.
  • We are using Jenkins to build, test and deploy our Apps.

Disclaimer

All rights reserved, 2022 Loyalty Partner GmbH. Any transfer to third parties and/or reproduction is not permitted.

worldofpayback's People

Contributors

aliyasineser avatar

Watchers

 avatar Eren Kundakçı avatar  avatar

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.