Hack and Hunt is a Flutter-based platform for organizing and participating in treasure hunts combined with coding competitions. It offers a unique blend of adventure and coding challenges, making learning and competition fun and engaging.
- Create and manage treasure hunts
- Participate in coding competitions
- Real-time updates and leaderboards
- User authentication and profiles
- Interactive maps for treasure hunts
- Hints and clues for challenges
- Flutter SDK: Install Flutter
- Git: Install Git
- Code Editor: VS Code or Android Studio recommended
-
Clone the repository:
git clone https://github.com/i-ces/treasurehunt-app.git cd treasurehunt-app
-
Install dependencies:
flutter pub get
-
Run the app:
flutter run
-
Build for specific platforms:
-
Android:
flutter build apk
-
iOS:
flutter build ios
-
-
Create a
.env
file in the root directory and add the necessary environment variables:API_URL=https://api.yourservice.com GOOGLE_MAPS_API_KEY=your_google_maps_api_key
To maintain a clean and manageable git workflow, we follow a specific branch naming convention:
- feature/: New features
- bugfix/: Bug fixes
- hotfix/: Quick fixes in production
- release/: Release versions
Examples:
feature/sp-update-readme
bugfix/fix-login-issue
We follow the MVC (Model-View-Controller) architecture for organizing the project structure. Here's an overview of the folder architecture:
hack-and-hunt/
├── lib/
│ ├── controllers/
│ │ ├── auth_controller.dart
│ │ ├── treasure_hunt_controller.dart
│ │ └── coding_competition_controller.dart
│ ├── models/
│ │ ├── user.dart
│ │ ├── treasure_hunt.dart
│ │ └── coding_competition.dart
│ ├── views/
│ │ ├── auth/
│ │ │ ├── login_view.dart
│ │ │ └── signup_view.dart
│ │ ├── treasure_hunt/
│ │ │ ├── treasure_hunt_list_view.dart
│ │ │ └── treasure_hunt_detail_view.dart
│ │ ├── coding_competition/
│ │ │ ├── competition_list_view.dart
│ │ │ └── competition_detail_view.dart
│ │ └── common/
│ │ ├── widgets/
│ │ │ ├── custom_button.dart
│ │ │ └── custom_input.dart
│ │ └── utils/
│ │ └── constants.dart
│ ├── main.dart
│ └── routes.dart
├── assets/
│ ├── images/
│ └── fonts/
├── test/
└── .env
We welcome contributions! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch following the branch naming convention.
- Make your changes and commit them.
- Push your branch to your fork.
- Open a pull request with a detailed description of your changes.