Geography Test is a web application designed to facilitate learning of geographical maps by enabling the creation and completion of personalized tests on various geographical regions. Similar to Seterra, but it allows users to craft their own tests for free. The logo was generated using DALL-E 2.
You can experience the live version of the app here:
- Two test modes: click on a point by its name or display point name by clicking on the point.
- Catalog API: access list of tests from API
- Ability to create custom tests by providing an image URL (from allowed domains) and clicking on points on the map in the creator. Data is included in created url encoded using base64
https://geografia.rkuba.pl/customTest?data=eyJuIjoiZHNhZGFzIiwicyI6MzAwLCJp...
- Capability to create an account and upload test results.
- Leaderboard for tests (results are sorted by points calculated based on time and accuracy).
- Personal user statistics (records, recently taken tests).
I created this app to prepare for a geography test. Some time ago the teacher recommended learning European countries using Seterra and I liked it. However, I couldn't find test for geographical regions of Poland, so I decided to create my own website.
- NodeJS and NPM (Node 18.13.0 was utilized)
- Download or clone the repository.
- Go to folder by
cd frontend/
- Install dependencies using
npm install
. - Run the development version with
npm run dev
or build the app usingnpm run build
. Upon completion of the build process, the production-ready version will be available in thebuild/
directory. - For production you can use Cloudflare Pages or Vercel.
- Cloudflare account
- NodeJS and NPM
- Wrangler -
npm install -g @cloudflare/wrangler
- Download or clone the repository.
- Go to folder by
cd catalog-api/
- Log in to your Cloudflare account or create one. Create D1 Database by navigating to Workers & Pages > D1 > Create Database > Dashboard. Copy the database ID and name.
- Use
wrangler login
to log in to your Cloudflare account via wrangler. - Rename
wrangler.example.toml
towrangler.toml
and replaceDATABASE_NAME
andDatabase_ID
with copied ones from second step. - Execute
wrangler publish
. The console will provide the worker's URL, something likehttps://geography-test-api.<your nickname>.workers.dev
. Add this URL to the frontend's environmental variables asREACT_APP_API_CATALOG_URL
.
For Docker Compose users:
- Utilize
docker-compose up
if Docker Compose is installed on your machine.
For development and production versions:
- Download or clone the repository.
- Go to folder by
cd leaderboard-api/
and install dependencies usingnpm install
. - Rename
.env.example
to.env
. SetMONGODB
to your MongoDB database URI andTOKEN_SECRET
to a secure, lengthy random string (utilized for password hashing). - Run
npm run dev
for development ornpm run build
for production. The build output can be found indist/
.
The Geography Test app is licensed under the MIT License. Feel free to modify and use it in accordance with your requirements.