[Java] Portfolio (Toretomo) Commentary

3 minute read

App overview

It is an application that allows you to search for your ideal gym from the area you live in (currently only the wards in Osaka city) or category, and at the same time find a trainer who contracts or is active in each gym.

It is open to the public on the following page! http://toretomo.work/

Production background

The production background is the experience that I myself had troubles with, the troubles I had when I was working as a trainer, and the idea that “I want to convey the joy of training to as many people as possible”.

In particular

1. There is no site where you can see gym and free personal trainers all together
2. Low awareness of free personal trainers
3. I want more people to know the fun of training

1. There is no site where you can see gym and free personal trainer all together

I myself had a hard time finding a **free personal trainer when competing in bodybuilding when I was a college student. **Because there was a separate service to find a free personal trainer and a service to organize gyms in each region.

After getting in touch with the trainer, whether I could come to the gym where I was attending, and whether the gym could provide personal instruction, I finally received training instruction from a free personal trainer.

I found problems while working as a trainer (related to 2) overlapped, and there was no such site even now, so I thought, “Let’s make it ourselves!” Is the biggest reason**.

2. In the first place, the awareness of free personal trainers is low

As I worked as a trainer, I noticed that **free personal trainers are not so well known. **

A free personal trainer is a trainer who can request personal business trips at the gyms that each contracts with or is available.

When asked if they knew about free personal trainers, especially those who left, few knew. There is a lot of awareness about personal trainers. .. (Probably thanks to RI○AP)

So I thought, “Is it convenient to put a free personal trainer that can be used in the gym on the detail page of each gym on the site that summarizes gyms?” **, and a service that can achieve that ** I would like to make it.” ** and this time I made it.

3. I want more people to know the fun of training

I changed my life through training. There were various benefits such as gaining self-confidence, being able to manage myself and setting goals. I became a trainer because I wanted as many people as possible to know about it. **But the value provided by the trainer was limited to those who came to the gym. **

**I want more people to know the fun of training! **

The solution to this problem was to create a web service.


User registration/login function (Devise)
Management screen (Active admin)
Like function
Comment function
Five-level evaluation function (Raty)
List display (Swiper in part)
Character string omission function (Read more)
Image enlargement function (Lightbox2)
Pagination (Kaminari)
Search function (Ransack)
Map function (Google Map and Geocoder)
Inquiry Form (Action Mailer)

User registration/login function (Devise)

By registering users, you can post likes and comments to each gym and trainer.

Administration screen (Active admin)

You can edit, register, and delete gym, trainer, and user information.

Search function (Ransack)

·Free Word Search ・Search by category and region ・Refine price search ・Sort function (in order of most reviews, new arrivals, etc.)


・I got feedback from active engineers for review ・Incorporated opinions from free personal trainers ・Assuming the site, we implemented branching for each function to be implemented ・Even if an error occurs, I did not rely on the mentor of the salon, but resolved on my own by referring to the articles on Youtube and Qiita ・Prepared functions, DB associations, designs (using Figma) to be used before starting development.


・Ruby 2.6.5, Rails 5.2.4 ・HTML, SCSS, Javascript, jQuery ・Nginx, unicorn ・AWS (EC2, S3, VPC ,Route53) ・MySQL ・Github


Thank you for reading to the end!

The first post was an overview of my portfolio, but from now on, I will post about things that I struggled with during development and what I noticed.