Welcome to the Table Tennis Coaching Platform! Connect with coaches and enhance your skills today.
The idea came from the desire to combine computer science and table tennis, two passions that have profoundly shaped my journey. Both fields had a great impact on my life during my time at Texas Wesleyan University, where I not only honed my technical skills but also grew as a table tennis enthusiast, learning the values of discipline, strategy, and perseverance. This unique combination reflects my ambition to merge technology with sports to create innovative solutions that enhance the experiences of athletes and enthusiasts alike. Furthermore, the growing need for table tennis players in Texas to find and connect with professional coaches easily inspired this initiative. This platform bridges that gap, creating a space where technology and sports come together to enhance accessibility and foster growth in the table tennis community.
Frontend: HTML & CSS
Backend: Python & Django
Database: MySQL & PostgreSQL
--Tables: CustomUser, PlayerProfile, CoachProfile, Video, VideoReview, VirtualCoaching, Payment.
Here’s how you can get started:
Step 1: Register and create your profile. At this step, the user can either select "player" or "coach" role.
Step 2: Once the user has created an account, it will need to login using its credentials. Depending on the role, the user will be redirected to its repective page.
Step 3: If the user is a "player," they will see an interface showing the coaches available in the platform. Also, the user will be able to search coaches using the "Search" bar. If the user find the coach they want to connect, they can send an email or request a video call. Furthermore, players can press any of the buttons on the navigation bar.
Players can press the "Player Profile" button from the home page, which will redirect the user to the player profile page. On this page, the user will see different buttons, which will be explained in the next pictures below.
If the player decided to press the button "Player Profile Form," they will be brought to the player's form page. This page will essentially create the flashcards on the home page.
If the player decided to press the button "Upload Video," they will be brought to the video submission page. This page will create videos for your list, which can be visited by coaches.
If the player decided to click on the button "My Uploaded Videos," they will be brought to the videos' list page. This page will display all the videos the user uploaded in the website.
The "Edit Profile" button will appear for both player and coach views. This page will allow user to edit or updated some information.
If the user is a "coach," they will see an interface showing all the players who are looking for coaches. Coaches can also search for specifics playes using the "Search" bar. Moreover, coaches will have the option to use the navigation bar buttons to interact with the website.
Coaches can click on the "Coach Profile" button from the home page, which will redirect the user to the coach profile page. On this page, the user will see different buttons. The button that says "Home," redirect the user to the home page, and the button that says "Edit Profile," changes or updates the coach's information, and the button that actually has to be filled out is the "Coach Profile Form," which will be explained in the next pictures below.
If the coach decided to press the button "Coach Profile Form," they will be brought to the coach's form page. This page will essentially create the flashcards on the home page.
From the home page, coaches can analyze player's videos by clicking on "View Videos" buttons. Once they click on it, they will be able to see all the uploded videos from the player and leave a comment to the player.
Lastly, if the coach clicks on the "Notification" button from the home page, they wiil be redirected to the notification page. This page will display the video call requests from the players.
The biggest challenge I had in this project was definitely the deployiment part. It requires a lot of technical skills and knowlegde on the technologies. For this project, I used a platform called Heroku, which is basically a cloud-based Platform as a Service (PaaS) that allows developers to build, deploy, manage, and scale apps. Since most of the platforms does not support MySQL database, I had to switch to PostgresSQL database. Plus, Heroku does not allow user to upload media files, which made it harder to make the website to run. In order to solve this problem, it is necessary a third party platform that allows users to do so. I ended up using AWS S3, which basically works as a storage platform for media files. Unfortunately, the users will not be able to see their profile pictures nor videos, until AWS S3 is integrated.
Developer: Eduardo Tomoike
Major: Computer Science
Minor: Business
Graduation Date: December 2024
Email: eytomoike@txwes.edu