├── app ├── new-delivery-form │ ├── new-delivery-form.module.ts │ ├── new-delivery-form.component.css │ ├── new-delivery-form.component.html │ └── new-delivery-form.component.ts ├── app.component.html ├── constant.ts ├── App_Resources │ ├── iOS │ │ ├── Assets.xcassets │ │ │ ├── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ ├── icon-83.5@2x.png │ │ │ │ └── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ └── Contents.json │ │ │ ├── LaunchScreen.Center.imageset │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ ├── LaunchScreen-Center@2x.png │ │ │ │ └── Contents.json │ │ │ └── LaunchScreen.AspectFill.imageset │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ ├── LaunchScreen-AspectFill@2x.png │ │ │ │ └── Contents.json │ │ ├── build.xcconfig │ │ ├── Info.plist │ │ └── LaunchScreen.storyboard │ └── Android │ │ ├── src │ │ └── main │ │ │ ├── res │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ ├── drawable-hdpi │ │ │ │ ├── icon.png │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── icon.png │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── icon.png │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── drawable-xhdpi │ │ │ │ ├── icon.png │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── icon.png │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── icon.png │ │ │ │ ├── logo.png │ │ │ │ └── background.png │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ └── AndroidManifest.xml │ │ └── app.gradle ├── assets │ └── images │ │ └── naruto-runner-cropped-bw.png ├── app.component.ts ├── package.json ├── types.ts ├── main.ts ├── home │ ├── home.component.css │ ├── home.component.html │ ├── home-routing.module.ts │ ├── home.component.js │ ├── home-routing.module.js │ ├── home.component.ts │ ├── home.module.ts │ └── home.module.js ├── main.js ├── app.component.js ├── app.css ├── app-routing.module.js ├── app-routing.module.ts ├── app.module.js ├── new_delivery_home │ ├── new-delivery-home.component.css │ ├── new-delivery-home.component.html │ └── new-delivery-home.component.ts └── app.module.ts ├── references.d.ts ├── README.md ├── tsconfig.json ├── .gitignore └── package.json /app/new-delivery-form/new-delivery-form.module.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/constant.ts: -------------------------------------------------------------------------------- 1 | export class Constant { 2 | public static WALLET_KEY: string = "walletKey"; 3 | } -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /references.d.ts: -------------------------------------------------------------------------------- 1 | /// Needed for autocompletion and compilation. -------------------------------------------------------------------------------- /app/assets/images/naruto-runner-cropped-bw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/assets/images/naruto-runner-cropped-bw.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/values-v21/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3d5afe 4 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png -------------------------------------------------------------------------------- /app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from "@angular/core"; 2 | 3 | @Component({ 4 | selector: "ns-app", 5 | templateUrl: "app.component.html" 6 | }) 7 | export class AppComponent { } 8 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-hdpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-ldpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-ldpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-mdpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png -------------------------------------------------------------------------------- /app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "android": { 3 | "v8Flags": "--expose_gc", 4 | "forceLog": true 5 | }, 6 | "main": "main.js", 7 | "name": "tns-template-blank-ng", 8 | "version": "3.1.1" 9 | } -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/telosprotocol/eu-hackaton-delivery-app/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #F5F5F5 4 | #757575 5 | #33B5E5 6 | #272734 7 | -------------------------------------------------------------------------------- /app/types.ts: -------------------------------------------------------------------------------- 1 | export interface IDelivery { 2 | status?: deliveryStatus 3 | id?: string 4 | initiator?: string 5 | deliverer?: string 6 | from: string 7 | to: string 8 | description: string 9 | tokens: number 10 | } 11 | 12 | type deliveryStatus = "OPEN" | "IN_PROGRESS" | "COMPLETED" 13 | -------------------------------------------------------------------------------- /app/main.ts: -------------------------------------------------------------------------------- 1 | // this import should be first in order to load some required settings (like globals and reflect-metadata) 2 | import { platformNativeScriptDynamic } from "nativescript-angular/platform"; 3 | import { enableProdMode } from '@angular/core'; 4 | 5 | import { AppModule } from "./app.module"; 6 | 7 | enableProdMode(); 8 | platformNativeScriptDynamic().bootstrapModule(AppModule); 9 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/home/home.component.css: -------------------------------------------------------------------------------- 1 | .home-panel{ 2 | /*vertical-align: top; only for dev purposes*/ 3 | vertical-align: top; 4 | font-size: 20px; 5 | margin: 15em; 6 | } 7 | 8 | #home-logo-img { 9 | height: 500px; 10 | } 11 | 12 | #home-next-btn { 13 | /*margin: 100px;*/ 14 | text-transform: capitalize; 15 | } 16 | 17 | #home-wallet-input { 18 | /*margin: 150px;*/ 19 | } 20 | -------------------------------------------------------------------------------- /app/App_Resources/Android/app.gradle: -------------------------------------------------------------------------------- 1 | // Add your native dependencies here: 2 | 3 | // Uncomment to add recyclerview-v7 dependency 4 | //dependencies { 5 | // compile 'com.android.support:recyclerview-v7:+' 6 | //} 7 | 8 | android { 9 | defaultConfig { 10 | generatedDensities = [] 11 | applicationId = "__PACKAGE__" 12 | } 13 | aaptOptions { 14 | additionalParameters "--no-version-vectors" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/home/home.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/main.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | // this import should be first in order to load some required settings (like globals and reflect-metadata) 4 | var platform_1 = require("nativescript-angular/platform"); 5 | var core_1 = require("@angular/core"); 6 | var app_module_1 = require("./app.module"); 7 | core_1.enableProdMode(); 8 | platform_1.platformNativeScriptDynamic().bootstrapModule(app_module_1.AppModule); 9 | -------------------------------------------------------------------------------- /app/new-delivery-form/new-delivery-form.component.css: -------------------------------------------------------------------------------- 1 | .form-new-delivery-address { 2 | /*vertical-align: top; only for dev purposes*/ 3 | vertical-align: top; 4 | margin-top: 100em; 5 | width: 90%; 6 | } 7 | 8 | TextField { 9 | margin: 5em; 10 | } 11 | 12 | #btn-finish-delivery-input { 13 | /*vertical-align: top; only for dev purposes*/ 14 | vertical-align: top; 15 | margin-top: 10em; 16 | width: 80%; 17 | text-transform: capitalize; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /app/app.component.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | var core_1 = require("@angular/core"); 4 | var AppComponent = /** @class */ (function () { 5 | function AppComponent() { 6 | } 7 | AppComponent = __decorate([ 8 | core_1.Component({ 9 | selector: "ns-app", 10 | templateUrl: "app.component.html" 11 | }) 12 | ], AppComponent); 13 | return AppComponent; 14 | }()); 15 | exports.AppComponent = AppComponent; 16 | -------------------------------------------------------------------------------- /app/home/home-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from "@angular/core"; 2 | import { Routes } from "@angular/router"; 3 | import { NativeScriptRouterModule } from "nativescript-angular/router"; 4 | 5 | import { HomeComponent } from "./home.component"; 6 | 7 | const routes: Routes = [ 8 | { path: "", component: HomeComponent } 9 | ]; 10 | 11 | @NgModule({ 12 | imports: [NativeScriptRouterModule.forChild(routes)], 13 | exports: [NativeScriptRouterModule] 14 | }) 15 | export class HomeRoutingModule { } 16 | -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchScreen-Center.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchScreen-Center@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchScreen-AspectFill.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchScreen-AspectFill@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /app/App_Resources/iOS/build.xcconfig: -------------------------------------------------------------------------------- 1 | // You can add custom settings here 2 | // for example you can uncomment the following line to force distribution code signing 3 | // CODE_SIGN_IDENTITY = iPhone Distribution 4 | // To build for device with XCode 8 you need to specify your development team. More info: https://developer.apple.com/library/prerelease/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html 5 | // DEVELOPMENT_TEAM = YOUR_TEAM_ID; 6 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 7 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Blockchain Package Delivery System - Frontend 2 | 3 | > This repo was created for the [Hack to the Moon](https://hacktothemoon.com/) hackathon on the 29th of September 2019 in Prague. 4 | 5 | Our idea was to create a simple package delivery system based on [TOP network](https://www.topnetwork.org/) blockchain. 6 | 7 | ## Contributors: 8 | - [Miguel Rey Lopez](https://github.com/migreylopez) 9 | - [Alex Roig](https://github.com/keponer) 10 | - [Alberto Mora Plata](https://github.com/albermorap) 11 | - [Ahmed Toubar](https://github.com/toubar/) 12 | -------------------------------------------------------------------------------- /app/app.css: -------------------------------------------------------------------------------- 1 | /* 2 | In NativeScript, the app.css file is where you place CSS rules that 3 | you would like to apply to your entire application. Check out 4 | http://docs.nativescript.org/ui/styling for a full list of the CSS 5 | selectors and properties you can use to style UI components. 6 | 7 | /* 8 | For example, the following CSS rule changes the font size of all UI 9 | components that have the btn class name. 10 | */ 11 | 12 | /* 13 | In many cases you may want to use the NativeScript core theme instead 14 | of writing your own CSS rules. For a full list of class names in the theme 15 | refer to http://docs.nativescript.org/ui/theme. 16 | */ 17 | @import '~nativescript-theme-core/css/core.light.css'; 18 | -------------------------------------------------------------------------------- /app/home/home.component.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | var core_1 = require("@angular/core"); 4 | var HomeComponent = /** @class */ (function () { 5 | function HomeComponent() { 6 | } 7 | HomeComponent.prototype.ngOnInit = function () { 8 | }; 9 | HomeComponent = __decorate([ 10 | core_1.Component({ 11 | selector: "Home", 12 | moduleId: module.id, 13 | templateUrl: "./home.component.html", 14 | styleUrls: ["./home.component.css"] 15 | }), 16 | __metadata("design:paramtypes", []) 17 | ], HomeComponent); 18 | return HomeComponent; 19 | }()); 20 | exports.HomeComponent = HomeComponent; 21 | -------------------------------------------------------------------------------- /app/app-routing.module.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | var core_1 = require("@angular/core"); 4 | var router_1 = require("nativescript-angular/router"); 5 | var routes = [ 6 | { path: "", redirectTo: "/home", pathMatch: "full" }, 7 | { path: "home", loadChildren: "./home/home.module#HomeModule" } 8 | ]; 9 | var AppRoutingModule = /** @class */ (function () { 10 | function AppRoutingModule() { 11 | } 12 | AppRoutingModule = __decorate([ 13 | core_1.NgModule({ 14 | imports: [router_1.NativeScriptRouterModule.forRoot(routes)], 15 | exports: [router_1.NativeScriptRouterModule] 16 | }) 17 | ], AppRoutingModule); 18 | return AppRoutingModule; 19 | }()); 20 | exports.AppRoutingModule = AppRoutingModule; 21 | -------------------------------------------------------------------------------- /app/home/home-routing.module.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | var core_1 = require("@angular/core"); 4 | var router_1 = require("nativescript-angular/router"); 5 | var home_component_1 = require("./home.component"); 6 | var routes = [ 7 | { path: "", component: home_component_1.HomeComponent } 8 | ]; 9 | var HomeRoutingModule = /** @class */ (function () { 10 | function HomeRoutingModule() { 11 | } 12 | HomeRoutingModule = __decorate([ 13 | core_1.NgModule({ 14 | imports: [router_1.NativeScriptRouterModule.forChild(routes)], 15 | exports: [router_1.NativeScriptRouterModule] 16 | }) 17 | ], HomeRoutingModule); 18 | return HomeRoutingModule; 19 | }()); 20 | exports.HomeRoutingModule = HomeRoutingModule; 21 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es5", 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "noEmitHelpers": true, 8 | "noEmitOnError": true, 9 | "lib": [ 10 | "es6", 11 | "dom", 12 | "es2015.iterable" 13 | ], 14 | "baseUrl": ".", 15 | "paths": { 16 | "*": [ 17 | "./node_modules/tns-core-modules/*", 18 | "./node_modules/*" 19 | ], 20 | "~/*": [ 21 | "app/*" 22 | ] 23 | } 24 | }, 25 | "exclude": [ 26 | "node_modules", 27 | "platforms", 28 | "typings", 29 | "**/*.aot.ts", 30 | "additional-models" 31 | ] 32 | } -------------------------------------------------------------------------------- /app/app-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from "@angular/core"; 2 | import { Routes } from "@angular/router"; 3 | import { NativeScriptRouterModule } from "nativescript-angular/router"; 4 | import { NewDeliveryHomeComponent } from './new_delivery_home/new-delivery-home.component'; 5 | import {NewDeliveryFormComponent} from "~/new-delivery-form/new-delivery-form.component"; 6 | 7 | const routes: Routes = [ 8 | { path: "", redirectTo: "/home", pathMatch: "full" }, 9 | { path: "home", loadChildren: "./home/home.module#HomeModule" }, 10 | { path: "deliveryHome", component: NewDeliveryHomeComponent }, 11 | { path: "new-delivery-form", component: NewDeliveryFormComponent}, 12 | ]; 13 | 14 | @NgModule({ 15 | imports: [NativeScriptRouterModule.forRoot(routes)], 16 | exports: [NativeScriptRouterModule] 17 | }) 18 | export class AppRoutingModule { } 19 | -------------------------------------------------------------------------------- /app/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from "@angular/core"; 2 | import * as appSettings from "tns-core-modules/application-settings"; 3 | import {Constant} from "~/constant"; 4 | import {RouterExtensions} from "nativescript-angular"; 5 | 6 | @Component({ 7 | selector: "Home", 8 | moduleId: module.id, 9 | templateUrl: "./home.component.html", 10 | styleUrls: ["./home.component.css"] 11 | }) 12 | export class HomeComponent implements OnInit { 13 | private walletText: string; 14 | 15 | constructor(private routerExtensions: RouterExtensions) { 16 | 17 | } 18 | 19 | ngOnInit(): void { 20 | } 21 | 22 | setWallet() { 23 | appSettings.setString(Constant.WALLET_KEY, this.walletText); 24 | console.log("LOG: Wallet key has been saved: " + (this.walletText)); 25 | this.routerExtensions.navigate(["/deliveryHome"], { clearHistory: true }); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | platforms 3 | hooks 4 | tags 5 | **/*.js.map 6 | **/*.metadata.json 7 | 8 | /nativescript-angular/**/*.d.ts 9 | /nativescript-angular/**/*.js 10 | 11 | !/nativescript-angular/global.d.ts 12 | !/nativescript-angular/postinstall.js 13 | !/nativescript-angular/hooks/**/*.js 14 | !/nativescript-angular/gulpfile.js 15 | !/nativescript-angular/zone-js/dist/*.js 16 | 17 | .tscache 18 | .nvm 19 | .vscode 20 | .DS_Store 21 | npm-debug.log 22 | nativescript-angular*.tgz 23 | package-lock.json 24 | 25 | # Apps' JS files 26 | tests/app/**/*.js 27 | tests/test-output.txt 28 | ng-sample/app/**/*.js 29 | 30 | # Webpack configuration files 31 | webpack.config.js 32 | tsconfig.esm.json 33 | tsconfig.tns.json 34 | 35 | # IDEs and editors 36 | /.idea 37 | .project 38 | .classpath 39 | .c9/ 40 | *.launch 41 | .settings/ 42 | 43 | # IDE - VSCode 44 | .vscode/* 45 | !.vscode/settings.json 46 | !.vscode/tasks.json 47 | !.vscode/launch.json 48 | !.vscode/extensions.json -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 14 | 15 | 16 | 19 | 20 | 23 | -------------------------------------------------------------------------------- /app/app.module.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | var core_1 = require("@angular/core"); 4 | var nativescript_module_1 = require("nativescript-angular/nativescript.module"); 5 | var app_routing_module_1 = require("./app-routing.module"); 6 | var app_component_1 = require("./app.component"); 7 | var AppModule = /** @class */ (function () { 8 | function AppModule() { 9 | } 10 | AppModule = __decorate([ 11 | core_1.NgModule({ 12 | bootstrap: [ 13 | app_component_1.AppComponent 14 | ], 15 | imports: [ 16 | nativescript_module_1.NativeScriptModule, 17 | app_routing_module_1.AppRoutingModule 18 | ], 19 | declarations: [ 20 | app_component_1.AppComponent 21 | ], 22 | schemas: [ 23 | core_1.NO_ERRORS_SCHEMA 24 | ] 25 | }) 26 | ], AppModule); 27 | return AppModule; 28 | }()); 29 | exports.AppModule = AppModule; 30 | -------------------------------------------------------------------------------- /app/new_delivery_home/new-delivery-home.component.css: -------------------------------------------------------------------------------- 1 | .btn-new-delivery { 2 | /*vertical-align: top; only for dev purposes*/ 3 | vertical-align: bottom; 4 | horizontal-align: center; 5 | margin: 10em; 6 | text-transform: none; 7 | width: 60%; 8 | } 9 | 10 | .page-layout { 11 | padding: 20em; 12 | margin: 10em; 13 | } 14 | 15 | .list-group-item { 16 | justify-content: space-between; 17 | } 18 | 19 | .open-deliveries-table-header { 20 | justify-content: space-between; 21 | font-weight: 500; 22 | font-family: "Arial Rounded MT Bold"; 23 | } 24 | 25 | 26 | .lbl-your-deliveries { 27 | margin: 30em; 28 | font-size: 30em; 29 | vertical-align: top; 30 | text-align: center; 31 | font-weight: 500; 32 | text-transform: capitalize; 33 | font-family: "Roboto Regular"; 34 | } 35 | 36 | .list-delivery-tokens { 37 | order: 1; 38 | } 39 | 40 | .list-delivery-from { 41 | order: 2; 42 | } 43 | 44 | .list-delivery-to { 45 | order: 3; 46 | } 47 | 48 | .list-delivery-status { 49 | order: 4; 50 | align-content: flex-end; 51 | } 52 | 53 | 54 | -------------------------------------------------------------------------------- /app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule, NgModuleFactoryLoader, NO_ERRORS_SCHEMA } from "@angular/core"; 2 | import { NativeScriptModule } from "nativescript-angular/nativescript.module"; 3 | 4 | import { AppRoutingModule } from "./app-routing.module"; 5 | import { AppComponent } from "./app.component"; 6 | import { NewDeliveryHomeComponent } from "./new_delivery_home/new-delivery-home.component"; 7 | import {NativeScriptUIDataFormModule} from "nativescript-ui-dataform/angular"; 8 | import {NativeScriptFormsModule} from "nativescript-angular"; 9 | import {NewDeliveryFormComponent} from "~/new-delivery-form/new-delivery-form.component"; 10 | 11 | @NgModule({ 12 | bootstrap: [ 13 | AppComponent 14 | ], 15 | imports: [ 16 | NativeScriptModule, 17 | AppRoutingModule, 18 | NativeScriptUIDataFormModule, 19 | NativeScriptFormsModule 20 | ], 21 | declarations: [ 22 | AppComponent, 23 | NewDeliveryHomeComponent, 24 | NewDeliveryFormComponent 25 | ], 26 | schemas: [ 27 | NO_ERRORS_SCHEMA 28 | ] 29 | }) 30 | export class AppModule { } 31 | -------------------------------------------------------------------------------- /app/new-delivery-form/new-delivery-form.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/new_delivery_home/new-delivery-home.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/home/home.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core"; 2 | import { NativeScriptCommonModule } from "nativescript-angular/common"; 3 | import { NativeScriptUISideDrawerModule } from "nativescript-ui-sidedrawer/angular"; 4 | import { NativeScriptUIListViewModule } from "nativescript-ui-listview/angular"; 5 | import { NativeScriptUICalendarModule } from "nativescript-ui-calendar/angular"; 6 | import { NativeScriptUIChartModule } from "nativescript-ui-chart/angular"; 7 | import { NativeScriptUIDataFormModule } from "nativescript-ui-dataform/angular"; 8 | import { NativeScriptUIAutoCompleteTextViewModule } from "nativescript-ui-autocomplete/angular"; 9 | import { NativeScriptUIGaugeModule } from "nativescript-ui-gauge/angular"; 10 | import { NativeScriptFormsModule } from "nativescript-angular/forms"; 11 | 12 | import { HomeRoutingModule } from "./home-routing.module"; 13 | import { HomeComponent } from "./home.component"; 14 | 15 | @NgModule({ 16 | imports: [ 17 | NativeScriptUISideDrawerModule, 18 | NativeScriptUIListViewModule, 19 | NativeScriptUICalendarModule, 20 | NativeScriptUIChartModule, 21 | NativeScriptUIDataFormModule, 22 | NativeScriptUIAutoCompleteTextViewModule, 23 | NativeScriptUIGaugeModule, 24 | NativeScriptCommonModule, 25 | HomeRoutingModule, 26 | NativeScriptFormsModule 27 | ], 28 | declarations: [ 29 | HomeComponent 30 | ], 31 | schemas: [ 32 | NO_ERRORS_SCHEMA 33 | ] 34 | }) 35 | export class HomeModule { } 36 | -------------------------------------------------------------------------------- /app/new-delivery-form/new-delivery-form.component.ts: -------------------------------------------------------------------------------- 1 | import {Component, OnInit} from "@angular/core"; 2 | import {RouterExtensions} from "nativescript-angular"; 3 | import {IDelivery} from "~/types"; 4 | import axios from "axios"; 5 | import * as appSettings from "application-settings"; 6 | import {Constant} from "~/constant"; 7 | import {TextField} from "tns-core-modules/ui/text-field"; 8 | 9 | @Component({ 10 | selector: "new-delivery-form", 11 | moduleId: module.id, 12 | templateUrl: "./new-delivery-form.component.html", 13 | styleUrls: ['./new-delivery-form.component.css'] 14 | }) 15 | 16 | export class NewDeliveryFormComponent { 17 | 18 | private from: string; 19 | private to: string; 20 | private description: string; 21 | private tokens: number; 22 | 23 | onButtonTap = () => { 24 | this.postNewDelivery(); 25 | }; 26 | 27 | postNewDelivery = () => { 28 | const newDeliveryJson = { 29 | privateKey: appSettings.getString(Constant.WALLET_KEY), 30 | tokens: this.tokens, 31 | description: this.description, 32 | from: this.from, 33 | to: this.to, 34 | }; 35 | axios.post(`https://backstreet-hodlers.herokuapp.com/deliveries`, newDeliveryJson) 36 | .then((res) => { 37 | console.log(res.status); 38 | console.log("success!"); 39 | }) 40 | .catch((err) => { 41 | console.log("Could not get list of deliveries, ERR: ", err.toString()); 42 | }) 43 | }; 44 | } 45 | -------------------------------------------------------------------------------- /app/App_Resources/iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiresFullScreen 28 | 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 29 | 30 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /app/home/home.module.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | var core_1 = require("@angular/core"); 4 | var common_1 = require("nativescript-angular/common"); 5 | var angular_1 = require("nativescript-ui-sidedrawer/angular"); 6 | var angular_2 = require("nativescript-ui-listview/angular"); 7 | var angular_3 = require("nativescript-ui-calendar/angular"); 8 | var angular_4 = require("nativescript-ui-chart/angular"); 9 | var angular_5 = require("nativescript-ui-dataform/angular"); 10 | var angular_6 = require("nativescript-ui-autocomplete/angular"); 11 | var angular_7 = require("nativescript-ui-gauge/angular"); 12 | var forms_1 = require("nativescript-angular/forms"); 13 | var home_routing_module_1 = require("./home-routing.module"); 14 | var home_component_1 = require("./home.component"); 15 | var HomeModule = /** @class */ (function () { 16 | function HomeModule() { 17 | } 18 | HomeModule = __decorate([ 19 | core_1.NgModule({ 20 | imports: [ 21 | angular_1.NativeScriptUISideDrawerModule, 22 | angular_2.NativeScriptUIListViewModule, 23 | angular_3.NativeScriptUICalendarModule, 24 | angular_4.NativeScriptUIChartModule, 25 | angular_5.NativeScriptUIDataFormModule, 26 | angular_6.NativeScriptUIAutoCompleteTextViewModule, 27 | angular_7.NativeScriptUIGaugeModule, 28 | common_1.NativeScriptCommonModule, 29 | home_routing_module_1.HomeRoutingModule, 30 | forms_1.NativeScriptFormsModule 31 | ], 32 | declarations: [ 33 | home_component_1.HomeComponent 34 | ], 35 | schemas: [ 36 | core_1.NO_ERRORS_SCHEMA 37 | ] 38 | }) 39 | ], HomeModule); 40 | return HomeModule; 41 | }()); 42 | exports.HomeModule = HomeModule; 43 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 18 | 19 | 21 | 22 | 23 | 31 | 32 | 34 | 35 | 36 | 42 | 43 | 45 | 46 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "NativeScript Application", 3 | "license": "SEE LICENSE IN ", 4 | "readme": "NativeScript Application", 5 | "repository": "", 6 | "nativescript": { 7 | "id": "org.nativescript.blankng", 8 | "tns-ios": { 9 | "version": "6.1.0" 10 | }, 11 | "tns-android": { 12 | "version": "6.1.2" 13 | } 14 | }, 15 | "dependencies": { 16 | "@angular/animations": "8.2.4", 17 | "@angular/common": "8.2.4", 18 | "@angular/compiler": "8.2.4", 19 | "@angular/core": "8.2.4", 20 | "@angular/forms": "8.2.4", 21 | "@angular/http": "8.0.0-beta.10", 22 | "@angular/platform-browser": "8.2.4", 23 | "@angular/platform-browser-dynamic": "8.2.4", 24 | "@angular/router": "8.2.4", 25 | "@progress-nativechat/nativescript-nativechat": "2.0.4", 26 | "axios": "^0.19.0", 27 | "kinvey-nativescript-sdk": "4.2.3", 28 | "nativescript-accelerometer": "2.0.1", 29 | "nativescript-angular": "8.2.1", 30 | "nativescript-background-http": "3.4.1", 31 | "nativescript-camera": "4.5.0", 32 | "nativescript-geolocation": "5.1.0", 33 | "nativescript-image": "2.2.5", 34 | "nativescript-imagepicker": "7.0.0", 35 | "nativescript-intl": "3.0.0", 36 | "nativescript-iqkeyboardmanager": "1.5.1", 37 | "nativescript-social-share": "1.5.2", 38 | "nativescript-theme-core": "1.0.6", 39 | "nativescript-ui-autocomplete": "5.1.0", 40 | "nativescript-ui-calendar": "5.0.0", 41 | "nativescript-ui-chart": "6.0.0", 42 | "nativescript-ui-dataform": "5.0.0", 43 | "nativescript-ui-gauge": "5.0.0", 44 | "nativescript-ui-listview": "7.0.4", 45 | "nativescript-ui-sidedrawer": "7.0.1", 46 | "reflect-metadata": "0.1.13", 47 | "rxjs": "6.5.2", 48 | "rxjs-compat": "6.5.2", 49 | "tns-core-modules": "~6.1.0", 50 | "zone.js": "0.10.2" 51 | }, 52 | "devDependencies": { 53 | "@angular/compiler-cli": "8.2.4", 54 | "@ngtools/webpack": "8.3.2", 55 | "nativescript-dev-webpack": "1.2.0", 56 | "tns-platform-declarations": "6.1.0", 57 | "typescript": "3.5.3" 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "29x29", 5 | "idiom" : "iphone", 6 | "filename" : "icon-29.png", 7 | "scale" : "1x" 8 | }, 9 | { 10 | "size" : "29x29", 11 | "idiom" : "iphone", 12 | "filename" : "icon-29@2x.png", 13 | "scale" : "2x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "icon-29@3x.png", 19 | "scale" : "3x" 20 | }, 21 | { 22 | "size" : "40x40", 23 | "idiom" : "iphone", 24 | "filename" : "icon-40@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "40x40", 29 | "idiom" : "iphone", 30 | "filename" : "icon-40@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "57x57", 35 | "idiom" : "iphone", 36 | "filename" : "icon-57.png", 37 | "scale" : "1x" 38 | }, 39 | { 40 | "size" : "57x57", 41 | "idiom" : "iphone", 42 | "filename" : "icon-57@2x.png", 43 | "scale" : "2x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "icon-60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "icon-60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "29x29", 59 | "idiom" : "ipad", 60 | "filename" : "icon-29.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "29x29", 65 | "idiom" : "ipad", 66 | "filename" : "icon-29@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "40x40", 71 | "idiom" : "ipad", 72 | "filename" : "icon-40.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "40x40", 77 | "idiom" : "ipad", 78 | "filename" : "icon-40@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "50x50", 83 | "idiom" : "ipad", 84 | "filename" : "icon-50.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "50x50", 89 | "idiom" : "ipad", 90 | "filename" : "icon-50@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "72x72", 95 | "idiom" : "ipad", 96 | "filename" : "icon-72.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "72x72", 101 | "idiom" : "ipad", 102 | "filename" : "icon-72@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "76x76", 107 | "idiom" : "ipad", 108 | "filename" : "icon-76.png", 109 | "scale" : "1x" 110 | }, 111 | { 112 | "size" : "76x76", 113 | "idiom" : "ipad", 114 | "filename" : "icon-76@2x.png", 115 | "scale" : "2x" 116 | }, 117 | { 118 | "size" : "83.5x83.5", 119 | "idiom" : "ipad", 120 | "filename" : "icon-83.5@2x.png", 121 | "scale" : "2x" 122 | } 123 | ], 124 | "info" : { 125 | "version" : 1, 126 | "author" : "xcode" 127 | } 128 | } -------------------------------------------------------------------------------- /app/App_Resources/iOS/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "extent" : "full-screen", 5 | "idiom" : "iphone", 6 | "subtype" : "736h", 7 | "filename" : "Default-736h@3x.png", 8 | "minimum-system-version" : "8.0", 9 | "orientation" : "portrait", 10 | "scale" : "3x" 11 | }, 12 | { 13 | "extent" : "full-screen", 14 | "idiom" : "iphone", 15 | "subtype" : "736h", 16 | "filename" : "Default-Landscape@3x.png", 17 | "minimum-system-version" : "8.0", 18 | "orientation" : "landscape", 19 | "scale" : "3x" 20 | }, 21 | { 22 | "extent" : "full-screen", 23 | "idiom" : "iphone", 24 | "subtype" : "667h", 25 | "filename" : "Default-667h@2x.png", 26 | "minimum-system-version" : "8.0", 27 | "orientation" : "portrait", 28 | "scale" : "2x" 29 | }, 30 | { 31 | "orientation" : "portrait", 32 | "idiom" : "iphone", 33 | "filename" : "Default@2x.png", 34 | "extent" : "full-screen", 35 | "minimum-system-version" : "7.0", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "extent" : "full-screen", 40 | "idiom" : "iphone", 41 | "subtype" : "retina4", 42 | "filename" : "Default-568h@2x.png", 43 | "minimum-system-version" : "7.0", 44 | "orientation" : "portrait", 45 | "scale" : "2x" 46 | }, 47 | { 48 | "orientation" : "portrait", 49 | "idiom" : "ipad", 50 | "filename" : "Default-Portrait.png", 51 | "extent" : "full-screen", 52 | "minimum-system-version" : "7.0", 53 | "scale" : "1x" 54 | }, 55 | { 56 | "orientation" : "landscape", 57 | "idiom" : "ipad", 58 | "filename" : "Default-Landscape.png", 59 | "extent" : "full-screen", 60 | "minimum-system-version" : "7.0", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "orientation" : "portrait", 65 | "idiom" : "ipad", 66 | "filename" : "Default-Portrait@2x.png", 67 | "extent" : "full-screen", 68 | "minimum-system-version" : "7.0", 69 | "scale" : "2x" 70 | }, 71 | { 72 | "orientation" : "landscape", 73 | "idiom" : "ipad", 74 | "filename" : "Default-Landscape@2x.png", 75 | "extent" : "full-screen", 76 | "minimum-system-version" : "7.0", 77 | "scale" : "2x" 78 | }, 79 | { 80 | "orientation" : "portrait", 81 | "idiom" : "iphone", 82 | "filename" : "Default.png", 83 | "extent" : "full-screen", 84 | "scale" : "1x" 85 | }, 86 | { 87 | "orientation" : "portrait", 88 | "idiom" : "iphone", 89 | "filename" : "Default@2x.png", 90 | "extent" : "full-screen", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "orientation" : "portrait", 95 | "idiom" : "iphone", 96 | "filename" : "Default-568h@2x.png", 97 | "extent" : "full-screen", 98 | "subtype" : "retina4", 99 | "scale" : "2x" 100 | }, 101 | { 102 | "orientation" : "portrait", 103 | "idiom" : "ipad", 104 | "extent" : "to-status-bar", 105 | "scale" : "1x" 106 | }, 107 | { 108 | "orientation" : "portrait", 109 | "idiom" : "ipad", 110 | "filename" : "Default-Portrait.png", 111 | "extent" : "full-screen", 112 | "scale" : "1x" 113 | }, 114 | { 115 | "orientation" : "landscape", 116 | "idiom" : "ipad", 117 | "extent" : "to-status-bar", 118 | "scale" : "1x" 119 | }, 120 | { 121 | "orientation" : "landscape", 122 | "idiom" : "ipad", 123 | "filename" : "Default-Landscape.png", 124 | "extent" : "full-screen", 125 | "scale" : "1x" 126 | }, 127 | { 128 | "orientation" : "portrait", 129 | "idiom" : "ipad", 130 | "extent" : "to-status-bar", 131 | "scale" : "2x" 132 | }, 133 | { 134 | "orientation" : "portrait", 135 | "idiom" : "ipad", 136 | "filename" : "Default-Portrait@2x.png", 137 | "extent" : "full-screen", 138 | "scale" : "2x" 139 | }, 140 | { 141 | "orientation" : "landscape", 142 | "idiom" : "ipad", 143 | "extent" : "to-status-bar", 144 | "scale" : "2x" 145 | }, 146 | { 147 | "orientation" : "landscape", 148 | "idiom" : "ipad", 149 | "filename" : "Default-Landscape@2x.png", 150 | "extent" : "full-screen", 151 | "scale" : "2x" 152 | } 153 | ], 154 | "info" : { 155 | "version" : 1, 156 | "author" : "xcode" 157 | } 158 | } -------------------------------------------------------------------------------- /app/new_delivery_home/new-delivery-home.component.ts: -------------------------------------------------------------------------------- 1 | import {ItemEventData} from "tns-core-modules/ui/list-view" 2 | import {AfterViewInit, Component} from "@angular/core"; 3 | import {RouterExtensions} from "nativescript-angular"; 4 | import axios from "axios"; 5 | import {IDelivery} from "~/types" 6 | import * as dialogs from "tns-core-modules/ui/dialogs"; 7 | import * as appSettings from "application-settings"; 8 | import {Constant} from "~/constant"; 9 | import { request, getFile, getImage, getJSON, getString } from "tns-core-modules/http"; 10 | 11 | @Component({ 12 | selector: "new-delivery-home", 13 | moduleId: module.id, 14 | templateUrl: "./new-delivery-home.component.html", 15 | styleUrls: ['./new-delivery-home.component.css'] 16 | }) 17 | 18 | export class NewDeliveryHomeComponent implements AfterViewInit { 19 | 20 | // TODO enable API call and disable dummy data 21 | private deliveries: Array = []; 22 | 23 | constructor(private routerExtensions: RouterExtensions) { 24 | } 25 | 26 | ngAfterViewInit() { 27 | console.log("LOG: NewDeliveryHomeComponent just re-rendered"); 28 | // TODO enable GET list of deliveries HTTP call and disable dummy data 29 | this.deliveries = this.getDeliveries(); 30 | }; 31 | 32 | getDeliveries = (): IDelivery[] => { 33 | console.log("LOG: getting list of deliveries...."); 34 | const url: string = `https://backstreet-hodlers.herokuapp.com/deliveries/open?privateKey=${appSettings.getString(Constant.WALLET_KEY)}`; 35 | console.log(url); 36 | let listOfDeliveries: IDelivery[] = []; 37 | axios.get(url) 38 | .then((res) => { 39 | console.log("got the list of deliveries!"); 40 | console.log(res.data); 41 | listOfDeliveries = res.data; 42 | }) 43 | .catch((err) => { 44 | console.log("FAILED!"); 45 | console.log(err.toString()); 46 | listOfDeliveries = []; 47 | }); 48 | return listOfDeliveries; 49 | }; 50 | 51 | takeDelivery = (id: number, address: string) => { 52 | axios.put(`https://backstreet-hodlers.herokuapp.com/deliveries/${id}/assign?privateKey=${appSettings.getString(Constant.WALLET_KEY)}`) 53 | .then((res) => { 54 | // TODO GET list of deliveries 55 | // this.deliveries = this.getDeliveries(); 56 | }) 57 | .catch((err) => { 58 | console.log("Could not get list of deliveries, ERR: ", err.toString()); 59 | }) 60 | }; 61 | 62 | // dummy data till REST works 63 | // deliveries: IDelivery[] = [ 64 | // { 65 | // status: "OPEN", 66 | // id: "1", 67 | // initiator: "alberto", 68 | // deliverer: "alex", 69 | // from: "Prague 1", 70 | // to: "Prague 2", 71 | // description: "I would like to deliver documents to my lawyer", 72 | // tokens: 5, 73 | // }, 74 | // { 75 | // status: "OPEN", 76 | // id: "2", 77 | // initiator: "rey", 78 | // deliverer: "toubar", 79 | // from: "Prague 1", 80 | // to: "Prague 3", 81 | // description: "I would like to deliver an item tomorrow", 82 | // tokens: 6, 83 | // }, 84 | // { 85 | // status: "OPEN", 86 | // id: "3", 87 | // initiator: "rey", 88 | // deliverer: "toubar", 89 | // from: "Prague 1", 90 | // to: "Prague 3", 91 | // description: "I would like to deliver a TV at next week", 92 | // tokens: 2, 93 | // }, 94 | // { 95 | // status: "OPEN", 96 | // id: "4", 97 | // initiator: "rey", 98 | // deliverer: "toubar", 99 | // from: "Prague 1", 100 | // to: "Prague 4", 101 | // description: "I would like to deliver an item from my friend in Prague 1", 102 | // tokens: 3, 103 | // }, 104 | // { 105 | // status: "OPEN", 106 | // id: "5", 107 | // initiator: "rey", 108 | // deliverer: "toubar", 109 | // from: "Prague 5", 110 | // to: "Prague 6", 111 | // description: "I would like to deliver something in the evening", 112 | // tokens: 6 113 | // }, 114 | // { 115 | // status: "OPEN", 116 | // id: "6", 117 | // initiator: "rey", 118 | // deliverer: "toubar", 119 | // from: "Prague 1", 120 | // to: "Prague 7", 121 | // description: "I would like to deliver my notes to my friend in Prague 7", 122 | // tokens: 9, 123 | // }, 124 | // { 125 | // status: "OPEN", 126 | // id: "7", 127 | // initiator: "rey", 128 | // deliverer: "toubar", 129 | // from: "Prague 3", 130 | // to: "Prague 7", 131 | // description: "I would like to deliver a bag to my mom", 132 | // tokens: 5, 133 | // }, 134 | // { 135 | // status: "OPEN", 136 | // id: "8", 137 | // initiator: "rey", 138 | // deliverer: "toubar", 139 | // from: "Prague 4", 140 | // to: "Prague 1", 141 | // description: "I would like to deliver my notes to my friend in Prague 7", 142 | // tokens: 3, 143 | // }, 144 | // { 145 | // status: "OPEN", 146 | // id: "9", 147 | // initiator: "rey", 148 | // deliverer: "toubar", 149 | // from: "Prague 8", 150 | // to: "Prague 2", 151 | // description: "I would like to deliver an item from my friend in Prague 1", 152 | // tokens: 8, 153 | // }, 154 | // { 155 | // status: "OPEN", 156 | // id: "10", 157 | // initiator: "rey", 158 | // deliverer: "toubar", 159 | // from: "Prague 1", 160 | // to: "Prague 1", 161 | // description: "I would like to deliver documents to my lawyer", 162 | // tokens: 3, 163 | // }, 164 | // // { 165 | // // status: "COMPLETED", 166 | // // id: "11", 167 | // // initiator: "rey", 168 | // // deliverer: "toubar", 169 | // // from: "alberto", 170 | // // to: "rey", 171 | // // description: "Novakovych 8", 172 | // // tokens: 12, 173 | // // }, 174 | // // { 175 | // // status: "IN_PROGRESS", 176 | // // id: "12", 177 | // // initiator: "rey", 178 | // // deliverer: "toubar", 179 | // // from: "alberto", 180 | // // to: "rey", 181 | // // description: "Novakovych 8", 182 | // // tokens: 12, 183 | // // }, 184 | // // { 185 | // // status: "OPEN", 186 | // // id: "13", 187 | // // initiator: "rey", 188 | // // deliverer: "toubar", 189 | // // from: "alberto", 190 | // // to: "rey", 191 | // // description: "Novakovych 8", 192 | // // tokens: 12, 193 | // // }, 194 | // // { 195 | // // status: "IN_PROGRESS", 196 | // // id: "14", 197 | // // initiator: "rey", 198 | // // deliverer: "toubar", 199 | // // from: "alberto", 200 | // // to: "rey", 201 | // // description: "Novakovych 8", 202 | // // tokens: 12, 203 | // // }, 204 | // ]; 205 | 206 | onNewDeliveryButtonTap = () => { 207 | this.routerExtensions.navigate(["/new-delivery-form"], {clearHistory: false}); 208 | }; 209 | 210 | onItemTap = (args: ItemEventData) => { 211 | dialogs.confirm({ 212 | // TODO - change dummy data to HTTP response 213 | title: "Delivery details", 214 | message: this.deliveries[args.index].description, 215 | okButtonText: "Take delivery", 216 | cancelButtonText: "Cancel", 217 | }).then((willDeliver: boolean) => { 218 | willDeliver ? 219 | this.takeDelivery(args.index, appSettings.getString(Constant.WALLET_KEY)) 220 | : 221 | console.log("delivery will not be taken"); 222 | }); 223 | } 224 | 225 | } 226 | --------------------------------------------------------------------------------