If you’re living or have spent some time in Romania, you must have heard of 7card.ro by now. If not, let me ask you this: have you ever needed an escape from your sedentary life at the office? Ever wanted to start exercising more but you needed a gym that was conveniently located and had a friendly staff, plus offered some variety, but you just couldn’t find one to check all the boxes? Ever wanted to see what yoga or zumba were all about, but you were already paying full price for a different gym membership that you weren’t even making use of anyway?
I’m going to assume you answered “yes” to at least some of those questions, and I’ll assure you that you’re not alone. Luckily, that’s what 7card is all about. As one of the most celebrated employer benefits within companies nationwide, their revolutionary concept opens the doors to a large number of gyms, pools and activities – and all you have to do to make use of all of that is pay one single subscription every month. For many years 7card has been encouraging thousands of people to be more active and it’s been helping them overcome those roadblocks that keep us all from becoming our better – fitter – self. Their titular “card” has comfortably morphed into a phone app along the way, but the principle remains the same: 7card takes away any excuse you may have to get up and start moving.
7card + Zitec = <3
All this being said, I’m proud to tell you that 7card is being managed by Zitec on the tech side, namely Web and API. (For the Mobile side of things, I’ll just give a shoutout to our friends at mReady!) It was a pretty good app when it landed in our backyard about a year ago, but the first thing we asked ourselves was “how could we make it better?” So let me tell you what answers we’ve come up with:
7card was quite a complex ecosystem from the get-go, with the responsibility of handling multiple tasks in multiple areas. It had to offer gyms, users, admins and HR alike the means to manage their respective fields, each via a dedicated interface. It had to register gym visits, regulate subscriptions, process invoices and payments. It had to navigate with ease through a large complex network of clients, partner companies, end users and their imported friends and family. And this is just what I can think of off the top of my head. Now, I’m not saying it didn’t do all that. It’s just that it did it all within a monolithic structure, in Symfony 3.4, running on Vagrant. We felt like there was room for improvement.
Taking it one step at a time
So the first and most exciting thing we did was ditch Vagrant in favor of Docker. All of our environments were broken down into individual services and moved into Docker containers, thus giving us a faster, cleaner and more lightweight infrastructure. 7card was actually one of the applications that pioneered the Docker movement within our company – a change that has, since then, been rolled out for most of our projects. We’re very hyped about this, as it allows for a more efficient use of system resources, as well as better scaling, easier software delivery and an upgrade in security. And that’s just a few of the benefits we see in Docker: to sum it up it means less money spent, more speed and better flexibility.
Next, we figured it was about time to upgrade our Microsoft Azure packages and so we transferred everything to newer, more powerful machines that – to the joy of every department involved – moved twice as fast and cost us half as much. (That phrase makes a lot of people happy, I can’t possibly explain why) Lastly, after a ton of other cool optimizations I won’t bore you with, we opted for Docker Registry as an Azure service – this gave us increased security and made our app much easier to maintain.
Now, regarding the application itself, some changes were also in order. 7card had grown quite a lot ever since its inception, years ago. The monolithic structure it initially started out with simply didn’t work for us anymore. It had become difficult to scale, difficult to patch and also required some desperate upgrades as far as framework and tools were involved. So when we were tasked with implementing a brand new feature – push notifications, woo! – we saw this as the perfect opportunity to throw out the old code and build the notifications component as an independent microservice on the latest version of Symfony, thus bringing about a new dawn of modular infrastructure! (Insert divine choir music.)
The notifications feature has just been released a few weeks back, along with other new goodies we’ve been working on (such as specialized gym classes, which I strongly invite you to check out). We see this as a major success code-wise, and we’re just getting started. There’s still a long way to go and lots more pieces to fine tune and reshape into a better, cleaner, more robust application.
What lies ahead?
I won’t spoil it for you, but I happen to be privy to some super secret info and I’m just gonna tell you that exciting things are underway! Just as the 7card marketing team is constantly thinking up new ways in which to better engage users and improve their experience, our dedicated Zitec team is hard at work implementing those ideas in the most innovative and efficient ways. And while we maintain the smooth functioning of the 7card ecosystem, we’re also constantly incorporating minor improvements, facelifts, flow refreshes as well as slowly advancing our devious plan for a microservice-based world.
But is 7card still a good idea now?
“This is hardly the time to hit the gym”, I hear you say. And while this is true in the classic sense of the word, new circumstances ask for new solutions. Many gyms and trainers are offering remote classes and videos these days and 7card is here to bridge the way between you and them. You might not be able to make it to the gym right now, but you can rest assured that 7card is bringing the gym to all of you active folk out there!
So make sure you go and turn those push notifications on – not just cause we made ‘em, heh, but also because there’s a lot of awesome stuff going on and you’ll definitely want to stay tuned!