GithubHelp home page GithubHelp logo

cta-map-journal's Introduction

Train of Thought (AKA CTA Map Journal)

Description

Train of Thought is an iOS app that allows you to tie the journal entries you write while on public transit to the train stations or the trips between them (currently only for the 'L' in Chicago). The app gives you many different convenient ways to select a train station to associate with your journal entry: through a map view, through a current location locator button, and through a list of train stations by train line. The app also displays information about the different train lines accessible through each train station and a map view displaying pins of all train stations, giving the user helpful transit information in addition to a space to reflect.

When reflecting on public transit, sometimes your words aren't enough to capture how you're feeling. That is why user's can also submit up to 3 links to attach to their journal entry. A user could link a playlist, a YouTube video, an image URL, a poem, etc.

If the user selects the emotion analysis option when submitting a journal entry, the app also analyzes the emotion in submitted journal entries and aggregates the information for all train stations or by train station, displaying the analyzed data in a pie chart. The user can control the time interval over which submitted journal entries are analyzed by selecting a start date in settings (only available for all journal entries, not filtered by train station). The user can also customize the colors displayed in the mood charts in settings.

Users have access to their journal entries either in a list of all journal entries or filtered by train station.

Dependencies

Installation

  1. Clone this repository and open the project in XCode.
  2. Add Google Firebase:
    1. Create a Firebase project in your Firebase Console (log in using Google account).
    2. Register your app in the Firebase console using your project's bundle id.
    3. Download the Firebase configuration file from your Firebase console and add it to your project.
    4. Install the firebase-ios-sdk package through Swift Package Manager.
    5. Make sure Firebase is initialized in your app by checking that FirebaseApp.configure() is in CTA_Map_Journal_App.swift in the init().
  3. Create a file Secrets.swift in the CTA-Map-Journal folder.
  4. In Secrets.swift, create a struct called Secrets.
  5. Subscribe to the Emotion Analysis API by Twinword, Inc:
    1. Get your API Key from the Rapid API Developer Dashboard.
    2. In the Secrets struct in Secrets.swift, create a static constant called APIKey declared as the String data type.
    3. Assign APIKey's value to the API Key from Emotion Analysis API as a String. It should look like this:
    import Foundation
    
    struct Secrets {
        static let APIKey: String = "YOUR API KEY HERE"
    }
    
  6. When first running the app, a DomainError will print in console from Firebase asking you to create an index for the firebase query in the EmotionDataViewModel method getAllEmotionData. Follow the url given in the error and build an index in your Firestore database. It may take a few minutes to build.
  7. Create a .gitignore file and add all dependencies as well as the Secrets.swift file and your GoogleService-Info.plist file.
  8. Watch this video

The Train of Thought app was developed by Ada Developers Academy cohort 16 student Ivette Fernandez.

cta-map-journal's People

Contributors

ivettedf avatar

Watchers

 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.