{"id":13342680,"url":"https://github.com/uom-android-team2/WeBall_Statistics","last_synced_at":"2025-03-12T02:32:33.311Z","repository":{"id":60158113,"uuid":"482518621","full_name":"uom-android-team2/WeBall_Statistics","owner":"uom-android-team2","description":"The WeBall Statistics application is a league statistics application for basketball, which was created as part of the course \"Apps development for Mobile Devices\" (University of Macedonia - Applied Informatics, academic year 2021-2022, 6th semester)","archived":false,"fork":false,"pushed_at":"2022-09-27T13:42:25.000Z","size":4250,"stargazers_count":8,"open_issues_count":0,"forks_count":9,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-07-30T21:05:04.171Z","etag":null,"topics":["6th-semester","android","android-app","android-development","android-studio","applied-informatics","basketball-stats","firebase-realtime-database","java","mysql-database","postman","realtime-database","statistics","uom","xampp"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uom-android-team2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-17T12:35:21.000Z","updated_at":"2023-01-02T19:56:07.000Z","dependencies_parsed_at":"2022-09-26T00:50:11.282Z","dependency_job_id":null,"html_url":"https://github.com/uom-android-team2/WeBall_Statistics","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uom-android-team2%2FWeBall_Statistics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uom-android-team2%2FWeBall_Statistics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uom-android-team2%2FWeBall_Statistics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uom-android-team2%2FWeBall_Statistics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uom-android-team2","download_url":"https://codeload.github.com/uom-android-team2/WeBall_Statistics/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221265581,"owners_count":16788059,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["6th-semester","android","android-app","android-development","android-studio","applied-informatics","basketball-stats","firebase-realtime-database","java","mysql-database","postman","realtime-database","statistics","uom","xampp"],"created_at":"2024-07-29T19:29:55.019Z","updated_at":"2024-10-24T02:30:24.296Z","avatar_url":"https://github.com/uom-android-team2.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WeBall Statistics\n\n\u003ch4\u003eThe WeBall Statistics application is a league statistics application for basketball, which was created as part of the course \"Apps development for Mobile Devices\" (University of Macedonia - Applied Informatics, academic year 2021-2022, 6th semester).\u003c/h4\u003e\n\u003ch4\u003ePart of the course, was to get organized into groups of 10 people. Our team (#Team 2) consists of the following students alphabetically:\u003c/h4\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003cb\u003e\u003ci\u003eAmpatzidou Elisavet\u003c/i\u003e\u003c/b\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003e\u003ci\u003eCharakopoulos Minas - Theodoros\u003c/i\u003e\u003c/b\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003e\u003ci\u003eDasyra Evmorfia - Elpida \u003c/i\u003e\u003c/b\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003e\u003ci\u003eIordanou Sofia\u003c/i\u003e\u003c/b\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003e\u003ci\u003eLougaris Dionisis \u003c/i\u003e\u003c/b\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003e\u003ci\u003eLousta Aravella\u003c/i\u003e\u003c/b\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003e\u003ci\u003eMachairas Panagiotis\u003c/i\u003e\u003c/b\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003e\u003ci\u003eOuzounidis Kyriakos\u003c/i\u003e\u003c/b\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003e\u003ci\u003ePepa Leonard\u003c/i\u003e\u003c/b\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003e\u003ci\u003eStefou George-John\u003c/i\u003e\u003c/b\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch4\u003eVideo presentation of the app on YouTube: \u003ca href=\"https://www.youtube.com/watch?v=ouzMwkUCQ-s\u0026list=LL\u0026index=12\"\u003e\u003cb\u003e\u003ci\u003epresentation video\u003c/i\u003e\u003c/b\u003e\u003ca/\u003e\u003c/h4\u003e\n\u003ch4\u003eVisit the other repository, with the back-end of our application: \u003ca href=\"https://github.com/uom-android-team2/WeBall_Statistics-Backend\"\u003e\u003cb\u003e\u003ci\u003eback-end\u003c/i\u003e\u003c/b\u003e\u003ca/\u003e\u003c/h4\u003e\n\n\u003ch2\u003eR1 \u0026nbsp;\u0026nbsp; Display matches - Admin Login - Guest Starting Page\u003c/h2\u003e\n\u003cdiv float=\"left\"\u003e\n  \u003cimg src=\"screenshots/R1/start-page.png\" height=\"450\" /\u003e\n  \u003cimg src=\"screenshots/R1/admin-login.png\" height=\"450\" /\u003e\n  \u003cimg src=\"screenshots/R1/upcoming-matches-admin-view-before-start.png\" height=\"450\" /\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp\u003e\u003cb\u003e\u003ci\u003eRequirement 1\u003c/i\u003e\u003c/b\u003e is handled by the administrator (admin) and it concerns the match selection, and manage the card of the selected match. This includes the appearance of players and the corresponding ones logos. First, the administrator must enter the username and password in the form is requested, after choosing the button “LOGIN AS ADMIN\". The admin account can created by the backend website through it register. It then goes to the “Matches” screen, where there are three columns with the corresponding matches (Previous Matches, Live Matches, Upcoming Matches). From there the administrator can choose a match and edit the tab of. More specifically, by pressing it arrow a popup appears menu, which includes the players of the groups. With the edit button, is transferred to the “Welcome Admin” screen, where it is match management (see R2). \u003cbr\u003e\nNote: The edit option concerns ONLY the live and upcoming matches, not the completed.\u003c/p\u003e\n\n\u003ch2\u003eR2 \u0026nbsp;\u0026nbsp; Match management by Admin\u003c/h2\u003e\n\u003cdiv float=\"left\"\u003e\n  \u003cimg src=\"screenshots/R2/admin-live-match-panel.png\" height=\"450\" /\u003e\n  \u003cimg src=\"screenshots/R2/live-match-admin.png\" height=\"450\" /\u003e\n  \u003cimg src=\"screenshots/R2/pop-add-points.png\" height=\"450\" /\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp\u003e\u003cb\u003e\u003ci\u003eRequirement 2\u003c/i\u003e\u003c/b\u003e constitutes the next possibility of the administrator (admin), which includes all functions related to managing a match (Shoot with\ntype and result, Rebound or Assist or Block, Steal, Turnover and Foul). Necessary condition for starting the game, but also to activate the buttons, it is to click the button \"Start\". After it's click, the same button turns into “End”, through which the match could be terminated. In addition, the administrator can stop the timer and start it (from where you stopped it) via the “Pause” button, the which turns into “Continue” when pressed, and vice versa. Still, for registering any action, it is necessary, the administrator to follow a series of steps. Initially, the administrator during his navigation on this screen, sees the home team selected (by default). To if he can change team, he uses the Banner of which located at the top as an image. Once he selects any from the 2 teams, the key players of the selected team, appear at the bottom of the screen. In the same way that the team is selected, a player can also be selected, that is, by clicking on his image. \u003cbr\u003e\nNote: The match does not end when \"Done\" is pressed. Only will paused and the admin will moved back to all matches.\u003c/p\u003e\n\n\u003ch2\u003eR3 \u0026nbsp;\u0026nbsp; Recording statistics\u003c/h2\u003e\n\u003cp\u003eThis particular requirement deals with calculating stats for players and the groups, when the administrator performs a corresponding action. These actions include the basic events that occur in a match basketball skills such as free throws and attempts (two-pointers, three-pointers). In addition, assists, rebounds, steals, cuts, fouls are also recorded and mistakes. The specific statistics are recorded in the database at the moment which the administrator presses a similar button from its graphical interface which is fragment_admins_view. Statistics recording can begin the moment a match is live. For something like this to happen, it is necessary o\nadministrator to press the start button from its graphical interface. On the contrary, if the administrator seeks to increase statistics for a player, team respectively buttons will be disabled. Beyond the simple recording of statistics n application modifies the above data into a more logical form for the user. Specifically, in the frontend, a percentage calculation is also carried out through a condition. To if the application succeeds in the specific process, it stores its data in classes statistics for players and teams from the database.\u003c/p\u003e\n\n\u003ch2\u003eR4 \u0026nbsp;\u0026nbsp; Watch the progress of the Live Match\u003c/h2\u003e\n\u003cdiv float=\"left\"\u003e\n  \u003cimg src=\"screenshots/R4/live-progress-1.png\" height=\"450\" /\u003e\n  \u003cimg src=\"screenshots/R4/live-progress-2.png\" height=\"450\" /\u003e\n  \u003cimg src=\"screenshots/R4/live-comments-1.png\" height=\"450\" /\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp\u003eThe purpose of implementing \u003cb\u003e\u003ci\u003erequirement 4\u003c/i\u003e\u003c/b\u003e is that users as well as match administrators (admins) can watch the progression of a live match in real time, through verbal descriptions and comments for more details. In order to watch the progress of a live match, one must first choose one, from the list of live matches (Live matches), by clicking anywhere on its layout. Thus, it will be transferred to a new screen, where the 2 teams, the current score, the match week, as well as the current minutes of the match, are shown above. Below, is a menu available where gives the opportunity to watch the match through brief descriptions by selecting the \"Progress\" tab, as well as through comments and more detailed descriptions by pressing the \"Comments\" tab. He can also see the statistics of the teams and the respective players by going to the \"Statistics\" tab (R5). \u003cbr\u003e\u003cbr\u003e\nAbout the \u003cb\u003e\u003ci\u003e\"Progress\"\u003c/i\u003e\u003c/b\u003e tab, short descriptions are displayed for actions registered by the admin and performed in the match such as the following: \u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eStart, complete, pause and resume of the match.\u003c/li\u003e\n  \u003cli\u003eSuccessful freethrow, 2-point and 3-point\u003c/li\u003e\n  \u003cli\u003eRebound\u003c/li\u003e\n  \u003cli\u003eSteal\u003c/li\u003e\n  \u003cli\u003eThe name of the player who made the Assist in parentheses (only for 2 points or 3 points).\u003c/li\u003e\n  \u003cli\u003eBlock\u003c/li\u003e\n  \u003cli\u003eFoul\u003c/li\u003e\n  \u003cli\u003eTurnover\u003c/li\u003e\n  \u003cli\u003ePlayer Substitution\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAbout the \u003cb\u003e\u003ci\u003e\"Comments\"\u003c/i\u003e\u003c/b\u003e tab, all actions previously mentioned in the “Progress” tab are described in the form of comments with the extra addition of the display of missed free throws, 2-points and 3-points.\u003c/p\u003e\n\u003cp\u003eLeft-aligned descriptions refer to the home team, right-aligned to the away team and in the center there are descriptions generally related to the flow of the match without specifically addressing any team.\u003c/p\u003e\n\u003cp\u003e\u003cb\u003eNote: \u003c/b\u003e \u003cb\u003e\u003ci\u003eAll descriptions are realtime and no refresh is required to display the newest events. Each new action will appear on top, first, at the beginning. Also, the score and the time shown in the header of the match are realtime and directly obey the actions of the admin.\u003c/i\u003e\u003c/b\u003e\u003c/p\u003e\n\u003ch4\u003eFor the implementation of the real time data, the possibility of the real time database offered by the \u003ca href=\"https://firebase.google.com/\"\u003eFirebase\u003c/a\u003e platform was utilized.\u003c/h4\u003e\n\n\u003ch2\u003eR5 \u0026nbsp;\u0026nbsp; Watch the Statistics of the Live Match (Both for Teams and Players)\u003c/h2\u003e\n\u003cdiv float=\"left\"\u003e\n  \u003cimg src=\"screenshots/R5/live-team-statistics.png\" height=\"450\" /\u003e\n  \u003cimg src=\"screenshots/R5/live-players-statistics-1.png\" height=\"450\" /\u003e\n  \u003cimg src=\"screenshots/R5/live-players-statistics-2.png\" height=\"450\" /\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp\u003e\u003cb\u003e\u003ci\u003eRequirement 5\u003c/i\u003e\u003c/b\u003e will give the opportunity to the user to watch live stats of a match as it is live. The user, having selected a live match, has the possibility to see the relevant statistics of the teams from the last column of the \"Live Game\" screen. Here again the elements on the left side of the screen represent the home team, while the elements on the right represent the away team. In addition, the bars visually show the statistics of the teams by category \u003ci\u003e (Successful effort, Total effort, Successful freethrow, Total freethrow, Successful twopointer, Total twopointer, Successful threepointer, Total threepointer, Steal,\nAssist, Block, Rebound, Foul, Turnover)\u003c/i\u003e, while the number above each bar indicates the total number of attempts, successful shots, etc. The “View Players Live Statistics” button at the bottom of the screen, refers the user to the individual player statistics by category again. The team's overall data (e.g. total effort) is displayed on the right and the number representing each player on the left. The bar again indicates the corresponding percentage. Additionally, the user can select the player from the bottom of the screen or change team from the pop-up menu on the top left of the screen.\u003c/p\u003e\n\u003cp\u003e\u003cb\u003eNote: \u003c/b\u003e \u003cb\u003e\u003ci\u003eFirebase was used to record and store the data, so that the comments of each match are always updated, without the need for further action by the user (e.g. refreshing the page).\u003c/i\u003e\u003c/b\u003e\u003c/p\u003e\n\n\u003ch2\u003eR6 \u0026nbsp;\u0026nbsp; Statistics of completed matches\u003c/h2\u003e\n\u003cdiv float=\"left\"\u003e\n  \u003cimg src=\"screenshots/R6/completed-match-statistics-1.png\" height=\"450\" /\u003e\n  \u003cimg src=\"screenshots/R6/completed-match-statistics-2.png\" height=\"450\" /\u003e\n  \u003cimg src=\"screenshots/R6/completed-match-statistics-3.png\" height=\"450\" /\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp\u003e\u003cb\u003e\u003ci\u003eRequirement 6\u003c/i\u003e\u003c/b\u003e will offer the user the option to view the stats of a completed match. From the user's home match screen and the “Previous Matches” column, the user can select a completed match to view its statistics. In more detail, after selecting one, the individual statistics of the five most efficient players of each team are displayed, and below, a list of the leading players in the specific statistics for the selected match. The following are the total statistics of the two teams per category \u003ci\u003e(Team Efficiency, 3 Pointers Made, 2 Pointers Made, Total Freethrows, Team Assists, Total Fouls.\n10)\u003c/i\u003e. The left side is for the home team, while the right side is for the away team.\u003c/p\u003e\n\n\u003ch2\u003eR7 \u0026nbsp;\u0026nbsp; League Scoreboard\u003c/h2\u003e\n\u003cdiv float=\"left\"\u003e\n  \u003cimg src=\"screenshots/R7/score-board.png\" height=\"450\" /\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp\u003eIn \u003cb\u003e\u003ci\u003erequirement 7\u003c/i\u003e\u003c/b\u003e, the scores of all the teams will be presented, after they have completed the match in which they are participating. More specifically, the user goes to the scoreboard screen from the \"CHAMPIONSHIP LEADERBOARD\" button located on the home screen. This screen shows the teams sorted according to their score (PTS). To the left of the columns is the position number of each team (#), followed by the team name, total games played so far (GM), wins (W) and losses (L) respectively and finally the points scored have collected (PTS). Points are calculated as the sum of wins times 2 and losses. Additionally, there are two buttons on this screen. The “STATISTICS” button, which leads to\nteam and player statistics, and the “TOP 5” button, which leads to the best 5 players (regardless of team).\u003c/p\u003e\n\n\u003ch2\u003eR8 \u0026nbsp;\u0026nbsp; Overall team stats\u003c/h2\u003e\n\u003cdiv float=\"left\"\u003e\n  \u003cimg src=\"screenshots/R8/team-stats-all-time.png\" height=\"450\" /\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp\u003eIn \u003cb\u003e\u003ci\u003erequirement 8\u003c/i\u003e\u003c/b\u003e, the total statistics of the teams will be displayed. The user from the \"STATISTICS\" button of requirement 7 goes to the \"Championship Statistics\" screen, which has two tabs. The second tab “TEAM STATS” (related to R8), contains four tables per category. In each table the five teams with the highest percentages per category \u003ci\u003e(points per game, assists per game, rebounds per game, blocks per game, up to the given moment in the league)\u003c/i\u003e are shown. For example, in “Points Per Game”, the user can see the top five teams that collected the most points per game.\u003c/p\u003e\n\n\u003ch2\u003eR9 \u0026nbsp;\u0026nbsp; Personal player stats\u003c/h2\u003e\n\u003cdiv float=\"left\"\u003e\n  \u003cimg src=\"screenshots/R9/top-players-all-time.png\" height=\"450\" /\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp\u003eIn \u003cb\u003e\u003ci\u003erequirement 9\u003c/i\u003e\u003c/b\u003e, the personal statistics of the players throughout the league are displayed. The \"STATISTICS\" button of requirement 7 navigates the user to the \"Championship Statistics\" screen, which has two tabs. The first tab on the left (PLAYERS STATS) corresponds to requirement 9 and concerns the statistics of the players by category \u003ci\u003e(points per game, assists per game, rebounds per game, blocks per game, fouls per game)\u003c/i\u003e, i.e. how many points, rebounds, assists, etc. collected by the respective player per game (up to the given moment in the league). In each category, the 5 players who collected the highest percentages per category, in the matches they have participated in so far, are displayed. These statistics are updated as the match progresses.\u003c/p\u003e\n\n\u003ch2\u003eR10 \u0026nbsp;\u0026nbsp; Top-5 players for each week\u003c/h2\u003e\n\u003cdiv float=\"left\"\u003e\n  \u003cimg src=\"screenshots/R10/top5-per-week.png\" height=\"450\" /\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp\u003eIn \u003cb\u003e\u003ci\u003erequirement 10\u003c/i\u003e\u003c/b\u003e, the best 5 of the Competition are calculated based on the evaluation system (Efficiency meter). By pressing the button \"TOP 5\" the user enters the page and displays the 5 best players of the matchday (last matchday / current week), according to the position in which they play. For the selection of the top five, the statistics of all players who participated in the completed matches of the current week are gathered, the efficiency index of each player is calculated and then these indices are compared between players of the same position. The player with the greatest efficiency emerges as the best of the week for the position he plays. In addition, the data of the 5 best players is displayed in a frame with a background color that dominates the team they play.\u003c/p\u003e\n\n# Prerequisites\n\u003cul\u003e\n  \u003cli\u003eAndroid Studio\u003c/li\u003e\n  \u003cli\u003eXAMPP Control Panel\u003c/li\u003e\n  \u003cli\u003eAn emulator installed e.g. Nexus 5 API 30, Pixel 3 XL API 29\u003c/li\u003e\n  \u003cli\u003eInternet Connection\u003c/li\u003e\n\u003c/ul\u003e\n\n# Local Installation\n\u003ch4\u003eFor the correct use of the application, the following actions are required:\u003c/h4\u003e\n\n```\nRun at first the back-end:\ngit clone https://github.com/uom-android-team2/WeBall_Statistics-Backend.git or download the zip from github and extract it\nStore or move the root folder WeBall_Statistics-Backend(-master) in \u003cPATH\u003e\\xampp\\htdocs folder\nOpen XAMPP Control Panel and start Apache and MySQL servers\nVisit from your browser http://localhost/WeBall_Statistics-Backend/index/ then register or login and follow the manual\n\nNow, for the Mobile Application:\ngit clone https://github.com/uom-android-team2/WeBall_Statistics.git or download the zip from github and extract it\nStore or move the root folder WeBall_Statistics(-main) in \u003cPATH\u003e\\AndroidStudioProjects\\\nOpen Android Studio and the app root folder.\nConfig the App:\npublic static final String IP = \u003cYOUR_IP\u003e  --\u003e (java/uom/team2/weball_statistics/configuration/Config.java)\n\u003cdomain includeSubdomains=\"true\"\u003e\u003cYOUR_IP\u003e\u003c/domain\u003e  --\u003e (res/xml/network_security_config.xml)\nStart any emulator, and then you are ready to launch the app!\n```\n\n\u003ch4\u003eNote: Maybe you will see already data for live matches because of the real time cloud service was used, firebase real-time database!\u003c/h4\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuom-android-team2%2FWeBall_Statistics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuom-android-team2%2FWeBall_Statistics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuom-android-team2%2FWeBall_Statistics/lists"}