Skip to content

A mobile app to hunt dragon balls in your neighborhood. Built with React native, Expo and Firebase!

Notifications You must be signed in to change notification settings

eddiesosera/dbhunt-v1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinkedIn Instagram


Eddie Sosera · 21100419


Cover Image

Logo

DBHunt

Let the Hunt begin!

View Demo · Report Bug · Request Feature

Table of Contents

About the Project

Logo

Project Description

Dragonball Hunt is a mobile game which allows players to create and join hunts (tournaments) in your region. Players go on hunts to collect dragon balls nearby and the player with the most dragon balls at the end of the game wins and is awarded a Super Saiyan level increase.

Built With

  • React Native
  • Expo
  • Firebase
  • Google Maps


Getting Started

The following instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

Ensure that you have the latest version of Expo and React Native installed on your machine.

The Backend for the app The project utilized Firebase's services for backend functionality:

  • Firestore Database was utilized for storing data.
  • Firebase Authentication was used to handle authentication-related services, like logging in and registering users.

Installation

  1. Download the Expo Go App from Google's Play Store or Apple's App Store.

  2. Open any IDE.

  3. Clone Repository
    Run the following in the command line to clone the project:

    git clone https://github.com/eddiesosera/dbhunt-v1
    Open `Software` and select `File | Open...` from the menu. Select the cloned directory and press `Open` button.
    
  4. Install Dependencies
    Run the following in the command line to install all the required dependencies:

    npm install


How to Run the App

  1. After installing Expo on your mobile phone, open the Expo app.
  2. Ensure your computer and mobile device are on the same Wi-Fi network.
  3. Scan the QR code displayed in your terminal or browser within your Expo app.
  4. Your Expo app will load on your mobile device and changes you make to the code will auto-refresh on the device.
  5. Alternatively, after running your project you can open and access it using an emulator. Read more here.

Rules of the game:

  1. Join or Create a Hunt: After creating your account, join an existing hunt in your area or create your own.
  2. Find and Collect Dragon Balls: Search for and collect Dragon Balls during the hunt.
  3. View Hunt Information: Access details about the hunt, including duration and rules.
  4. Check Leaderboard Rankings: Monitor your ranking compared to other players on the leaderboard.
  5. Win the Tournament: At the end of the tournament period, the player with the most Dragon Balls wins.
  6. Earn a Super Saiyan Level Boost: The winner is awarded a Super Saiyan-level boost.


Features and Functionality

Feature 1

Enables users to create a new account or log into their existing account.

Feature 2

Users look for dragon balls in different places on the map relative to their live location. If a dragon ball is collected it can no longer be collected again.

Feature 3

Users can join nearby hunts to compete.

Feature 4

The leaderboard details all the contestants and their ranking in the hunt based on the dragonballs they collected.

Feature 5

Enables users to create their own hunts.

Concept Process

The Conceptual Process is the set of actions, activities and research that was done when starting this project.

Ideation

Moodboard


Database Architecture



Development Process

The Development Process is the technical implementations and functionality done in the frontend and backend of the application.

Implementation Process

Highlights

  • Using the Google Maps SDK led to many "aha" moments as I fully explored its capabilities.
  • I was proud to reverse-engineer addresses, converting between region names and coordinates.
  • Implementing user registration with Firebase Authentication and Firestore Database was another highlight.
  • Throughout the process, I learned when to appropriately use asynchronous functions.
  • Finally, I enjoyed styling React Native elements with the same flexibility as CSS.

Challenges

  • At the beginning of the project, I struggled to conceptualize how to use the Google Maps SDK to obtain the user's address and map the dragon balls relative to the user's locations.
  • Calculating the game mechanics for determining the winner and continuing the game was challenging.

Unit Tests

Test 1 on iOS device:

  • There were no UI issues on an iOS device.

Test 2 on Android device:

  • There were no UI issues on an Android device.

Future Implementation

  • Refining the gaming mechanism and lifecycle of the game.


Final Outcome

Mockups

App mockup



Video Demonstration

To see a run-through of the application, click below:

View Demonstration



Roadmap

See the open issues for a list of proposed features (and known issues).



Contributing

Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request


Authors

eddie Sosera
Eddie Sosera


License

Distributed under the MIT License. See LICENSE for more information.



Contact



Acknowledgements

  • PNGegg: for Dragonball Z images and illustrations.

About

A mobile app to hunt dragon balls in your neighborhood. Built with React native, Expo and Firebase!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published