ucsb-cs56-projects / cs56-android-smoke-signals

-
GNU General Public License v3.0
1 stars 7 forks source link

SmokeSignals

CS56 Winter 2016 - Independent Android Project

Project Description

Android app that allows you to automate several tasks that can be triggered by an receiving a SMS from a different phone

Javadoc

http://ucsb-cs56-projects.github.io/cs56-android-smoke-signals/

Android Debug Databbase

https://github.com/amitshekhariitbhu/Android-Debug-Database

Requirements

Android Studio

Features

Ex: Before clicking After clicking

Project History

W16

F16

F17

W18

Remarks

W18 Final Remarks

This application is basically utilizing the Broadcast Reciever and Room Persistance Library. Highly reccomend to look at the storage file to understand hwo the Room Persistance Library works. If you understand these two topics well, adding new features and fixing issues will become very simple(this project is still on its early phase).

When we first go the app, none of the use cases worked. We added a thread to the SMSManager that fixed this issue. Currently the app compiles and runs with no bugs and all the funtions return what they are intended to return. We highly advise you guys work on Unit Tests as soon as possible. It is crucial before the application gets any bigger.

Existing bugs

Features we added

F17 Final Remarks

Currently the codebase is in decent condition, and the android app is bug free. The bulk of the work that was done this quarter was refactoring the old code into something more maintainable. The guiding principle we followed in refactoring was that it should be easy for future code editors to add new commands, etc. There is some code that used topics not covered in class, such as reflection and Android’s Room Library over SQLLite. Reflection is used CommandManager.java to be able to execute a command when given a SMS command. Room is used in the storage package to store data in a Sqlite database. I recommend reading up about it here. Besides those two things, the code is fairly straightforward. Running the Android app can be a little tricky; I would ask your mentor if you run into trouble with any Android related issues. The gist of it is setting up an emulator.

How the Code Works: There are two flows the user can use.

Refactoring opportunities:

New features:

Advice

F16 Final Remarks

Currently, everything in the code that is a part of the implemented methods and implemented user stories works. The app compiles and runs and all of these functions return the correct output. Additionally, leniency has been implemented to make the commands less strict, so texting a variation of the commands will either provide the help text or still continue to work.

Potential features to be added: Besides the issues and features listed above, a few new issues that we added were

Existing bugs:

Opportunities for refactoring:

Advice for working with code/legacy code in general:

F17 Final Remarks

Currently the codebase is in decent condition, and the android app is bug free. The bulk of the work that was done this quarter was refactoring the old code into something more maintainable. The guiding principle we followed in refactoring was that it should be easy for future code editors to add new commands, etc. There is some code that used topics not covered in class, such as reflection and Android’s Room Library over SQLLite. Reflection is used CommandManager.java to be able to execute a command when given a SMS command. Room is used in the storage package to store data in a Sqlite database. I recommend reading up about it here. Besides those two things, the code is fairly straightforward. Running the Android app can be a little tricky; I would ask your mentor if you run into trouble with any Android related issues. The gist of it is setting up an emulator.

How the Code Works: There are two flows the user can use.

Refactoring opportunities:

New features:

Advice

F16 Final Remarks

Currently, everything in the code that is a part of the implemented methods and implemented user stories works. The app compiles and runs and all of these functions return the correct output. Additionally, leniency has been implemented to make the commands less strict, so texting a variation of the commands will either provide the help text or still continue to work.

Potential features to be added: Besides the issues and features listed above, a few new issues that we added were

Existing bugs:

Opportunities for refactoring:

Advice for working with code/legacy code in general:

Credits

Original Author: [Pedro M. Sosa]

Authors: Franklin Tang, Jackey Lau (W16)

Authors: Simon Wong, Sayali Kakade (F16)

Authors: Ankush Rayabhari, Porter Haet (F17)

Authors: Brian Kim, Juan Manzo (W18)