SkillCourt v13.0
================

GitHub: https://github.com/tmaidique/SkillCourt-AndroidApp
Github: https://github.com/Daunntedmist/skill-court-laravel
SkillCourt.com

### Developers
* Steven Valle
* Thalia Maidique
* Carlos Reyes
* Drew Blumenthal
* Daniel Barbosa
* Luis Miranda
### Product Owner
* Guðmundur Traustason 

### Structure of the final project folder

    .
    ├── Code                                                           # Code files
    |   ├──SkillCourt_app                                              # SkillCourt Android App
    |   |   └──SkillCourt-AndroidApp
    |	|        ├── app                                               # Application files 
    |   |        |   └── src                                           # Source files
    |   |        |       └── main                                      # Android Source files
    |   |        |          ├── java.fiu.com.skillcourt                # Java Source files
    |   |        |          |    └──com
    |   |        |          |       └──skillcourt
    |   |        |          |          ├── adapters                    # SkillCourt Adapter classes
    |   |        |          |          ├── connection                  # SkillCourt Connection classes
    |   |        |          |          ├── services                    # SkillCourt Services classes
    |   |        |          |          ├── structures                  # SkillCourt Structures classes
    |   |        |          |          |   *── PlayerData              # getter and setter for the actual saved game stats
    |   |        |          |          |   *── SessionData             # getter and setter for the saved sessions
    |   |        |          |          |   *── SessionListAdapter      # Session adapter used for displaying formatted sessions as a listview
    |   |        |          |          |   *── StatsListAdapter        # data adapter used for displaying formatted data inside the sessions as a listview
    |   |        |          |          └── ui                          # SkillCourt UI folders
    |   |        |          |              ├── configuration           # Configuration UI classes
    |   |        |          |              ├── game                    # Game UI classes
    |   |        |          |              └── main                    # Main UI classes
    |   |        |          |                 *── DatabaseHelper       # Main file for the database structure.
    |   |        |          |                 *── MainActivity         # main file for the SkillCourt application
    |   |        |          |                 *── StatsFragment        # file used to view data stored in database
    |   |        |          |                 *── GraphStats           # file used to display the linegraph
    |   |        |          └── res                                    # Android Resource files
    |   |        |                  
    |   |        | 
    |   |        └── gradle.wrapper                                    # Gradle Wrapper files
    |   ├── pad_emulator.py                                            # Python pad emulator
    |   └── SkillCourt_website                                         # new SkillCourt website
    |       *── index.html                                             # main html file source
    ├── Documents                                                      # Documentation files
    ├── Posters                                                        # Poster files
    ├── Presentation Slides                                            # Final Presentation
    ├── Video                                                          # HTML file with links to youtube videos
    └── README.txt

### Installation Guide
* Install Java Development Kit (JDK) 8
    > http://www.oracle.com/technetwork/java/javase/downloads/index.html
* Install Android Studio
    > https://developer.android.com/studio/
* Install Microsoft Visual C++ Build Tools
    > https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017
* Install Python 3
    > https://www.python.org/downloads/
* Install Python Modules
    > Open Terminal an enter the following commands:
    
    > pip install six
    
    > pip install zeroconf
# Install PuTTY
    > https://www.chiark.greenend.org.uk/~sgtatham/putty/
# Install FileZilla Client
    > https://filezilla-project.org/download.php?type=client
# Install PhP
    > https://www.php.net/downloads
# Other content used for the project are in the reference portion of the documentation. 
# The youtube videos located in the Video directory are very helpful to setup the SkillCourt project.



### USER MANUALS ###
--------------------

A. Using Stations
   -----------------------------------
   How to Create a Station:
1.	In order to access the station portion of the SkillCourt app, the user must be connected to at least one pad.
2.	Select the Pad Settings button once on the main menu.
3.	Select the Station button to access the station page fragment. A list of any already existing stations will be displayed upon accessing the page.
4.	Select the Add Station button.
5.	Fill out the Station Creation page.
i.	Select the Pad Arrangement button to take a picture of the pad arrangement using the device’s camera.
ii.	Select the drop down menu to select the pads that will be assigned to the station being created.
6.	Select the Save button to create the station.
**2nd station is being created using steps 4 to 6 to show that once pads have been assigned to a station, they cannot be assigned to another station.
How to Use a Station in a Game:
7.	Return to the main menu and select the Play button.
8.	Set up players.
9.	Select the drop down menu to select the station the game will be played at.
10.	Select the game mode, random or manual.
11.	Select the sequence the pads will light up, this only occurs if the user selected manual.
**Only pads that have been assigned to the selected station may be added to the sequence.
12.	Set up game settings.
**If the game that is played gets saved, the StationID will be saved along with the game settings and scores.
How to Update and Delete a Station:
13.	Return to station page.
14.	Select any already existing station. This takes the user to the Station Details page.
15.	Select the Update button.
i.	May leave the boxes empty or fill in the name, description, or both with the new name or description of the station.
16.	Select the Delete button.
17.	Returns to the station fragment page. The deleted station no longer appears in the list.
18.	Repeat steps 4 to 6, the pads from the deleted station may now be selected when creating a new station as they have been made available upon deletion of the station they previously belonged to.

 


