Giter VIP home page Giter VIP logo

cse-110-project's Introduction

Yellow Submarine

--- CSE 110 Project, Winter 2017

Introduction

Yellow Submarine is an Android app that is built for anonymous chatting. Users are like submarine under water, remains anonymous most of the time. User joining chatroom or creating a chatroom is like submarine droping a sonar floater. User/Submarine can then be discovered and discover others nearby.

https://www.youtube.com/watch?v=IS-Es5uFN7M&t=1s

Requirements

  • Android Device running with a minimum API of 22.
  • WiFi Connection.
  • Device Screen Ratio: 16: 9.
  • CPU >= Snapdragon 820 for smooth transition of UI.

How To Install

Build Your Own

  1. Git clone project (https://github.com/i2i2i2/CSE-110-Project/)
  2. Install Meteor.js v1.4.1.3 (https://www.meteor.com/install)
  3. Install Node.js v4.6.2 (https://nodejs.org/en/download/)
  4. Install Android-SDK, api 22 (http://ieng6.ucsd.edu/~cs110x/static/labs/lab3/index.html)
  5. Go to "CSE-110-Project/submarine" folder, run meteor npm install to install all dependencies.
  6. Go to "CSE-110-Project/deploy", run npm install -g [email protected] to install deployment tool.
  7. Modify urls in "CSE-110-Project/mup.json" and "CSE-110-Project/submarine/server/init.js" to use custom server. (http://meteortips.com/deployment-tutorial/digitalocean-part-1/)
  8. mup setup to setup server environment, mup deploy to deploy project onto server. Now server should be up and running. Go to ":" in browser to get a preview.
  9. Go to "CSE-110-Project/submarine", connect android phone to computer and run meteor run android-device --mobile-server=<host>:<port>
  10. Make sure the app is successfully ran on tethered phone at least one, then meteor build <build-output-directory> --server <host>:<port> to produce android binary file. Created apk should have name release-unsigned.apk
  11. Go to and Sign the android binary. keytool -genkey -alias <your-app-name> -keyalg RSA -keysize 2048 -validity 10000 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 release-unsigned.apk <your-app-name> Change name from release-unsigned.apk to yellow-submarine.apk
  12. Install the binary to phone by connecting phone to computer and run adb install yellow-submarine.apk

Use Pre-Built

  1. Install Android-SDK, api 22 (http://ieng6.ucsd.edu/~cs110x/static/labs/lab3/index.html)
  2. Git clone project (https://github.com/i2i2i2/CSE-110-Project/)
  3. Go to "CSE-110-Project/bin/android" folder
  4. Run adb install yellow-submarine.apk should display successful in terminal

How To Run

By Simply Clicking on the App Icon on your phone.

Test Account Credential

We don't have any. Since our app is based on location, without konwing the grading room, we cannot utilize much pre-seeded data in database.

You may always create new account in the system. The account would be brand new.

Known Issues

  1. Changing system time during chatting create devastating effect, please do not change system time during chatting.
  2. Sometimes, the reactive content like profile picture will not load up. There is memory leak of event listener in one of the meteor package that we use. The memory leak of the package sometimes lead to broken reactivtiy. The broken reactivity would make page unresponsive to some database change. Refresh or reopen app solves the issue.
  3. There are unimplemented UI components. Ex, button at chat room profile page, "if show in Calendar" but we have not implement the calendar. Button at user profile page, "If shows recommendation", not implemented either.
  4. The app partially supports web. You may go to 104.236.147.136:3000 for fast preview. But Cordova functions like FCM notification and WifiWizard won't work on webpage. Also, we use url to keep info secret from user. The url hidden in cordova but shown in website would give out extra info that user should not know.

Contributors

  • Chenxu Jiang, i2i2i2
  • Wanhui Qiao, fash97
  • Yuandong Zhang, philzhang01
  • Pengyu Chen, EasonChan236
  • Ruitian Lin, lrt98802
  • Zijin Fu, fuzijin
  • Tianyi Wang, secondkimi
  • Jiaqi Wu, QDQD
  • Shuyi Ni, ShuyiNi
  • Dingcheng Hu, dingchenghu

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.