For managers and coaches of a swimming schools, we've developed Swimeo 2.0, a CRM system that allows you to plan and track classes, evaluate the effectiveness of groups or coaches, take pool attendance and integrate with existing amoCRM accounts. The CRM can be adapted for fitness clubs, swim schools, swimming pools, gyms, sports clubs, dance studios and martial arts centres, yoga, stretch and pilates studios, crossfit gyms; beauty, education and creative businesses, rehearsal spaces.
Swimming is popular among people of all ages. Parents bring their children to the pool so that the kids can fortify their health and develop physically. Young people strive to achieve a beautiful body and keep fit. Adults and elderly people choose swimming because the load it levies to the body does not harm the spine and other organs, which happens, for example, during strength training. Swimming is associated more with recreation than with physical work, and people enjoy going to the pool.
To lose or maintain weight, you need to spend energy. Swimming burns between 100 and 500 kilocalories at distances of 100–1,500 m. Why? Firstly, the density of water is about 775 times higher than the density of air, therefore, even when performing simple movements, a lot of energy is consumed in the pool. Secondly, while swimming, breathing becomes deeper and faster, which means that the body is more saturated with oxygen. Thirdly, a swimmer radiates 50–80% more heat in the water, and to restore such losses, the bodily metabolism accelerates.
Architecture
To keep information up-to-date while providing comfortable operations for a large number of clients, the backend (server part) is implemented using the asynchronous Python FastAPI framework based on Websocket technology. The frontend (the client part) is implemented using the React.js framework with adaptive layout of the coach application for mobile devices.
Main Applications
It is intended for managers, administrators, and directors. It starts with the authorization screen, where you need to enter your email and password.
The main page is the “heart” of the project, in which most of the processes “pulsate”. It offers a list of groups of the current flow (month).
On this page, one can choose:
- Other flows;
- The age of the children;
- The days of the week when classes are held;
- Class start time (morning, afternoon or evening);
- Group filters — pools, skill level, adults or children.
The page also displays:
- notifications about groups with low attendance. When opened, a list appears in the upper left-hand corner where you can open such a group and analyse its status
- Notifications from coaches about classes. When opened, a list of comments with a link to the group and the class is displayed in a similar fashion to the previous widget.
The groups are divided into the following three categories: Adults, children (further divided by ages 5–7, 8–10, 11–13 years) and skill level (further divided by zero, beginner, intermediate, pro and dry-land).
For each group, the following is indicated: coach, days of classes, start time of classes, swimming pool, age, cost, capacity, information about available spaces (based on classes that were paid for) and free spaces, regardless of payment (“available” or “reserved”). If a group is cloned from the previous flows, information about the students previously enrolled in this group is transferred for the convenience of managers.
Using the widget, one can add students from the previous flow, as well as add new students using the search bar, which accesses the list of all students. Students are synchronized with the “Contacts” section from amoCRM.
For each client from the group, one can record attendance in the client card by clicking on the corresponding field in the table and by selecting their status, leaving a comment about the student.
There is a “View” button on the client card, and when clicked, the payment form and access to classes will open.
This form allows one to record payments and provide access to classes. There are the following types of payment: in full, extended, corporate rate payment, advance payment, additional payment and payment for 2 or 3 months in advance. In this case, the remaining amount will go to the client's balance to be used in the “Paid earlier” field. The left part of the form contains information about the client and their group. It should be noted that it is possible to transfer the client's card to another group. If the transferred user made a payment, then the remaining classes in the month will be marked as paid. You can delete a client's card from the group if they do not have paid classes.
It is possible to delete the payment.
If you do so, the following dialogue box will appear.
In the “Coaches” section, statistics are generated on the salaries of coaches for various flows in terms of children or adults, water or dry-land. The results are filtered by the coach's full name.
The Administration tab contains the following subsections. The subsection “Pools” shows the existing pools with their tariffs. By clicking on the gear icon, changes can be made to the pool, or a new pool can be added by clicking on the “Add new pool” button.
In both cases, the pool editing form opens. Each pool can have several tariffs.
Flows in Swimeo are the time periods in which different groups are trained. When creating a new flow, you need to set a date interval (for example, from September 1, 2022 to September 30, 2022) and assign a name to the flow (for example, “September 2022”).
The “Flows and Groups” subsection displays all flows,
in which new groups can be added,
new flows themselves can be created,
and groups can be cloned from one flow to a new (empty) one.
Moreover, the active flow can be specified, that is, the flow displayed to users when they visit the “Groups” page.
The subsection “Users” allows one to manage users via the change form: create, deactivate, set a password and correct data. It provides a search form and adjustment of the number of users displayed on one page.
In the “Analytics” subsection, you can get the following analytical reports based on data from Swimeo:
- Reports on coaches, salary;
- Reports on coaches, extension;
- Reports on divisions, extension;
- Group effectiveness.
It is also possible to generate the following analytical reports based on the integrated amoCRM data:
- General analytics;
- Sales by services;
- Sales by managers.
The “Laboratory” subsection is a technical section which allows to set the time before and after the class, within which coaches are allowed to record user attendance, link amoCRM to the application, get the necessary data from amoCRM and get clients separately, as well as set the coaches' rates for payroll calculation.
The subsection “Payment scheme” allows you to specify which bank accounts should be used for a particular payment in different cases.
The Coach's Application
A site with an adaptive layout for easy smartphone access, where one also starts with authorization.
After authorization, the main page is opened, which displays the coach's upcoming classes.
For each class, one can mark the attendance of students, as well as leave a comment that will be displayed for the supervising manager in the main application.
By going to the “Income” section, the coaches track their salary for various flows.