Project Status: Ongoing
Start time: 21/12/2021

Description
Coachsome is a platform that connects personal sports coaches and athletes. Athletes can book a personal coach and can buy packages provided by coaches. Both athletes or Coaches can request sessions available in the packages and can fix the time and date to complete the session. There are private and group chat facilities among them. Users can easily switch their profile to athlete or coach. There are reviews, badges, and other facilities.

Technologies
PHP, NodeJS, Laravel, MySQL, Nuxt.js, ESLint, Vuex, JavaScript, Sass, Vuetify, Swift, Kotlin, Socket.io, BitBucket, Jira, Figma 

Challenges
The client planned to build a product capable of storing and processing athlete and coach-related data in an accessible yet convenient way. Initially, there was separate business logic for athlete and coach profiles. Experience showed that combining the two types of profiles and adding a switcher was a better user experience. A user can now switch his/her profile from coach to athlete, and the same goes for an athlete profile. But the condition is history shouldn’t switch with the profile. For example, they shouldn’t see their chats about what they did for athletes after switching to a coach, and the same goes for a coach to an athlete. There were so many things that needed to be segregated but remain under the same profile and same user. The key challenges were converting the data with keeping the previous records which were huge at that moment at the production server.

Solutions
We came up with a solution that we kept switching information to a table and kept track of the data that were stored from what role and segregated them.  Meanwhile, we made some custom commands to add traces for the previous data and perform a sync method for roles and the result came as expected.

Process
The initial stage was to procure business requirements and determine an appropriate tech stack. Then we needed to make a database structure, and after that, we came up with some front-end designs. Later we made an API to communicate with the front end, and the process continued. Meanwhile, we have to install some third-party services as per clients’ requirements. We have added payment methods, campaigning tools, custom chat, CMS,  Social auth, share, reviews, and many more.

We used MySQL as a database and chose Nuxt as the frontend framework as it was SEO friendly and nicely reactive. We used Laravel, a PHP-based framework, as it is a trendy technology for the backend. We used sockets for live chat and came up with an almost ready and even running project.

Result
It met the client’s requirements, and we’re working on upcoming features specified by the client. The project is already running and creating revenue for the client.
https://coachsome.com/

Project participants
Android Developer, IOS Developer and Web Developer.