Giter Club home page Giter Club logo

enigjewo's Introduction

enigjewo

An open-source remake of GeoGuessr.


About

This app is an open-source remake of the famous GeoGuessr game, made with ParcelJS, React, Firebase & Bulma.

This is originally inspired by Geoguess, as a pegagogic project made for BeCode, answering the question "this should be so difficult to made a game like that by ourselves".

Features

  • Solo game
  • Multiplayer game over the internet
  • 25 maps (random positions):
    • ๐Ÿ—บ 3 Geographic Areas
    • ๐ŸŒ 6 Continents
    • ๐Ÿšฉ 14 Countries
    • ๐ŸŒ 3 Misc Challenge Maps
      • ๐Ÿ—ฟ Unesco (World Heritage List)
      • ๐Ÿ™ Biggest Cities (40 biggest cities of the world)
      • ๐Ÿ”ฅ Inferno - two complex cities - Santa Cruz de la Sierra (Bolivia) & Touba (Senegal)

๐Ÿ‘‰ NOTE

This project was originally a pegagogic project made for BeCode.
The project is still maintained, but I can't promess that I will be reactive to fix bugs (the game is, still, stable) or adding new features.

However, feel free to propose stuff by creating a Pull Request.

Deploy your instance

1. Prepare your env vars

1.1 Get your Google Maps API key

  • Go to Google Maps Platform
  • Click on Get Started
  • On first time, a page will open to ask to activate billing

Every month, Google offers ยฑ200$ of credits usage for Google Maps API - its way more than enough for normal usage

  • Create Billing Account
  • Go to Google Developers Console, then Create a Project
  • In the Library menu, search for Maps JavaScript API & activate for the project
  • In the Credentials menu, create an API Key

You can (and should) come back later to add key restriction for your own domain only.

  • Note the key for later

๐Ÿ‘‰ You can get more detailed information here: https://developers.google.com/maps/gmp-get-started.

1.2 Get your Firebase App keys & vars

  • Go to Firebase Console
  • Create a new Firebase Project (you can disable Google Analytics)
  • In the left menu, select Realtime Database (in the Build section), then create a database.
  • In your database, go to Rules section, and replace the content with the following, then Publish.
{
  "rules": {
    ".read": true,
    ".write": true
  }
}
  • In the left menu, select Project Overview, then, under the main title, select the "Web" button (with the symbol </>).
  • Name and register your app, then note the variables given in the "configuration" part of the script.

2. Deploy

2.1 Deploy the code

Simply click the following button:

Your app will not be ready yet - we need to set all our variables in the netlify admin.

Usually, the netlify process should ask you for the variables - if not, follow the next section.

2.2 Setup our variables

  • In Netlify admin page, go to Site Settings, then Build & Deploy, then finally to Environment
  • Create every following variable with your own values:
    • GMAP_API_KEY
    • FIREBASE_API_KEY
    • FIREBASE_AUTH_DOMAIN
    • FIREBASE_PROJECT_ID
    • FIREBASE_DATABASE_URL
    • FIREBASE_STORAGE_BUCKET
    • FIREBASE_MESSAGE_SENDER_ID
    • FIREBASE_APP_ID
  • Come back to the Deploys page of Netlify then use the Trigger deploy button to deploy with the good values for your variables.

3. Enjoy!

Finally, you can click on the link netlify has generated for you, generally some-weird-wordsAndNumbers.netlify.app and enjoy the game!

Contribute - install locally

If you want to install the game locally for dev or testing, it's fairly easy - you only need NodeJS.

After cloning the repo and creating your env vars as explained before, rename the .env.sample to .env and fill it with your variables.

Now, run the following commands from within your repository:

  • npm install
  • npm run work

This will run a local server wich will reload at every changes in the code.


February 2021, leny
Background photo by Tabea Damm on Unsplash
UI Sounds by Kenney

enigjewo's People

Contributors

leny avatar dawierha avatar

Stargazers

 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.