A comprehensive astrology application featuring accurate birth chart calculations, interactive visualizations, and personalized horoscopes. Built with modern web technologies and optimized for mobile devices.
- Birth Chart Generation: Accurate natal chart calculations using professional astrology algorithms
- Interactive Chart Wheel: Touch-enabled visualization with zoom, rotation, and detailed information
- Multiple Chart Types: Natal, transit, composite, progressed, solar return, and lunar return charts
- Personalized Horoscopes: Daily, weekly, and monthly horoscopes based on your birth chart
- User Profiles: Manage multiple birth charts for family and friends
- Planetary Transits: Track current planetary movements and their impact on your life
- Mobile-First Design: Optimized for smartphones and tablets
- Progressive Web App: Install on your device for native-like experience
- Dark Theme: Mystical dark theme optimized for astrology viewing
- Smooth Animations: Subtle animations enhance the cosmic experience
- Offline Support: Access saved charts and horoscopes without internet connection
- High Accuracy: Uses Flatlib library for precise astronomical calculations
- Multiple House Systems: Placidus, Koch, Regiomontanus, Campanus, Equal, Whole Sign
- Comprehensive Aspects: All major aspect types with customizable orbs
- Location Services: Automatic timezone detection and location search
- Cross-Platform: Works on iOS, Android, and web browsers
- Node.js 18+ and npm
- Python 3.9+ and pip
- Docker and Docker Compose (recommended)
-
Clone the repository
git clone https://github.com/CityscapeAtSunset/astrology-app.git cd astrology-app -
Set up environment
cp .env.example .env # Edit .env with your configuration -
Start with Docker Compose (recommended)
docker-compose up -d
-
Manual setup (alternative)
# Install frontend dependencies npm install # Install backend dependencies cd api-server pip install -r requirements.txt cd .. # Start both services npm run dev
-
Open the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
-
Build the app
npm run build npx cap sync android
-
Open Android Studio
npx cap open android
-
Run on device or emulator
npx cap run android
-
Build the app
npm run build npx cap sync ios
-
Open Xcode
npx cap open ios
-
Run on device or simulator
astrology-app/
βββ public/ # Static assets and PWA files
βββ src/
β βββ components/ # Reusable React components
β β βββ common/ # Generic UI components
β β βββ chart/ # Chart-specific components
β β βββ layout/ # Layout components
β βββ pages/ # Page components
β β βββ Home/ # Home page
β β βββ Chart/ # Birth chart page
β β βββ Horoscope/ # Horoscope page
β β βββ Profile/ # User profiles
β β βββ Settings/ # App settings
β βββ services/ # Business logic and API calls
β βββ store/ # Redux state management
β βββ types/ # TypeScript type definitions
β βββ utils/ # Utility functions
β βββ styles/ # CSS and styling
βββ api-server/ # FastAPI backend
β βββ models/ # Data models
β βββ routes/ # API endpoints
β βββ services/ # Business logic
β βββ tests/ # Backend tests
βββ docs/ # Documentation
βββ android/ # Android platform files
βββ tests/ # Test files
- React 18+ - Modern UI library with hooks and concurrent features
- TypeScript - Type-safe JavaScript development
- Ionic Framework - Mobile-first UI components and native capabilities
- Capacitor - Native app deployment for iOS and Android
- Redux Toolkit - State management with Redux
- RTK Query - Data fetching and caching
- Framer Motion - Animation library
- Chart.js - Chart rendering and visualization
- Vite - Fast build tool and development server
- FastAPI - Modern Python web framework
- Pydantic - Data validation and serialization
- Flatlib - Astrology calculation library
- Uvicorn - ASGI server
- PostgreSQL - Database (production)
- Redis - Caching (production)
- ESLint - Code linting
- Prettier - Code formatting
- Vitest - Testing framework
- Testing Library - Component testing
- Docker - Containerization
- User Guide - Complete user documentation
- Developer Guide - Technical documentation for developers
- API Documentation - Backend API reference
- Deployment Guide - Deployment instructions
The Astrology App provides a comprehensive RESTful API for astrology calculations:
- POST /api/v1/astrology/calculate - Calculate birth charts
- POST /api/v1/astrology/planetary-positions - Get planetary positions
- POST /api/v1/astrology/transits - Calculate transits
- POST /api/v1/astrology/zodiac-sign - Get zodiac sign information
- GET /api/v1/location/search - Search for locations
Visit http://localhost:8000/docs for interactive API documentation.
# Run all tests
npm run test
# Run tests with UI
npm run test:ui
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coveragecd api-server
# Run all tests
python -m pytest
# Run tests with coverage
python -m pytest --cov=.
# Run specific test file
python -m pytest tests/test_astrology_service.py# Run E2E tests
npm run test:e2e
# Run E2E tests in headed mode
npm run test:e2e:headed# Development
npm run dev # Start development server
npm run preview # Preview production build
# Building
npm run build # Build for production
npm run build:analyze # Analyze bundle size
# Code Quality
npm run lint # Run ESLint
npm run format # Format code with Prettier
npm run type-check # TypeScript type checking
# Testing
npm run test # Run unit tests
npm run test:ui # Run tests with UI
npm run test:e2e # Run E2E tests
# Mobile
npm run cap:sync # Sync with Capacitor
npm run cap:open:android # Open Android project
npm run cap:open:ios # Open iOS projectCreate a .env file based on .env.example:
# API Configuration
VITE_API_BASE_URL=http://localhost:8000/api/v1
VITE_API_TIMEOUT=10000
# App Configuration
VITE_APP_NAME=Astrology App
VITE_APP_VERSION=1.0.0
# Feature Flags
VITE_ENABLE_ANALYTICS=false
VITE_ENABLE_CRASH_REPORTING=trueThe project follows strict code style guidelines:
- ESLint for code linting
- Prettier for code formatting
- TypeScript for type safety
- Conventional Commits for commit messages
# Lint and format code
npm run lint:fix
npm run format
# Check commit message
npm run commitlintThe frontend can be deployed to various platforms:
# Install Netlify CLI
npm install -g netlify-cli
# Deploy
netlify deploy --prod --dir=dist# Install Vercel CLI
npm install -g vercel
# Deploy
vercel --prod# Deploy to S3
aws s3 sync dist/ s3://your-bucket-name --delete# Deploy to Heroku
git subtree push --prefix api-server heroku main# Build and run with Docker
docker build -t astrology-api ./api-server
docker run -p 8000:8000 astrology-apiFor production deployment, see the Deployment Guide.
We welcome contributions to the Astrology App! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Follow the code style guidelines
- Add tests for new features
- Update documentation
- Commit your changes
git commit -m "feat: add amazing feature" - Push to the branch
git push origin feature/amazing-feature
- Create a Pull Request
- Follow the Conventional Commits specification
- Write descriptive commit messages
- Add tests for new features
- Update documentation
- Ensure all tests pass
Please be respectful and inclusive. Read our Code of Conduct for details.
- β¨ Birth chart calculation with multiple house systems
- β¨ Interactive chart wheel with touch gestures
- β¨ Personalized horoscopes based on birth data
- β¨ User profile management
- β¨ Planetary transit calculations
- β¨ Location search and timezone detection
- β¨ Mobile app deployment for iOS and Android
- β¨ Progressive Web App capabilities
- β¨ Dark theme with mystical design
- β¨ Offline support for saved charts
- π οΈ React 18 with TypeScript
- π οΈ Ionic Framework for mobile UI
- π οΈ Redux Toolkit for state management
- π οΈ FastAPI backend with Flatlib
- π οΈ Comprehensive test suite
- π οΈ Docker containerization
- π οΈ CI/CD pipeline
- π Complete user guide
- π Developer documentation
- π API documentation
- π Deployment guide
This project is licensed under the MIT License - see the LICENSE file for details.
- Flatlib - Astrology calculation library
- Ionic Framework - Mobile UI components
- Redux Toolkit - State management
- Framer Motion - Animations
- FastAPI - Backend framework
- Documentation: https://docs.astrologyapp.com
- Issues: GitHub Issues
- Email: support@astrologyapp.com
- Discord: Join our community
Made with β€οΈ and cosmic energy
β¨ Explore the cosmos within you β¨