Dragon Quest Monsters is a spin-off series based on the famous JRPG series, Dragon Quest. This database informs the user of game details (monsters, skills, items, etc.) of Dragon Quest Monsters -- Terry's Wonderland (also known as Dragon Warrior Monsters in the US).
Released in Japan in 1998 for the Gameboy Color by Enix, it was compared to the Pokemon series due to their similar gameplay of taming and training monsters to battle other monsters via random encounters. However, gameplay differs with its roguelike dungeon levels, the battling system, and the breeding system.
The game is quite old and not many copies are in circulation. The current way to play the game is to buy "Dragon Quest Monsters -- Terry's Wonderland RETRO" for the Nintendo Switch on the Japanese Nintendo eShop or on Google Play and Apple Store by setting your region to Japan (the game will be in Japanese). Otherwise, use an emulator and download the English version.
This project's purpose is to learn how to make an API with Python by creating my own wiki website and database. There are some Japanese game wikis for this particular game, but incredibly frustrating to use and search through. By putting all the data into a SQL database, it should be easier to access and find information.
This project is made with FastAPI, a webframework for building APIs with Python.
This repo is deployed on Google Cloud Run
Access the Swagger UI interface of this FastAPI at https://dqmonstersdb-api-743047725852.us-central1.run.app/docs
- Clone this repo onto your local machine.
- Install dependencies onto virtual environment.
- run
src/app/create_database.pyto make the sqlite database using the csv files. database.db file should be generated in the project folder. - Run
fastapi dev src/app/main.pyin the terminal - Open http://127.0.0.1:8000 (or http://localhost:8000)
- Open http://127.0.0.1:8000/docs to access the interactive API documentation using Swagger UI
# run commands from the project folder directory
pip install -r requirements.txt
python src/app/create_database.py
fastapi dev src/app/main.pyIf you are running things with the uv package manager , use the following commands.
uv sync
uv run python src/app/create_database.py
uv run fastapi dev src/app/main.py- FastAPI documentation https://fastapi.tiangolo.com/
- SQLModel documentation https://sqlmodel.tiangolo.com/
- various issues on the FastAPI github repo
This project is done with help and mentoring by Bob Belderbos through the Pybites Developer Mindset Program
Thank you Bob for helping me figure out the data models portion. Creating a many-to-many table with multiple foreign keys was a journey.

