🧭 Personality Compass is an offline-first self-discovery app with 454 questions across three psychological models. It generates professional PDF reports, works 100% offline, and collects zero data. Here's the story of how I built it.
🧠 The Problem I Wanted to Solve
I've always been fascinated by personality psychology – Enneagram, Big Five, and other models. But I had two major frustrations:
- Privacy concerns: Most tests send your answers to servers. My data, my reflections – why should they leave my phone?
- Depth vs. accessibility: Free tests are often shallow (10-20 questions). Quality tests cost money or require internet.
So I decided to build my own solution. One that works 100% offline, keeps all data on device, and offers real depth – 454 questions in total, completely free.
🏗️ The App at a Glance
| Aspect | Details |
|---|---|
| Platform | Flutter / Dart |
| Architecture | Offline-first, local data only |
| Languages | English, Russian, Estonian (full localization) |
| Total Questions | 454 across all tests |
| Tests | MindPath 16 (80/20 Q), MindPath 5D (120/20 Q), Enneagram (254/81 Q) |
| PDF Reports | Professional exports with charts, colors, and insights |
| Storage | All results saved locally, no cloud, no registration |
🔧 Technical Deep Dive
Project Structure
├── components/ - Reusable UI components
│ └── enneagram/
│ ├── cards/ - Cards for enneagram result display
│ │ ├── action_buttons.dart - Action buttons (PDF, history)
│ │ ├── arrows_card.dart - Development arrows card
│ │ ├── career_card.dart - Career aspects
│ │ ├── development_card.dart - Personal development
│ │ ├── interactive_chart_card.dart - Interactive diagram
│ │ └── type_card.dart - Main enneagram type
│ └── charts/
│ └── interactive_enneagram_chart.dart - Interactive visualization
├── constants/ - Constants and configurations
├── l10n/ - Localization
├── models/ - Data models (19 model files)
├── screens/ - Screen widgets (18 screens)
├── services/ - Business logic and data handling
├── utils/ - Utility helpers
│ ├── enneagram_complete_pdf/ - PDF generation
│ │ ├── sections/ - 10 PDF report sections
│ │ └── widgets/ - PDF widgets
│ └── pdf_exporter.dart - PDF generation utilities
📁 assets/
├── content/
│ ├── enneagram/ - Enneagram content in 3 languages
│ │ ├── descriptions/ - 8 categories of descriptions
│ │ └── questions/ - 3 question sets (254 total)
│ ├── interpretations/ - Result interpretations
│ └── mindpath/ - MindPath 16/5D questions
└── lang/ - Localization files (en.json, et.json, ru.json)
core_descriptions_en.dat, core_descriptions_et.dat, etc.
Key Technical Challenges & Solutions
1. 100% Offline PDF Generation with Complex Graphics
The biggest technical hurdle: generating professional PDF reports that include interactive-style charts, all without internet.
Solution:
- Used RepaintBoundary + PictureRecorder to capture widgets as images
- Implemented fallback mechanisms with custom Painter when screenshot fails
- Created adaptive timeouts (up to 3000ms) for different device capabilities
- Built modular PDF sections – each part of the report (cover, chart, arrows, career) is a separate widget
2. Building Original Psychological Models
I wanted the depth of comprehensive personality models but faced two challenges: privacy concerns (most tests send data to servers) and trademark restrictions. So I built my own:
- MindPath 16: A 16-type model analyzing cognitive preferences
- MindPath 5D: A 5-dimensional trait assessment
Both are completely original, 100% offline, and free from any third-party intellectual property restrictions.
3. The Full Enneagram (254 Questions!)
Most free Enneagram tests give you a type in 5 minutes. But real Enneagram work includes wings, subtypes, and development levels.
Implementation:
- Core type identification (108 questions across 12 groups)
- Subtype assessment (54 questions, sp/so/sx)
- Development levels (162 statements)
- Total: 254 questions – one of the most complete free Enneagram tests available
4. Interactive Enneagram Chart with "Smart" Arrows
The Enneagram diagram shows 9 points with connecting arrows. I wanted it to be context-aware:
- By default: shows only development arrows for your type (reducing cognitive load)
- On tap: shows arrows for any selected type
- Auto-returns to your type after 5 seconds (balance between exploration and focus)
This "interactivity → PDF" cycle ensures users see the same visualization in reports as in the app.
🎨 Design System & Consistency
I built a centralized style system (EnneagramCardStyles) that ensures visual consistency across all screens and PDF reports:
Each Enneagram type has its own color profile, consistently applied in UI, settings, and PDF exports.
🧪 Testing & Reliability
Unit tests ensure accuracy of psychological calculations:
- MindPath 16/5D: Short and full version validation
- Enneagram: Type identification (1-9), wings, subtypes (sp/so/sx), development levels (1-9)
- All tests run on real data from assets/
📊 By the Numbers
📱 What Users Get
- Complete privacy: No internet, no data collection, no registration
- Real depth: Full test versions (80-254 questions) or quick versions (20 questions)
- Beautiful PDF reports: Share with coaches, therapists, or keep for self-reflection
- Personal diary: Track your growth journey with reminders
- All free: No paywalls, no subscriptions
🚀 What's Next?
The architecture is ready for combined reports – cross-analyzing results from MindPath 16, MindPath 5D, and Enneagram in a single "Personality Compass" PDF. The IntegrationEngine is already in place, waiting for content.
💡 Lessons Learned
- Offline-first is hard but worth it. Users appreciate privacy more than we think.
- Build modular from day one. My PDF section architecture saved me weeks when adding new features.
- Don't let trademarks limit you. You can build original models with similar depth – just do the work.
- Test-driven development saves sanity. Unit tests caught countless scoring errors.
📬 Share Your Feedback
I'd love to hear from you! Whether you have questions about the development, suggestions for new features, or just want to share your experience with the app, here's how you can reach me:
💬 Questions for the community:
- Have you built offline-first apps? What were your biggest challenges?
- Would you use a tool like this for team-building, coaching, or personal growth?
- How important is privacy to you when using personality tests?
Share your thoughts via email or LinkedIn — I read and respond to every message!
🔗 Download Personality Compass
Try Personality Compass Today
Discover your personality type with 454 questions across 3 psychological models. 100% offline, complete privacy, professional PDF reports.
Download Now