CityGem Go! App

CityGem Go! is an interactive treasure hunt app designed to deliver unique and fun adventures. Players can explore real-world locations, solve riddles, and complete challenges through an intuitive interface.

Key Features

Technologies Used

Documentation & Repository

You can download the complete documentation here, including detailed reports of each analysis section. The repository is available here for browsing all the project resources.

Requirements

Installation

  1. Clone the repository:

    git clone https://github.com/ngljcb/px-city-gem-go.git
    cd px-city-gem-go/city-gem-go
    
  2. Install dependencies:

    npm install
    
  3. Configure Firebase:

    • Create a project on Firebase Console.
    • Download the google-services.json file (for Android) or GoogleService-Info.plist file (for iOS).
    • Place the file in the appropriate directory:
      • Android: android/app
      • iOS: ios/
  4. Update Firebase configuration:

    • Edit the FirebaseConfig.js file:

      import { initializeApp } from 'firebase/app';
      
      const firebaseConfig = {
        apiKey: 'YOUR_API_KEY',
        authDomain: 'YOUR_PROJECT_ID.firebaseapp.com',
        projectId: 'YOUR_PROJECT_ID',
        storageBucket: 'YOUR_PROJECT_ID.appspot.com',
        messagingSenderId: 'YOUR_SENDER_ID',
        appId: 'YOUR_APP_ID',
      };
      
      export const FIREBASE_APP = initializeApp(firebaseConfig);
      
  5. Start the app:

    expo start
    

Project Structure

├── app/                 # Main app screens and routes
├── assets/              # Static assets like images and icons
├── components/          # Reusable UI components
├── constants/           # App-wide constants (e.g., colors)
├── models/              # Data models (business logic)
├── services/            # Core services like notifications & database handlers
├── styles/              # Styling files
└── viewmodels/          # Logic to bridge views and models

Key Functionalities

Notifications

Managed through the NotificationHandler class:

Photo Verification

Route Management

License

This project is released under the MIT License. For more details, see the LICENSE file.