Version: 1.0.0
Author: SC MASEKO 402110470
Date: September 2025
A comprehensive digital solution for theme park operations, featuring QR-based payment processing, entrance management, real-time analytics, and visitor experience optimization.
The Theme Park QR Payment & Entrance System is a full-stack application designed to modernize theme park operations through digital transformation. The system provides seamless visitor experiences while offering powerful management tools for park staff and administrators.
- QR-Based Entry System: Contactless ticket validation and park entry
- Mobile Payment Processing: Secure, multi-method payment integration
- Real-Time Analytics: Comprehensive operational insights and reporting
- Visitor Mobile App: Intuitive interface for ticket management and park navigation
- Staff Dashboard: Professional management interface with real-time monitoring
- Queue Management: Dynamic wait time tracking and optimization
- Multi-Language Support: Accessible to international visitors
- Core API: Spring Boot 3.1.5 (Java 17)
- Analytics Service: Flask (Python 3.11)
- Database: PostgreSQL 15+ with Redis caching
- Authentication: JWT-based security with role-based access control
- Visitor Mobile App: React 18 with Vite
- Staff Dashboard: React 18 with advanced analytics
- UI Framework: Tailwind CSS + shadcn/ui components
- Containerization: Docker & Docker Compose
- API Documentation: OpenAPI/Swagger
- Monitoring: Built-in health checks and metrics
- Payment Processing: Stripe integration
ThemePark-QR-System/
βββ docs/ # Project documentation
β βββ api-documentation/ # API specifications
β βββ architecture/ # System design documents
β βββ deployment/ # Deployment guides
βββ backend/ # Backend services
β βββ core-api/ # Spring Boot core API
β β βββ src/main/java/ # Java source code
β β βββ src/main/resources/ # Configuration files
β β βββ pom.xml # Maven dependencies
β βββ analytics-service/ # Flask analytics service
β β βββ src/ # Python source code
β β βββ requirements.txt # Python dependencies
β β βββ venv/ # Virtual environment
β βββ database/ # Database scripts
β βββ init-scripts/ # Schema and sample data
βββ frontend/ # Frontend applications
β βββ visitor-mobile-app/ # React visitor app
β β βββ src/ # React components
β β βββ public/ # Static assets
β β βββ package.json # Node dependencies
β βββ staff-dashboard/ # React staff dashboard
β βββ src/ # React components
β βββ public/ # Static assets
β βββ package.json # Node dependencies
βββ deployment/ # Deployment configurations
β βββ docker/ # Docker configurations
β βββ kubernetes/ # K8s manifests (if applicable)
βββ scripts/ # Utility scripts
βββ setup.sh # Environment setup
βββ deploy.sh # Deployment script
- Java 17+ (for Spring Boot core API)
- Python 3.11+ (for analytics service)
- Node.js 20+ (for React applications)
- PostgreSQL 15+ (database)
- Redis 7+ (caching)
- Git (version control)
-
Clone the repository
git clone https://github.com/your-username/ThemePark-QR-System.git cd ThemePark-QR-System -
Set up the database
# Install PostgreSQL and create database createdb themepark_qr_system # Run initialization scripts psql -d themepark_qr_system -f backend/database/init-scripts/01_create_schemas.sql psql -d themepark_qr_system -f backend/database/init-scripts/02_sample_data.sql
-
Start the analytics service
cd backend/analytics-service python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt python src/main.py
-
Start the core API service
cd backend/core-api ./mvnw spring-boot:run -
Start the frontend applications
# Visitor mobile app cd frontend/visitor-mobile-app pnpm install pnpm run dev # Staff dashboard (in a new terminal) cd frontend/staff-dashboard pnpm install pnpm run dev
- Visitor Mobile App: http://localhost:3000
- Staff Dashboard: http://localhost:3001
- Core API: http://localhost:8080/api/v1
- Analytics Service: http://localhost:5001/api/v1
- API Documentation: http://localhost:8080/swagger-ui.html
- Secure Authentication: Email/password login with session management
- Digital Tickets: QR code generation and display
- Attraction Information: Real-time wait times and status
- Payment Management: Multiple payment method support
- Queue Management: Join virtual queues and track position
- Profile Management: Personal preferences and settings
- Real-Time Monitoring: Live visitor counts and system metrics
- Attraction Management: Status updates and capacity monitoring
- Ticket Validation: QR code scanning and entry verification
- Analytics Dashboard: Comprehensive reporting and insights
- Payment Analytics: Transaction monitoring and trends
- System Health: Performance metrics and alerts
Create .env files in each service directory:
DATABASE_URL=jdbc:postgresql://localhost:5432/themepark_qr_system
DATABASE_USERNAME=postgres
DATABASE_PASSWORD=your_password
REDIS_HOST=localhost
REDIS_PORT=6379
JWT_SECRET=your_jwt_secret_key
STRIPE_SECRET_KEY=sk_test_your_stripe_keyDATABASE_URL=postgresql://postgres:password@localhost:5432/themepark_qr_system
FLASK_ENV=development
SECRET_KEY=your_flask_secret_keyThe system uses PostgreSQL with the following schemas:
user_management: User accounts and preferencespayment_system: Payment methods and transactionsaccess_control: Tickets, attractions, and entry logsanalytics: Visitor analytics and operational metricssystem_config: Application settings and audit logs
# Core API tests
cd backend/core-api
./mvnw test
# Analytics service tests
cd backend/analytics-service
source venv/bin/activate
python -m pytest tests/# Visitor app tests
cd frontend/visitor-mobile-app
pnpm test
# Staff dashboard tests
cd frontend/staff-dashboard
pnpm test- Authentication:
/api/v1/auth/* - User Management:
/api/v1/users/* - Ticket Management:
/api/v1/tickets/* - Payment Processing:
/api/v1/payments/* - Access Control:
/api/v1/attractions/*
- Visitor Analytics:
/api/v1/analytics/visitor-stats - Real-Time Data:
/api/v1/analytics/real-time - Dashboard Data:
/api/v1/dashboard/overview - Reports:
/api/v1/reports/*
Full API documentation is available at /swagger-ui.html when the services are running.
-
Build and run with Docker Compose
docker-compose up -d
-
Individual service deployment
# Core API cd backend/core-api docker build -t themepark-core-api . docker run -p 8080:8080 themepark-core-api # Analytics Service cd backend/analytics-service docker build -t themepark-analytics . docker run -p 5001:5001 themepark-analytics
-
Environment Setup
- Configure production database
- Set up Redis cluster
- Configure load balancers
- Set up SSL certificates
-
Security Configuration
- Update JWT secrets
- Configure CORS policies
- Set up API rate limiting
- Enable audit logging
- JWT Authentication: Secure token-based authentication
- Role-Based Access Control: Granular permission system
- Data Encryption: Sensitive data protection
- API Rate Limiting: DDoS protection
- Audit Logging: Comprehensive activity tracking
- Input Validation: SQL injection prevention
- CORS Configuration: Cross-origin request security
- Current visitor count
- System performance metrics
- Payment success rates
- Queue wait times
- Attraction capacity utilization
- Daily/weekly/monthly reports
- Revenue analytics
- Visitor behavior patterns
- Operational efficiency metrics
- Customer satisfaction tracking
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Make your changes
- Run tests
- Commit your changes
git commit -m "Add your feature description" - Push to your fork
- Create a Pull Request
- Java: Follow Spring Boot best practices
- Python: PEP 8 compliance
- JavaScript: ESLint configuration
- Documentation: Comprehensive inline comments
- Testing: Minimum 80% code coverage
This project is licensed under the MIT License - see the LICENSE file for details.
For technical support or questions:
- Email: sc.maseko@themepark.com
- Documentation: Project Wiki
- Issues: GitHub Issues
- Spring Boot Community: For the excellent framework
- React Team: For the powerful frontend library
- shadcn/ui: For beautiful UI components
- Stripe: For secure payment processing
- PostgreSQL: For robust database management
Built with β€οΈ by SC MASEKO 402110470
Transforming theme park experiences through innovative technology