Virtual Q is a comprehensive full-stack ecosystem designed to enhance the experience of both theme park managers and visitors. This project was developed as part of a final thesis in Computer Engineering at Universidad Pontificia Comillas ICAI.
- Overview
- Key Features
- How It Works
- Technology Stack
- Project Structure
- Installation and Setup
- Important Notes
- Future Development
- Contributing
- Dynamic management of park databases
- Control over ride information, status, and capacity
- Restaurant and store product management
- Ticket administration
- Map information updates
- Ticket purchasing
- Itinerary planning
- Advance ride booking
- Virtual queue system
Reservation times for a ride display
Ride under maintenance set by the park manager in real time
Client tickets view for each specific day and group
- Real-time status updates
- Multiple ride queue management
- Efficient booking system
-
Manager Portal:
- Park managers access the portal to manage park information, including rides, restaurants, and stores.
- Managers can update ride status, capacity, and maintenance information in real-time.
- The portal allows for ticket sales management and user token viewing.
-
User Mobile App:
- Visitors use the app to purchase tickets, plan itineraries, and book rides.
- Real-time information on ride status, queue lengths, and booking availability is provided.
- Users can view their ticket information and track their park progress.
-
Virtual Queue System:
- Users can book ride slots in advance and receive real-time queue status updates.
- Park managers can simultaneously view and manage queue status for multiple rides.
- The system ensures a seamless experience with reduced waiting times and efficient ride booking.
- User Mobile App: React Native
- Backend & Manager Portal: Django
- Database: SQLite
Virtual Q follows a microservice-based architecture. The interaction between different components is illustrated in the diagram below:
For a detailed view of the class structure and interactions, refer to the following diagram:
- Python 3.10
- Node.js and npm
- React Native development environment
- Django
-
Navigate to the Django project directory:
cd path/to/django/project
-
Install required Python packages:
pip install -r requirements.txt
-
Run migrations:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Start the Django server:
python manage.py runserver
-
Access the admin portal at
http://localhost:8000/admin
using the superuser credentials.
-
Navigate to the React Native project directory:
cd path/to/react-native/project
-
Install dependencies:
npm install
-
Start the Expo development server:
expo start
-
Use Expo Go on your mobile device to scan the QR code and run the app.
- Ensure both the Django backend and React Native app are running simultaneously for full functionality.
- Check and update IP configurations in the app settings for local connections.
This project is a work in progress. Future updates may include:
- Deployment of the user app to app stores
- Addition of an interactive park map
- Project reorganization and code cleanup
- Implementation of AI for optimized itinerary planning
- Enhanced features for both manager and user interfaces
- Integration with real-time data sources for park information
Contributions to Virtual Q are welcome! Please feel free to submit issues, fork the repository and send pull requests.
Project Link: https://github.com/yagotobi/virtual-q