The admin is responsible for managing the app’s functionality and database. They have access to the app’s settings, reports, and statistics.
A US-based app that allows users to play their favorite sports and win cash prizes
Our client’s request
Our client, Anthony Micali, asked us to develop a mobile game with unique mechanics, related to real sports. The idea was to create a completely new game focused on the US market for those who enjoy the fun and thrill of playing and watching sports games.
The Steelkiwi team created an iOS and Android app (fueled by powerful backend system) where users can choose a sport and game from a list, buy boxes, and try their luck. The aim of Boxiz is to earn as many coins as possible by playing while watching sports including NFL, MLB, NBA, NHL, and eSport.
We also designed and developed a promotional landing page for Boxiz to tell users about the game.
Users can create profiles, choose leagues, games, daily sports boxes, and play. Users can have different levels: Rookie, Captain, Veteran, All-Star, Hall of Fame, Legend, GOAT.
We developed Boxiz for iOS and Android platforms using Flutter. Flutter allows us to write code once and then use it on multiple platforms. This saves lots of time and provides a 100% guarantee of UI and business logic consistency for both platforms.
Since Boxiz is intended to run in portrait mode, we took this into account when designing and developing the application.
We analyzed our client business idea to define a product vision and prioritize the scope of work. Then we started developing the app architecture, using the established Clean Architecture standards, defined the data structure, designed the UI, deployed the app, and published it to the Stores.
In the app, we created a dynamic line and localization manager that enables admins to edit any text lines (like headers, footers, and buttons) in the application from the Admin dashboard. Also, thanks to our added dynamic resources, most of the icons, images, colors, and other UI items can be changed from the Admin dashboard.
We split the development process into two phases and first developed an MVP version of Boxiz with the most important functionality in four months. Once we got feedback from users, we went on developing other features.
To tell prospective users about Boxiz, build the brand, and create a better user experience, we developed a landing page.
For some features, we needed to integrate external services. For example, we integrated Twilio to send alerts and reminders connected with the game mode, prizes, and referral bonuses. To enable push notifications, we used Firebase. We also implemented SportsDataIO to collect sports data in real time and ABIOS for Esport games, allowing us to get the most detailed data and broadest coverage of matches.
We built the frontend using React, to add statistics we used S3.
We developed the backend with Python 3.7 and Django 2.2. We also used the Django REST framework to support REST API.
When creating the architecture of Boxiz, we crafted a one-size-fits-all solution that allows us to easily integrate all leagues and games.
During development, we focused on speed and high performance. We wrote load tests to see how well our system is optimized. Those tests showed that a normal server wouldn’t meet high traffic demands. This is why we integrated AWS auto scaling.
One of the nontrivial tasks was to find services which provide real-time sports data via an API and integrate with them. Another challenge was that different games have different periods like quarters, halves, and innings. We made the period system universal, easy to scale, and easy to modify by the administrator.
With the profile functionality in Boxiz, users can:
- create profiles
- learn the rules of the game
- invite friends
- browse account statistics like current coin balances and rewards received
- track rewards and daily prizes
- set up push notifications
Boxiz allows users to:
look through leagues schedules, choose a game, and check the game time
buy boxes for game coins (virtual currency)
track the total number of coins spent on boxes for all upcoming games
track the total number of boxes purchased
see the game’s total prize fund
see the total number of coins they’ve won
Users can select a game from a variety of daily contests, choose up to five boxes, and track their numbers. The price of a box varies depending on the contest a user takes part in. Contests differ by entry fee. The system assigns a unique number to each box when all boxes in the contest are purchased or when the game starts in less than 5 minutes. If the game score matches a user’s numbers, the user earns coins. The number of coins earned depends on the cost of the boxes in the game: the higher entry fee, the higher reward.
The aim of Boxiz is to meet the target for the number of coins ― which is 50,000 coins ― and get a chance to participate in a Super Box Contest.
Users are able to earn extra coins by:
- purchasing boxes and getting prizes if they win
- inviting friends through a referral system
- answering beta survey questions
Boxiz allows users to earn extra coins for inviting new users via a referral code. Users can check the number of friends referred and the number of coins earned with the Refer a friend feature.
Once a user has the coins required to play the Super Box Contest, they can apply to participate. The system randomly generates Golden Tickets that let users participate in a Super Box Contest. Users who win a Super Box Contest are awarded with real prizes.
Users can see a list of top players by coin scores, daily winners, and Super Box Contest winners.
The admin can use the admin panel to:
- edit static pages of both the landing page and the mobile app
- send custom emails to all users using an HTML template
- give bonuses to one or several users with a single click
- add new games and contests
- create in-app questionnaires