Skip to content

AnganSamadder/AR-You-Covered

Repository files navigation

AR You Covered?

An immersive Augmented Reality game that challenges players to discover and interact with virtual objects in the real world.

Project Structure

This project follows modern Android/Kotlin conventions with a clean architecture approach:

app/src/main/kotlin/com/aryoucovered/app/
├── core/                           # Core app components
│   ├── constants/                  # App-wide constants
│   ├── utils/                      # Utility classes and extensions
│   └── receiver/                   # Broadcast receivers
│       └── GeofenceBroadcastReceiver.kt
├── data/                           # Data layer (Repository pattern)
│   ├── repository/                 # Data repositories
│   └── model/                      # Data models
├── domain/                         # Business logic layer
│   ├── usecase/                    # Use cases/Interactors
│   └── model/                      # Domain models
├── presentation/                   # UI layer
│   ├── activity/                   # Main activities
│   │   ├── MainActivity.kt
│   │   └── SettingsActivity.kt
│   ├── fragment/                   # Fragments (if any)
│   ├── theme/                      # Compose themes
│   │   ├── Color.kt
│   │   ├── Theme.kt
│   │   └── Type.kt
│   └── common/                     # Common UI components
├── feature/                        # Feature-specific modules
│   ├── auth/                       # Authentication features
│   │   ├── SigninActivity.kt
│   │   ├── SignUpActivity.kt
│   │   └── VerifyCodeActivity.kt
│   ├── game/                       # Game-related features
│   │   ├── GameActivity.kt
│   │   ├── Attributes.kt
│   │   ├── GameObject.kt
│   │   └── GameUtils.kt
│   ├── ar/                         # AR-specific features
│   │   └── ARActivity.kt
│   └── map/                        # Map features
│       └── MapActivity.kt
└── di/                             # Dependency injection (future)

Features

  • Augmented Reality: Interactive AR experience using ARCore
  • Location-based Gaming: Geofenced gameplay with location awareness
  • Authentication: User registration and sign-in system
  • Map Integration: Google Maps integration for location features
  • Modern UI: Material Design with Compose support

Technology Stack

  • Language: Kotlin
  • AR: ARCore with SceneView
  • UI: Jetpack Compose + Traditional Views
  • Maps: Google Maps SDK
  • Authentication: Firebase Auth
  • Location: Google Play Services Location
  • Architecture: Clean Architecture with feature modules

Getting Started

Prerequisites

  • Android Studio Arctic Fox or later
  • Android SDK 31+
  • ARCore supported device for AR features

Setup

  1. Clone the repository
  2. Open in Android Studio
  3. Add your Google Maps API key to local.properties:
    MAPS_API_KEY=your_api_key_here
    
  4. Build and run on an ARCore supported device

Architecture Benefits

Feature-based Structure

  • Scalability: Easy to add new features without affecting existing code
  • Team Development: Different teams can work on different features independently
  • Testing: Feature-specific testing is straightforward

Layer Separation

  • Presentation: UI logic and theming
  • Domain: Business logic independent of Android framework
  • Data: Repository pattern for data access
  • Core: Shared utilities and components

Future-Proof Design

  • Dependency Injection Ready: Structure supports DI frameworks like Hilt
  • Modularization Ready: Can be easily converted to multi-module structure
  • Testing Ready: Clear separation enables comprehensive testing strategies

Recent Changes

This project has been refactored from the original structure:

  • Package Name: Changed from com.example.statefarmAR to com.aryoucovered.app
  • Project Name: Updated from "State Farm AR Hunt" to "AR You Covered?"
  • Directory Structure: Migrated from java/ to kotlin/ directory
  • Organization: Reorganized into feature-based architecture
  • Themes: Updated all theme references to use new naming

Contributing

When adding new features:

  1. Place feature-specific code in the appropriate feature/ subdirectory
  2. Use the established package naming convention
  3. Follow the clean architecture principles
  4. Update this README if adding new architectural components

Git Workflow

The project structure is designed to work seamlessly with Git:

  • All files are properly tracked
  • Directory structure matches Git repository structure
  • Clean commit history maintained through refactoring

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages