Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sup2point0/ignis

Various projects involving the Yu-Gi-Oh! card game, including asynchronous API requests, SQL databases, machine learning, and a Discord bot!
https://github.com/sup2point0/ignis

ai discord discord-bot ignis ignister machine-learning nextcord sql sqlalchemy sqlite ygo ygoprodeck yu-gi-oh yugioh yugioh-api yugioh-card-images

Last synced: 4 days ago
JSON representation

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

Awesome Lists containing this project

README

        

![ignis-title](assets/title.png)

---

A series of related projects involving the [*Yu-Gi-Oh!*](https://yugipedia.com) 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`](https://docs.aiohttp.org/en/stable) [`sqlalchemy`](https://www.sqlalchemy.org) | Interfaces for asynchronously accessing the [YGOPRODECK API](https://ygoprodeck.com/api-guide), 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`](https://matplotlib.org) | Visualising the statistics of card properties. |
| `ignis` | [`tensorflow`](https://www.tensorflow.org) [`keras`](https://keras.io) | 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`](https://docs.nextcord.dev/en/stable) | A Discord bot to provide convenient access to the other projects. |
| `tests` | [`pytest`](https://docs.pytest.org/en/8.0.x) | 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.[^assets-untrack] |
| `suptools` | | A submodule containing my [suptools](https://github.com/Sup2point0/suptools) repo, with all the utility functions I need. |

[^assets-untrack]: 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


## 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](edu.md) :D