GithubHelp home page GithubHelp logo

pilot-macos's Introduction

Pilot (macOS)

Build Status Coverage Status Version Twitter

Pilot is a cloud-management application for macOS. Combine your files from Dropbox, Google Drive, Facebook, and more all in one location!

Building Locally

  • Requirements
    • Xcode 8.3 (Swift 3.1)

First, fork this repo on GitHub. Then, clone your forked repo onto your machine.

$ git clone YOUR-FORK-URL

Open up the project in Xcode. Open the Pilot.xcworkspace file, not the Pilot.xcproject file. Press the play button at the top left of the Xcode window to build and then launch the application.

Note: CocoaPods is not required to be installed, as the Pods/ directory is included in the repo. If you wish to update or add new dependencies, you must install CocoaPods.

pilot-macos's People

Contributors

imgbotapp avatar nickeckert avatar rohannagar avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

r1nzlr ehickle

pilot-macos's Issues

Code Coverage

We can use Slather to hook into coveralls and provide us with code coverage reports.

Landing Page Website

We should have a landing page where people can learn more about Pilot as well as download the latest version of the app.

Low priority until we get closer to public release.

Clean up Pods

  • Remove unused Pods
  • Upgrade Pods to latest version
  • Ensure all Pods have a version specified in Podfile
  • Remove pods/ directory that contains the Locksmith dependency

Add logging

Logging errors and information will be helpful in future debugging and will help us move away from printing to the console.

Move endpoints and auth keys to config file

The endpoints and auth credentials to access Thunder and Lightning should not be coded in as constants.

We should have a config file and read in these values at runtime.

All previously synced files are removed after uploading and syncing

After uploading a new file or files, returning to the main view, and clicking the sync button, the error:

Root change detected. New root created at path: /Users/{computer_username}/pilot/{email}/facebook

appears. The root was never changed. All previous files are deleted and only the ones recently uploaded remain in the directory. Additionally, all of the files remain in the collection view, even though they were deleted from the local directory. Pressing sync again does nothing to fix this.

Restarting fixes the visual bug, and only the recently uploaded files show up in the collection view. Then pressing sync again restores all the files by re-downloading them.

This may have something to do with this TODO.

Backend currently uses HTTP, needs migration to HTTPS

This is an issue relating to lines that were added to Pilot/Info.plist:

<key>NSAppTransportSecurity</key>
  <dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
  </dict>

These were added to allow for HTTP access to Lightning, since Lightning does not support HTTPS. These lines should eventually be removed when Lightning migrates to HTTPS only.

All requests should be HTTPS, both Thunder and Lightning.

Change references of username to email

Due to the change from username to email, we need to change all instances in the code of username to email.

This is a UI bug from the user's point of view.

Use a Color Class

For all colors that are used in the UI, they should be kept in a common utility color class.

Travis Build Failing

Since we deleted the unit test target, the build cannot run any tests. We need to solve a problem with the linker not working when compiling with a unit test target.

Clear Selected Files to Upload

After uploading, the files that the user previously selected to be uploaded should be cleared from the list. Currently, when the user goes back to the upload view, the previously selected files will still be in the list.

App Crashes with 'fatal error: Index out of range'

Reproduce steps:

  1. Launch the application.
  2. Login as Testy.
  3. Select any row in the Platform table view.
  4. Click below the last row in the table view.

The app will crash and print fatal error: Index out of range

Access Token Strings should be Optional

In PilotUser.swift, the strings that contain the access tokens for each individual platform can be null. These fields should be optionals. Then, the service check in LoginViewController.swift can check for nil instead of an empty string.

Improve UI Aesthetics

  • Add new app icons
  • Implement consistent style throughout views
  • Implement consistent behavior throughout views
  • Implement user feedback through UI for all non-blocking requests (example: loading bars)

Swift 3 Upgrade

We need to migrate to Swift 3.0 so we can take advantage of new features and stay up to date.

  • Swift Upgrade

In addition, we should upgrade dependencies. This will be necessary to compile with Swift 3. We should do all of these carefully as there are often breaking changes with the Swift 3 support.

  • Alamofire 3.4.1 -> 4.1.0

  • CryptoSwift 0.4.1 -> 0.6.6

  • FileKit 3.0.0 -> 4.0.0

  • HTTPStatusCodes 2.0.3 -> 3.1.0

  • Locksmith 2.0.8 -> 3.0.0 (Looks like there are Swift 3 issues right now)

  • Nimble 4.0.1 -> 5.1.1

  • Realm 1.0.2 -> 2.0.4

  • SwiftyJSON 2.3.2 -> 3.1.3

  • Remove Swinject Dependency

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.