METHODOLOGY

System Architecture

We adopted a distributed client-server architecture with a RESTful API design. This approach offers:

  • Scalability – Easily accommodates growing users and data volumes
  • Security – Centralized policy enforcement and access control
  • Modularity – Components can be added without complex state management
  • Performance – Workload distributed across tiers rather than overloading one element

The backend is exposed as a RESTful API using JSON and standard HTTP methods, making development, testing, and integration seamless across clients.

Frontend Development

Native Android (Kotlin + Android Studio)

We chose native Android development over cross-platform frameworks for:

  • Greater independence – No abstraction layer delays when platform updates occur
  • Full API access – Immediate use of latest Android features (notifications, secure storage)
  • Superior debugging – Built-in tools in Android Studio for testing, profiling, and troubleshooting
  • Smoother performance – Direct operation on Android runtime for data-intensive interfaces

ViewModel Architecture

We implemented ViewModel to manage UI state across multiple interactive screens. Benefits include:

  • Automatically preserves data during configuration changes (screen rotation, language switch)
  • Lifecycle-aware binding prevents data loss
  • Multiple Fragments can share a single ViewModel instance – enabling communication without complex callbacks

Clean Architecture

The project follows Clean Architecture with three distinct layers:

LayerResponsibility
PresentationUser interface & interactions
DomainCore business rules & use cases
DataRepository implementation & storage

This separation enables independent testing, easier maintenance, and future scalability (e.g., switching from pre-loaded data to real-time market data).

Responsive Design

All dimension settings are centrally managed in a dimension resource file, allowing interface-wide updates without editing individual pages.

Backend Development

We selected Python FastAPI as our main framework because:

  • Built-in validation – Eliminates need for additional libraries
  • Native Python integration – Aligns perfectly with our Python-based workflow
  • High performance – Outperforms alternatives like Flask
  • Automatic API documentation – Swagger-generated docs for all endpoints

API Endpoints

A comprehensive set of RESTful API endpoints was established to facilitate smooth operations across user registration, login, OTP verification, portfolio updates, and game session management.

Security Implementation

MechanismPurpose
JWT (JSON Web Tokens)Authenticates users, restricts access to protected areas, ensures only verified users can modify portfolios and execute trades
Rate LimiterControls request volume per timeframe, prevents system abuse, safeguards against malicious attacks, maintains stability during concurrent trading

FastAPI enables smooth backend testing, development, and consistent maintenance – while JWT and rate limiting ensure a secure, reliable user experience.

Data Extraction & Processing

To replicate realistic market dynamics, we extract authentic historical data for stock prices and news articles.

Data TypeToolReason
Stock pricesyfinanceWidely-recognized, Python-compatible, retrieves OHLCV data (open, high, low, close, volume)
News articlesFinnhub APIyfinance cannot retrieve historical news – Finnhub enables time-specific financial news extraction

Data is migrated via CSV files and inserted into relevant database tables.

AI-Powered News Sentiment Analysis

Existing trading simulators fail to provide meaningful news guidance – leaving users overwhelmed by raw information. Our solution integrates FinBERT, a financially-focused NLP model for sentiment analysis.

How It Works:

  1. News article is input into FinBERT
  2. Model classifies sentiment into Positive, Negative, or Neutral
  3. Each news item includes a suggested action to maintain forward-looking perspective

Educational value: Users learn to navigate market drivers without becoming overly reactive or misled by unclear information – building critical thinking and cautious decision-making skills.

Explore the development components

Development Tools