Git Product home page Git Product logo

memes-for-mankind's Introduction

Circle CI Circle CI Waffle.io Stories in Ready

MemesForMankind

Grab a Chromecast, grab some friends, and have a great time making awkward/inappropriate/terrible memes!

Team

  • Product Owner: rmagee88
  • Scrum Master: AJKitson
  • Development Team Members: i-made-that, RVreeland

Table of Contents

  1. Usage
  2. Requirements
  3. Development
    1. Installing Dependencies
    2. Tasks
  4. Team
  5. Contributing

Usage

Use this repo to develop and extend the original game, or use the links below to play the current version. Currently there is a webapp, Android client, and iOS client, all should be linked via the main site page MemesForMankind.com

Requirements

  • Node 0.10.x
  • Google Chrome
  • Google Chromecast

Development

Installing Dependencies

From within the root directory:

sudo npm install -g bower
npm install
bower install

Installing Cairo and image processing dependencies (for the meme creating server)

OS X

Make sure you have Brew/wget:

Brew! (wget instructions on the page)

Install cairo:

follow instructions from source here using the wget command

wget https://raw.githubusercontent.com/LearnBoost/node-canvas/master/install -O - | sh

(if you run into any issues with freetype, this command should help by putting the correct version in the right place, per this issue)

cp /opt/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.6.dylib

(if you're having other issues, you can try this command to change the pkg_config_path, so cairo is looking in the right place)

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig

... if you're still having issues, check out the install instructions here... and be mindful of version #s as they have a habit of becoming obsolete

Set Up for Android Development

  • Make sure you have Android Studio and all the suggested add-ons
  • Make sure you download all the listed dependencies for the Cordova ConnectSDK Android plugin
  • Set up Cordova
  • The client/sender-app-mobile/ directory is where the Cordova project lives
  • Create a Cordova project in that directory
  • You'll likely need to download all the plugins included in the repsective ios and android json files
  • After you set up Android Studio, create a new Android Studio project in and point it to the directory sender-app-mobile/ directory
  • In your Android Studio's build.gradle file make sure the sourceSets include the following otherwise Android Studio won't be able to build your app because it won't have the ConnectSDK otherwise
sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src', 'CordovaLib/src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
  • Finally, you'll need to edit one of the Android libraries to change the behavior when connecting. Out of the box the Android chromecast libraries disconnect whatever is using the Chromecast in order to instantiate their own session. We changed that in the following file so that you can actually join without kicking others off... sadly it's not included in the repo- just documented below: In CastWebAppSession.java, lines 55-57, which we found at the following path (from within our sender-app-mobile dir) platforms/android/Connect-SDK-Android/modules/google_cast/src/com/connectsdk/service/sessions/CastWebAppSession.java
@Override
    public void connect(final ResponseListener<Object> listener) {
        // COMMENT THESE THREE LINES OUT!
        // if (castServiceChannel != null) {
        //     disconnectFromWebApp();
        // }

        castServiceChannel = new CastServiceChannel(launchSession.getAppId(), this);

        try {
            Cast.CastApi.setMessageReceivedCallbacks(service.getApiClient(),
                    castServiceChannel.getNamespace(),
                    castServiceChannel);

            Util.postSuccess(listener, null);
        } catch (IOException e) {
            castServiceChannel = null;

            Util.postError(listener, new ServiceCommandError(0, "Failed to create channel", null));
        }
    }
  • Building the project in Cordova had issues, but building via the Android Studio worked just fine

Set Up for iOS Development

Roadmap

View the project roadmap here

Contributing

See CONTRIBUTING.md for contribution guidelines.

memes-for-mankind's People

Contributors

rmagee88 avatar ajkitson avatar i-made-that 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.