Giter Site home page Giter Site logo

stream-app's Introduction

Stream

We are an Android application aimed to help students work efficiently and effectively in group projects.

Team Members

  1. Kevin Wong
  2. Robyn Castro
  3. Catherine Lee
  4. Omar Mohammed
  5. Rohini Goyal
  6. Jane MacGillivray
  7. Xingyu Tao

User Manual

How to find Documents

Issues with the application

  • Bugs are listed under Issues tab on GitHub

Developer Section

How to find source code

How to check out source code and run project

  1. Install Android Studio on the computer
  2. Set up Emulator or have an Android Device
  3. Clone the repository from GitHub by: git clone https://github.com/omarbakker/Stream-app on Terminal/ Git Bash
  4. Open the project on Android Studio and wait for Gradle to sync
  5. Run the Android app on emulator or plug in Android Device and run app on device by clicking the Run button (green play button). All dependencies are handled by Gradle and the application can be run straight from cloning this repository

How to run tests

  1. Clone the repo from GitHub by: git clone https://github.com/omarbakker/Stream-app on Terminal/ Git Bash
  2. On Terminal or Git Bash type in the command git fetch --all to get all branches of the repository
  3. Open the project on Android Studio and wait for Gradle to sync
  4. Go to directory app/src/androidTest/java/com/test/stream/stream to see all Unit Tests
  5. Open the Unit Test file e.g. ProjectsTest.java
  6. Right click on the class name and click Run. For instance if you are trying to run ProjectsTest.java right click ProjectsTest and click "Run ProjectsTest"
  7. Note that UserTests must be run separately from other tests to pass.

Structure of source code directory

  • app/src/main/assets folder includes all fonts used for the project
  • AndroidManifest.xml contains settings for the project such as listing all Activities and Fragments as well as themes
  • app/src/main/res folder contains all images used in the application. Images will be stored on drawable or mipmap folder
  • app/src/main/res/layout folder contains all the xml files for the application. These xml files are inflated to display the UI of the application such as PinBoard, Tasks, Projects, etc
  • app/src/main/java/com/test/stream/stream/Controllers contains all the Java files to interact with Firebase
  • app/src/main/java/com/test/stream/stream/Objects contains all the object declarations of the project. For instance, PinMessage will have string properties to store title, color and description. These objects will make it easier to store data into the database.
  • app/src/main/java/com/test/stream/stream/UI contains all the activities of our application. These activities display all the UI such as buttons, lists, popup dialogs and many more so that the users can interact with the application
  • app/src/main/java/com/test/stream/stream/UIFragments contains all the fragments for navigation when clicking on the specified button on the toolbar
  • app/src/main/java/com/test/stream/stream/Utilities contains all the enums, callbacks and general database helper functions for the application

Design Patterns used

  • We are using the Singleton design pattern for the database Managers (BoardManager, CalendaManager, DataManager, ProjectManager, TaskManager, UserManager) because there are a lot of dependencies with the data in the database. Since we want to be able to access objects while browsing through the application, we applied the Singleton design pattern to these classes.

stream-app's People

Contributors

rinelee95 avatar rohinigoyal avatar robyncastro avatar omarbakker avatar kevwongg avatar janemac avatar xingyu96 avatar kevinw123 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

James Cloos avatar  avatar  avatar  avatar  avatar  avatar

stream-app's Issues

High: Tasks UI is Broken

When creating new tasks, no new task is created in the database.

Steps to reproduce:

  1. Log into Stream
  2. Enter a project
  3. Enter the tasks screen
  4. Create a sample task
  5. Observe that the new task is not created under tasks in the database, nor is it added to the current project's Task Group.

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.