Skip to content

daemon-node-byte/MysticalRealms

🔮 Mystical Realms

A Modular Tarot & Astrology Platform
Discover the mysteries of the cosmos through interactive tarot readings, personalized astrology charts, and immersive 3D experiences.

License: AGPL-3.0 Website Build Status Coverage Status Code Quality

TypeScript Next.js Python FastAPI Supabase Babylon.js Radix UI TailwindCSS


✨ Features

Notice!

We are still in the early stages of development and this document is a work in progress. Some sections may be incomplete or subject to change as we refine our features and architecture.


🃏 Tarot Experience

  • Live Readings: Interactive tarot card draws with AI-powered interpretations
  • Spread Creator: Custom 3D tarot spreads using Babylon.js
  • Card Explorer: Comprehensive tarot deck with search and filtering
  • Reading Journal: Personal tarot reading history and insights

Astrology Tools

  • Birth Charts: Personalized natal chart generation and analysis
  • Daily Horoscopes: AI-generated daily cosmic guidance
  • Transit Tracking: Real-time planetary movements and their effects
  • Compatibility Analysis: Synastry charts for relationship insights

🌟 Community & Learning

  • Mystical Feed: Real-time community sharing and discussions
  • Knowledge Base: Comprehensive guides to tarot and astrology
  • Interactive Quizzes: Learn tarot meanings and astrological concepts
  • Blog: Articles on mystical practices and cosmic events

🎲 Additional Features

  • Astrology Dice: Quick cosmic guidance through dice divination
  • Personal Calendar: Track important astrological events
  • Profile Customization: Avatars, badges, and personal mystical journey
  • 3D Immersive UI: Beautiful, interactive mystical environments

🏗️ Architecture

Mystical Realms is built as a modern, scalable monorepo with a microservices architecture:

┌─────────────────────────────────────────────────────────────┐
│                     Frontend (Next.js)                     │
│  • Server-Side Rendering    • Interactive 3D (Babylon.js)  │
│  • TypeScript Safety        • Responsive Design            │
│  • Radix UI Components      • TailwindCSS Styling          │
├─────────────────────────────────────────────────────────────┤
│                 Authentication & Database                   │
│  • Supabase Auth            • PostgreSQL Database          │
│  • Row Level Security       • Real-time Subscriptions      │
│  • OAuth Providers          • File Storage                 │
├─────────────────────────────────────────────────────────────┤
│              Backend Services (FastAPI/Python)             │
│  • Astrology Calculations   • PDF Generation               │
│  • Swiss Ephemeris          • RESTful APIs                 │
│  • Containerized Deployment • High Performance             │
└─────────────────────────────────────────────────────────────┘

🛠️ Tech Stack

Frontend

Backend

Database & Auth

Development

  • pnpm - Fast, disk space efficient package manager
  • Jest - JavaScript testing framework
  • Pytest - Python testing framework
  • ESLint - Code linting and formatting
  • GitHub Actions - CI/CD pipelines

🚀 Quick Start

Prerequisites

Before you begin, ensure you have the following installed:

Installation

  1. Clone the repository

    git clone https://github.com/daemon-node-byte/MysticalRealms.git
    cd MysticalRealms
  2. Install dependencies

    pnpm install
  3. Start the development environment

    # Start all services (Supabase, Web, API)
    ./scripts/start_dev.sh

    Or start services individually:

    # Start Supabase (Database & Auth)
    cd packages/supabase && docker-compose up -d
    
    # or use Supabase CLI
    # supabase start
    
    # Start Next.js frontend
    pnpm dev:web
    
    # Start FastAPI backend
    pnpm dev:api
  4. Access the application

Environment Configuration

The development environment will automatically set up environment variables from .env.example files. For production deployment, ensure you configure:

  • Supabase: Database URL and API keys
  • OpenAI: API key for AI interpretations
  • Authentication: OAuth provider credentials (optional)

📚 Documentation

Comprehensive documentation is available in the /docs/wiki directory:


🧪 Testing

Running Tests

# Run frontend tests
pnpm test:web

# Run backend tests
cd apps/api && pytest

# Run frontend tests with coverage
pnpm --filter web test:coverage

Test-Driven Development

This project follows TDD principles:

  • Frontend: Jest + React Testing Library
  • Backend: Pytest + FastAPI TestClient
  • E2E: Playwright for end-to-end testing
  • Security: Automated security scanning in CI/CD

📦 Project Structure

MysticalRealms/
├── apps/
│   ├── web/                 # Next.js frontend application
│   └── api/                 # FastAPI backend service
├── packages/
│   └── supabase/           # Database configuration and migrations
├── docs/
│   └── wiki/               # Comprehensive project documentation
├── scripts/                # Development and deployment scripts
├── docker/                 # Docker configurations
└── docs/                   # Project policies and guidelines

Key Directories

  • apps/web/src/ - Frontend components, pages, and utilities
  • apps/api/ - Backend API endpoints and business logic
  • packages/supabase/ - Database schema, migrations, and seed data
  • docs/wiki/ - Technical documentation and guides

🎯 Roadmap

Current Phase: MVP Development

  • Sprint 1: Project setup and infrastructure
  • Sprint 2: Authentication and user profiles
  • 🔄 Sprint 3: Dashboard and core features
  • Sprint 4: Live tarot readings with AI
  • Sprint 5: Tarot explorer and journal

Upcoming Features

  • Advanced Astrology: Transit predictions and aspect analysis
  • Social Features: User-to-user readings and community challenges
  • Mobile App: React Native companion app
  • AI Enhancements: GPT-4 integration for deeper interpretations
  • Marketplace: Custom tarot decks and reading templates

See the full development roadmap for detailed sprint planning.


🤝 Contributing

We welcome contributions from the mystical community! Here's how to get started:

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Write tests for your changes
  4. Commit your changes (git commit -m 'Add amazing feature')
  5. Push to your branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Contribution Guidelines

  • Follow the Code of Conduct
  • Write tests for new features
  • Update documentation as needed
  • Follow the existing code style and architecture patterns
  • Ensure your changes don't break existing functionality

Areas for Contribution

  • 🎨 UI/UX: Improve the mystical design and user experience
  • 🔮 Features: Add new tarot spreads, astrological calculations
  • 🧪 Testing: Expand test coverage and add E2E tests
  • 📖 Documentation: Improve guides and add tutorials
  • 🐛 Bug Fixes: Help us squash bugs and improve reliability
  • 🌐 Localization: Translate the app to other languages

📄 License

This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.


🔐 Security

Security is paramount in handling user data and mystical practices. Please review our Security Policy for:

  • Vulnerability reporting procedures
  • Security best practices
  • Data protection measures
  • Incident response protocols

To report security vulnerabilities, please email [email protected] or create a private security advisory.


🙏 Acknowledgments

  • Swiss Ephemeris - For accurate astronomical calculations
  • Radix UI - For accessible, unstyled UI primitives
  • Supabase - For the incredible backend-as-a-service platform
  • The Tarot Community - For inspiration and mystical wisdom
  • Open Source Contributors - For making this project possible

🌟 Star History

If you find this project helpful, please consider giving it a ⭐ on GitHub!


🔮 Visit Mystical Realms📖 Documentation🐛 Report Issues💬 Discussions

Built with ❤️ and a touch of cosmic magic