StormHacks 2025 @ SFU Hackathon Project
Discover your personality through an immersive gaming experience!
PathQuest transforms the traditional MBTI personality test into an engaging, interactive adventure. Instead of answering boring questions, users navigate through four unique social scenarios as a game character, making choices that reveal their true personality type.
- ๐ฎ Interactive Gameplay: Navigate through 4 beautifully designed Phaser.js game scenes
- ๐ฏ Realistic Scenarios: Party, Office, Classroom, and Coffee Shop environments
- ๐ค AI-Powered Analysis: Personalized insights using Google Gemini 2.5 Flash
- ๐๏ธ Voice Narration: Immersive audio experience with ElevenLabs text-to-speech
- ๐ Detailed Results: MBTI type breakdown with percentage analysis
- ๐จ Beautiful UI: Modern, responsive design with Tailwind CSS
- โฟ Accessible: Age-appropriate recommendations (1-120 years)
Try it now: https://pathquest-ten.vercel.app/
- React 18.3 - UI library
- TypeScript - Type safety
- Vite 5.4 - Build tool & dev server
- Tailwind CSS - Styling
- Phaser 3.90 - Game engine
- Lucide React - Icons
- Google Gemini 2.5 Flash - AI personality analysis
- ElevenLabs API - Text-to-speech narration
- Express 5.1 - Local development server
- Vercel Serverless Functions - Production API
- Vercel - Hosting & deployment
- Node.js 21 - Runtime environment
- ESLint - Code linting
- Enter Your Age - Personalized analysis based on your life stage
- Choose Your Voice - Select your preferred narrator
- Play Through Scenarios - Navigate 4 social situations as a character
- Make Choices - Interact with objects and people in each scene
- Get Results - Receive your MBTI type with AI-powered insights
- Discover Careers - See recommended career paths for your personality
Navigate a lively party with snack tables, speakers, and decorations. Do you mingle with the crowd or stick to familiar faces?
Experience a professional workplace environment. Are you the team player or the independent contributor?
Return to an academic setting with desks, a teacher's area, and study materials. Group project or solo work?
Relaxed cafรฉ atmosphere with seating areas and a counter. Work alone or join the conversation?
dumbways/
โโโ src/
โ โโโ components/
โ โ โโโ StartScreen.tsx # Age input & voice selection
โ โ โโโ QuestionScreen.tsx # Game scenes container
โ โ โโโ ResultsScreen.tsx # MBTI results & AI analysis
โ โ โโโ BaseGameScreen.tsx # Phaser game logic
โ โโโ data/
โ โ โโโ questions.ts # Scene configurations
โ โ โโโ personalities.ts # MBTI type descriptions
โ โ โโโ sceneConfigs.ts # Collision & layout data
โ โโโ types/
โ โ โโโ mbti.ts # TypeScript interfaces
โ โ โโโ game.ts # Game type definitions
โ โโโ utils/
โ โโโ mbtiCalculator.ts # Personality scoring logic
โโโ server/
โ โโโ index.ts # Local Express server
โโโ api/
โ โโโ gemini.ts # Vercel serverless function
โโโ public/
โโโ images/ # Scene backgrounds & assets
- Node.js 21+
- npm or yarn
- Google Gemini API key
- ElevenLabs API key (optional for voice)
- Clone the repository
git clone https://github.com/minecraftcodingcamper/dumbways.git
cd dumbways- Install dependencies
npm install- Set up environment variables
Create a .env file in the root directory:
GEMINI_API_KEY=your_gemini_api_key_here
VITE_ELEVENLABS_API_KEY=your_elevenlabs_api_key_here- Run the development servers
Terminal 1 - Frontend:
npm run devTerminal 2 - Backend:
npm run dev:server- Open your browser
http://localhost:5173
npm run buildThe build output will be in the dist/ directory.
This project is configured for Vercel deployment:
- Push your code to GitHub
- Import the project in Vercel
- Set environment variables in Vercel dashboard:
GEMINI_API_KEYVITE_ELEVENLABS_API_KEY
- Deploy!
The serverless function at /api/gemini.ts will automatically handle production API requests.
- Realistic invisible boundaries around furniture and objects
- Phaser arcade physics for smooth movement
- 21+ collision objects across 4 scenes
- Debug mode available for development
- Age-specific personality insights
- Career recommendations based on MBTI type
- Detailed trait explanations (E/I, S/N, T/F, J/P)
- Powered by Google's latest Gemini 2.5 Flash model
- Multiple voice options for narration
- Text-to-speech powered by ElevenLabs
- Accessible audio controls
- Voice selection persists across sessions
- Ernest @jumiknows
- Cullen @cullendales
- Siwoon @SWL-01
- Google Gemini API for AI-powered personality analysis
- ElevenLabs for text-to-speech technology
- Phaser.js community for game engine documentation
- StormHacks organizers for hosting an amazing event