/ignis

Various projects involving the Yu-Gi-Oh! card game, including asynchronous API requests, SQL databases, machine learning, and a Discord bot!

Primary LanguagePythonMIT LicenseMIT

ignis-title


A series of related projects involving the Yu-Gi-Oh! card game, including:

  • Asynchronous API requests
  • SQL database management
  • Machine learning through convolutional neural networks
  • Statistics visualisation
  • A multi-purpose Discord bot to interact with the rest

Index

folder libraries notes
ygo aiohttp sqlalchemy Interfaces for asynchronously accessing the YGOPRODECK API, saving data to a database, and querying it with SQL. Bear in mind Yu-Gi-Oh has 13,000+ cards, so this was quite the effort.
stats matplotlib Visualising the statistics of card properties.
ignis tensorflow keras Machine learning models through convolutional neural networks, for predicting a card’s properties from its art. This was the original intention of this project, which everything else was built around.
disc nextcord A Discord bot to provide convenient access to the other projects.
tests pytest A couple of unit tests cuz I felt like it. (Nowhere near even 20% code coverage)
scripts Code files that are manually executed for specific purposes.
assets Data and image files, mostly untracked.1
suptools A submodule containing my suptools repo, with all the utility functions I need.

Notes

  • Relative imports, yeah. Somehow I managed to get them working in VSCode, so I went with it. I do like them, cuz you don’t need to worry about disrupting imports if changing your working directory (especially relevant when submodules are involved).

License

MIT cuz why not. Take the code if you need it, just might need to extricate it from suptools ;)


Difficulties & Learnings

See edu.md :D


Footnotes

  1. Good reason for this, ofc. Those files are huge. Trying to commit and push them gets rejected by GitHub. Not a good idea. I speak from experience. o.0