Repository navigation
Project 3
Team Members:
- Kevin Wilkens
This division is responsible for initial setup of the physical and virtual server containing the back-end for our product. This involves setting up a reliable security firewall that can be easily implemented and will allow users access to app information, and will allow any other division who is responsible for software implemented on the server to have access to their respective software through a secure channel.
After initial setup, the responsibilities of this division shifts to maintaining the security and integrity of the server, while assisting the any other division needing assistance with work they are responsible for on the physical or virtual servers.
Team Members:
- Joshua Cano
- Rong Liu
- Pranay Eedara
- Anudeep Tungala
To do Digit Recognition on android using Opencv, the first step is to get the training data for training the classifier and the k-Nearest Neighbor(KNN) classifier is used for this project. Then for testing the classifier, extract digits from raw image and pass it through the classifier to recognise the number.
-
Preprocess the Image
(a) Get Binary Image using Adaptive threshold
(b) Apply morphology closing followed by opening to remove the noise and thicken the width of numbers -
Get binary image of digits
(c) Find Contours of the Connected objects
(d) Find the Bounding box of contours
(d) Filter the Bounding Boxes. So that they point only to digits -
Resize the digits to (50,50) and convert it into floating point and reshape it to (1,1) Matrix
- COnvert the MAT objects type to 8UC1 and store the MAT objects in BMP file
- Store those bmp files in the drawable folder of resources
- Read the training bmp files using decodefactory
- No FileStorage class to write and read XMl files form Mat Objects
- Edit the ASynchronousJavaHelper.class file in Opencv library to run the application on Android 5 versions
- Ian DeGroot
The primary goal of the data integrity and information team is to define the format of the data that is sent between the clients and the server. This was accomplished by defining the library used, deciding what messages should be sent, and writing java code to wrap and unwrap the messages.
JSON messages were chosen to contain the information being sent across the network because it is easy to wrap and unwrap, while still containing enough information for all of the messages being passed. The JSON.Simple library is used by this application.
After defining the library used, the messages that are passed were defined. After many discussions with members from different teams six different client messages, along with their responses by the server, were decided upon. These messages are: Login, Logout, Add Friends, Add Check In, Get Recent Friends, and Get Recent Locations. These messages, along with the responses, can be found in their JSON formatting here.
Using these set messages, java code was written for the wrapping and unwrapping of each of these JSON messages. The code is found [here] (https://github.com/CourseReps/ECEN489-Spring2015/tree/master/Students/iandegroot/Project3JSONInterface). This is used to generate JSON objects on the client side, and to unwrap these same JSON objects on the server so that the data can be accessed. It is also utilized for server-to-client messages.
Team Members:
- Evelyn Cifuentes
- Mandel Oats
Team Members:
- Trevor Dennis
- Nagaraj Janakiraman
Team Members:
- Randy Neal
The account management and administration division is responsible for maintaining the user accounts. To accomplish this, a program has been developed to facilitate the seamless addition or deletion of users and locations. This is much more user friendly and straight forward than using SQLite commands from the Ubuntu terminal and is also not dependent on the Firefox plugin.
The program is written in Java and is built upon Jswing and SQLite. The concept was to build a simple program that is easy to use, while implementing the basic functions of MYSQL and the SQLite plugin in Firefox. The PhysicAmigo System Admin Program consists of a main window that has a connect and exit button, a list of tables on the left, and the data of the selected table. Once the program is run, the only functions that are enabled are the connect and exit buttons.
#####Connection
The connection is established via the connect button. The administrator clicks the buttona, which brings up a credentials window and utilizes a set user name and password to login. If the either item is entered incorrectly, the administrator will be notified via a Joption dialog and will be required to re-enter the credentials. Once the connection is established, the logic of program communicates to other classes to close the credentials window. The tables list will be shown once the credentials is closed.
#####Tables List
The tables list shows the two tables in the database that are open to editing. The system administrator is only concerned with adding or removing users or locations. As such, these are the only tables that will appear. If the need arises, more tables can be implemented and shown in the list. The modular design of the application allows the easy modification and addition of more information. Once the table is selected in the list, either with the arrows/enter keys or with the mouse, the table data is then displayed automatically in the center window.
#####Table Data
Table data is not editable directly in the data panel. To modify the table, the administrator must select the appropriate table which will then enable the add/delete user or location buttons. Once the table is modified, the data is refreshed automatically, allowing any additions or deletions are immediately visible.
#####Add/Delete User
The add/delete user buttons only become available once the users table is selected. Once clicked, the add user button brings up a new window that has some text fields for user ID, user name, session ID, and password. The session ID and password are hashed using the standard hashing code implemented in the other parts of the project. If a mistake is made the administrator can delete all the data in the fields using the clear data button. If the info is correct, the administrator simply clicks the enter button and the user is added. To delete a user, the delete user button is clicked and the same functionality is implemented, however the system administrator just needs to note the number in the table that corresponds to that user and enters it into the field. Once enter button is clicked, the user is deleted both from the users table and from any corresponding entries in the friends table.
#####Add/Delete Location
Similar to users buttons, he add/delete location buttons only become available once the locations table is selected. The only data needed to add locations is the name of the location, the latitude, and longitude. Again, once the enter button is clicked, the table is updated. To delete a location, the same process is used; enter the int of the row and click the enter button to delete the location.
Team Members:
- George Sullivan
- Jeffery Jensen
- Hong Pan
Team Members:
- Blade Roybal
- Yajie Zeng
Team Members:
- Benito Ramirez Jr.