Math Aptitude Quest
Project Features and Functionality
Aptitude is an interactive mathematical quiz game built as a Confluence space page using Atlassian's Forge platform. The app creates an engaging, time-pressured environment for users to test and improve their arithmetic skills. The inspiration for Math Aptitude Quest came from observing how traditional workplace breaks often feel disconnected from the daily workflow. I wanted to create a micro-collection of games that could seamlessly integrate into team spaces where people already collaborate. Currently, the application features only an equation solver game, but it can be enhanced by introducing multiple simple single- and multiplayer games that foster collaboration and productivity, offering both productive and relaxing breaks.
Core Features
Dynamic Equation Generation: The app uses a sophisticated algorithm in generate.js that creates mathematical equations of varying complexity, including:
- Basic arithmetic operations (addition, subtraction, multiplication, division)
- Nested equations with parentheses
- Progressive difficulty scaling based on user performance
Adaptive Difficulty System: The difficulty increases dynamically as players answer more questions correctly. Starting at 10% complexity, it scales up to 100% based on the number of equations solved, creating longer and more complex mathematical expressions.
Real-time Timer System: Players start with 30 seconds and gain 5 additional seconds for each correct answer. The timer changes color (green → yellow → red) to create visual urgency and excitement.
Score Tracking & Persistence: The app leverages Forge's storage API through index.js to persist and display the user's best score across sessions
Intuitive User Interface: Built with Forge React components, the UI provides:
- Clean, centered layout with visual feedback
- Immediate response validation
- Game over screen with performance statistics
- Restart functionality for continuous play
How I Built the Project
Architecture Planning: I started by designing the app structure around Forge's module system, defining the Confluence space page integration in manifest.yml.
Equation Generation Algorithm: I built a sophisticated mathematical expression generator in generate.js that creates equations with configurable complexity, supporting nested operations and parentheses.
React Frontend Development: Using Forge React components, I created an interactive UI with real-time timer updates, score tracking, and responsive design elements that maintain Atlassian's visual consistency.
Backend Resolver Implementation: I developed the resolver system in index.js to handle score persistence using Forge's storage API, ensuring data survives across browser sessions.
Game Logic Integration: I implemented the adaptive difficulty system that scales equation complexity based on performance, creating progressively challenging mathematical expressions.
Testing and Iteration: I used forge tunnel for rapid development cycles, testing the balance between difficulty progression and user engagement.
Challenges Faced
Equation Complexity Balancing: Creating mathematical expressions that scale smoothly from simple to complex while remaining solvable was challenging. I had to implement careful bounds checking and ensure generated equations always have integer solutions.
What I Learned from Using the Forge Platform
Seamless Integration: Forge's ability to embed custom applications directly into Confluence spaces is remarkable. The manifest.yml configuration makes it straightforward to define app permissions, resources, and deployment targets.
Powerful Storage API: The built-in storage functionality eliminates the need for external databases. The resolver pattern in index.js provides a clean separation between frontend and backend logic while maintaining simplicity.
React Component Ecosystem: Forge's React components (@forge/react) offer native Atlassian design system integration, ensuring the app feels like a natural part of the Confluence experience rather than an external widget.
Bridge Communication: The @forge/bridge invoke system creates elegant communication between frontend and backend resolvers, making state management and data persistence straightforward.
Developer Experience: The development workflow with forge tunnel for local development and forge deploy for production deployment significantly streamlines the development process.
What I'm Most Excited About Building with Forge Moving Forward
Enterprise Productivity Tools: I'm excited about creating apps that enhance team collaboration directly within Atlassian products. Imagine building custom dashboards, approval workflows or project tracking tools that live natively in Confluence or Jira.
AI-Powered Enhancements: With Forge's resolver system, I'm excited about integrating AI services to build intelligent content suggestions, automated documentation generation or smart project insights that enhance team productivity without leaving the Atlassian ecosystem.
Log in or sign up for Devpost to join the conversation.