SkillCourt v12.0
================

GitHub: https://github.com/hmartin0/SkillCourt-AndroidApp
SkillCourt.com

### Developers
* Hairon Martin
* Yasmani Subirat
### Product Owner
* Guðmundur Traustason 

### Structure of the final project folder

    .
    ├── Code                                                           # Code files
    |   ├──SkillCourtV12_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
    |   └── SkillCourtV12_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. Connecting Pads With SkillCourt App
   -----------------------------------

1.	Turn on Hardware Pads
2.	Open phone hotspot setting with username skillcourt and password skillcourt or connect the phone to that network
3.	Open App and click on Click To Play button.  
4.	Pads should connect automatically, if not just wait a few seconds. 
5.	Once the Pads are connected then they should flash and the number of the top-right corner should display the number of pads connected. 
6.	If the number of Pads turned on are not the same as the ones on the app then restart process again. 

B. Play Game
   ---------

1. Click the Play button at the home screen.  
2. Choose between Random or Manual.  
3. If game is Random then proceed to next layout. 
4. If game is Manual, then record the sequence by clicking on the appropriate pads and then select play.
5. Choose if you want to play by hit or by time. Default is by time.  
6. If playing by time then using the number picker, choose minutes and seconds.  
7. You may set pad light up, pad light up delay, or back to back, these settings are optional when playing by time.
8. If playing by hit then you need to add hit amount, with pad light up delay.   
9. Pad light up delay and back to back settings are optional.
10. Press play and enjoy your game!

C. Save current Game to Database.
   ------------------------------

1. Once game is over then press save at the lower right-hand side.  
2. A prompt will pop up asking to create a session or you may choose a session from the list if previously created. 
3. You may add notes as well to the game, it is optional.
4. Click Ok to save the game.
5. It will save the date, the hit/miss, the time, and game type.
6. If properly saved then save icon will turn blue.  
7. Once saved, click on the home button.  
8. Press the stats option in the bottom navigation bar.  
9. A list of sessions with their corresponding dates will show.  
10. Click on any of those saved sessions. 
11. Another list of saved game belonging to that session will show in order of last played game.
12. Click on each of those games to see full notes user has input for each game.  
13. Clicking on top right graph icon will toggle a line graph that will display the percentage of hit/miss from hit game types only.  
14. For each game you can swipe left to delete from database.
15. For each game you can swipe left to update the user notes.
16. For each session you can also swipe left and you may delete that session with all the games belonging to that session.
17. A warning pop up will show if you want to perform this action. Press Ok or Cancel. 


